<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https:///api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Louisepb</id>
	<title>TexGen - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https:///api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Louisepb"/>
	<link rel="alternate" type="text/html" href=""/>
	<updated>2026-06-11T10:00:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.11</generator>
	<entry>
		<id></id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-09T09:39:19Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:3Tex Vf 0.55.png|thumb|3d orthogonal woven fabric]]&lt;br /&gt;
[[Image:2DWeave.png|thumb|2d woven fabric]]&lt;br /&gt;
[[Image:Ncf.png|thumb|Non-crimp fabric]]&lt;br /&gt;
[[Image:Tufted laminate.png|thumb|Tufted laminate]]&lt;br /&gt;
[[Image:Triaxialbraid.png|thumb|Triaxial braid fabric]]&lt;br /&gt;
[[Image:Weftknit.png|thumb|Weft knit fabric]]&lt;br /&gt;
&lt;br /&gt;
TexGen is open source software licensed under the General Public License developed at the University of Nottingham for modelling the geometry of textile structures. TexGen has been used by the Nottingham team as the basis of models for a variety of properties, including textile mechanics, permeability and composite mechanical behaviour.&lt;br /&gt;
&lt;br /&gt;
A summary of our work involving TexGen can be found on the [[TexGen Applications]] page and a list of publications using TexGen can be found on the [[Publications]] page. Please also visit the [http://www.nottingham.ac.uk/research/groups/composites-research-group/research/textile-composites/textile-composites.aspx University of Nottingham Textile Composites Research] website for more details about our research group.&lt;br /&gt;
&lt;br /&gt;
A User Guide can be found here [[User_Guide]]. Also on this website you will find all the information necessary to get started with TexGen by using the sidebar for navigation. &lt;br /&gt;
&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [https://github.com/louisepb/TexGen GitHub issue tracker].&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
===Please use GitHub for TexGen queries===&lt;br /&gt;
The TexGen forum is being set to &amp;#039;Read Only&amp;#039; and will not be taking new users for the time being.&lt;br /&gt;
&lt;br /&gt;
You should still be able to search the forum to find useful information from previous conversations. If you have a new question or want to raise an issue about a bug in TexGen please raise an issue on the TexGen GitHub page here: https://github.com/louisepb/TexGen/issues&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.13.1 Released! ===&lt;br /&gt;
This is a minor release to correct a bug when exporting a voxel mesh to Abaqus with no boundary conditions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:30, 7th August 2023 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.13.0 Released! ===&lt;br /&gt;
Version 3.13.0 has been released. From this release TexGen will be built with Python 3. Existing scripts should continue to run using the Run Script option in the GUI after the addition of a line to import the TexGen core library (from TexGen.Core import *).&lt;br /&gt;
&lt;br /&gt;
A new class CDomainPrism has been implemented which allows concave sets of domain planes to be specified, e.g. T-shaped or arcs. This is only accessible via scripting. It&amp;#039;s use is described in the scripting guide with a sample script.&lt;br /&gt;
&lt;br /&gt;
Layer to layer 3D woven textiles can be created with binder layers following different paths (rather than all binder layers moving together through the layers) using the new CTextileDecoupledLToL class. This is accessible via Python scripting.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.13.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:30, 27th July 2023 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen Chapter in new book: Advanced Weaving Technology ===&lt;br /&gt;
Published on 3rd April 2022 this book provides state-of-the-art information on weaving technology and 3D fabrics. It examines weaving preparation, mechanics and limits of the weaving processes, pattern design and applications. The TexGen chapter gives a practical overview and introduction to the use of TexGen and the modelling theory used in the software. There is a guide to creating automatically generated textile models using the built-in weave wizards and a detailed example of the method for creating a textile model using the functionality within the graphical user interface (GUI). An overview of the Python application programming interface (API) is given, illustrated by an example script, as well as information on how to use the Python functions to edit existing textiles. Finally there is an overview of the options for different meshing and export options used to prepare models as input for simulations.&lt;br /&gt;
&lt;br /&gt;
The TexGen chapter is available [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6 here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:17, 14 April 2022 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== TexGen Webinar: Exporting TexGen Models for Simulation===&lt;br /&gt;
====27th April 2021, 2pm (BST) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will describe the use of TexGen as a preprocessor for simulations using textile models and will cover:&lt;br /&gt;
*The different export options available, including file formats and meshing options&lt;br /&gt;
*Examples of different types of simulations using TexGen models, e.g. prediction of mechanical properties and permeability&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/BVME9evj0kc Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/webinar2_TexGenExport.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
=== TexGen Webinar: Introduction to Creating Textile Models Using TexGen===&lt;br /&gt;
==== 23rd March 2021, 2pm (GMT) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will give an introduction to TexGen and will cover:&lt;br /&gt;
*The use of the TexGen graphical user interface (GUI) to create and edit 2D woven structures.&lt;br /&gt;
*An outline of the modelling theory used in the TexGen software which will enable users to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/xDYRhVvwd2E Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/Webinar1_IntroductionToTexGen.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.2 Released! ===&lt;br /&gt;
Version 3.12.2 has been released. This contains a bugfix to octree refinement when starting with a number of voxels other than 1x1x1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:15, 15 March 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.1 Released! ===&lt;br /&gt;
Version 3.12.1 has been released. This contains extension of the ABAQUS Voxel File export to provide access to the octree refinement with Laplacian smoothing from the GUI. The octree refinement can now be started with a user-specified number of voxels.&lt;br /&gt;
&lt;br /&gt;
Correct Small Intersections tool has been added to the Tools menu (previously only accessible via the ABAQUS Dry Fibre export option).&lt;br /&gt;
&lt;br /&gt;
Tetgen export has been updated to include the o2 option allowing export of quadratic tet element.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.1/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17:00, 12 February 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.0 Released! ===&lt;br /&gt;
Version 3.12.0 has been released. This contains functions for octree refinement of voxel meshes with Laplacian smoothing. These are available using Python commands and instructions for their use are given here: [[Using Octree Refinement and Mesh Smoothing]]&lt;br /&gt;
&lt;br /&gt;
There are new options to create surface meshes in ABAQUS inp format and voxel meshes in vtu format.&lt;br /&gt;
&lt;br /&gt;
There is a bugfix to the correct reversal of G13 and G23 when calculating material properies using periodic boundary conditions as set up inthe voxel mesh export (issue 22 on GitHub).&lt;br /&gt;
&lt;br /&gt;
A Refresh View option has been added.&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:12, 11 March 2020 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Workshop: A Practical Introduction to Creating Textile Models===&lt;br /&gt;
====15th November 2019, CMSC, Purdue University, USA====&lt;br /&gt;
•	This interactive workshop will demonstrate the use of the TexGen graphical user interface (GUI) to create and edit 2D and 3D woven structures.  An outline of the modelling theory used in the TexGen software will be given which will enable the user to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
•	Python scripting for TexGen will be introduced and will be demonstrated both for editing models within the GUI and for creating custom scripts for maximum control over the textile structures created.&lt;br /&gt;
&lt;br /&gt;
•	An overview will be given of the use of TexGen as a pre-processor for generating textile models and its use in the multiscale modelling process, including export options which allow TexGen models to be easily exported to third-party software such as ABAQUS which can then be used in simulations for prediction of material properties.&lt;br /&gt;
&lt;br /&gt;
The workshop will be held at the [http://www.Purdue.edu/cmsc Composites Manufacturing and Simulation Centre], Purdue University and is free to attend but places are limited, so booking is essential. Participants will be required to bring their own laptops in order to follow the exercises. &lt;br /&gt;
&lt;br /&gt;
To book a place please register via [https://www.eventbrite.com/e/texgen-workshop-a-practical-introduction-to-creating-textile-models-tickets-73971830737 Eventbrite]&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.11.0 Released! ===&lt;br /&gt;
Version 3.11.0 has been released. This contains upgrades to the VTK, wxWidgets, triangle and OpenCASCADE libraries to address issues with the Python 27 version running on Windows 10.&lt;br /&gt;
&lt;br /&gt;
Periodic boundary conditions have been added for rotated textiles in the voxel mesh export.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.11.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:15, 7 June 2019 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.10.0 Released! ===&lt;br /&gt;
Version 3.10.0 has been released. This contains a Rotate Textile option which can be used in conjunction with the Layer Textile option to create laminates with different textile orientations.&lt;br /&gt;
&lt;br /&gt;
There are new options to import weave patterns and then create pattern drafts from certain types of weave patterns.&lt;br /&gt;
&lt;br /&gt;
There has been some code optimisation to speed up the functions which calculate volume fraction and yarn orientations in the export functions.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.10.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;18:00, 13 December 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Survey ===&lt;br /&gt;
The latest version of TexGen (3.9.0) included an invitation to complete a survey on exit from the program. This takes just a few minutes and can be found [https://nottingham.limequery.com/728617?lang=en here].  If you are a TexGen user we would be grateful if you could find the time to complete this.&lt;br /&gt;
&lt;br /&gt;
The information in the survey is crucial to us as it will help us to put together the case for continued funding of the TexGen project which, for the most part, is supported by UK Research Council funding.&lt;br /&gt;
&lt;br /&gt;
Many thanks for your help!&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.9.0 Released! ===&lt;br /&gt;
Version 3.9.0 has been released.  This contains functions to create a mesh of the centre plane of yarns using quad elements and functions to find the point on a yarn surface which is closest to a specified point.&lt;br /&gt;
&lt;br /&gt;
On exit from the program a dialog is triggered which points the user to an online survey.  This is entirely optional but information about usage and benefit from using the software will help us to make the case with research councils to continue funding the project.  This will enable us to continue its development and to keep it as free software.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.9.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:15, 14 February 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.2 Released! ===&lt;br /&gt;
Version 3.8.2 has been released. This contains functions to calculate fibre volume fractions of specified domains (unit cells if these correspond) and yarns. Functionality has been added to allow an angle to be specified at a node so that a cross-section can be angled relative to the yarn tangent.  Creation of pattern draft for layer-to-layer textiles. Added option to wizards to select whether or not 10% is added to height of default domain.&lt;br /&gt;
&lt;br /&gt;
Windows installation files are available with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issues on some machines with the Python27 bundled versions. If Python27 is required install Python from here https://www.python.org/downloads/ and then use any of the Python27 files.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.2/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:11, 19 January 2016 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.0 Released! ===&lt;br /&gt;
Version 3.8.0 has been released. This contains the addition of a maximum nesting function to layered textiles.  Changes to the 2D weave refine options have been implemented to allow more flexibility as to which functions are called when using the API. These have also been changed to allow refinement of non-periodic textiles. Option to select non-periodic mesh when using Tetgen meshing has been implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:08, 16 March 2015 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.7.0 Released! ===&lt;br /&gt;
Version 3.7.0 has been released. This contains the addition of layered textiles.  These can be created from the 2D weave wizard where a number of layers can be specified or from an option in the Textiles menu where different textiles can be stacked by making a selection from those loaded in the GUI.  Offsets can be set between the layers and simple nesting is implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.7.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:36, 7 August 2014 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.1 Released! ===&lt;br /&gt;
Version 3.6.1 has been released.  This contains changes to the Volume Mesh export to give matching nodes and elements on opposite faces of the unit cell.  ABAQUS input files can then be generated with periodic boundary conditions. (Note that this meshing method is not suitable for 3D weaves with vertical or near-vertical yarns).  Changes have been made to the 3D Weave Wizard to allow all warp yarns to be binder yarns.  The Window installation files now use Python 2.6 thus giving compatibility with recent versions of ABAQUS.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:19, 27 January 2014 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.0 Released! ===&lt;br /&gt;
Version 3.6.0 has been released.  This contains the addition of a sheared textile option to the 2D weave wizard.  This will automatically generate sheared 2D textiles and includes a refine option to minimise yarn intersections.  Associated sheared domain, sheared voxels and periodic boundary conditions may also be created. An option to create staggered periodic boundary conditions has been added for textiles which include an offset repeat, so as to minimise unit cell size.  There are various other small changes and bugfixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:41, 8 August 2013 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.3 Released! ===&lt;br /&gt;
Version 3.5.3 has been released.  This contains modification of the PointInsideYarn function to give correct solutions for yarns with both convex and concave yarn sections.  There are improvements to the 3D orthogonal weave refine option.  Scripts have been made available to give automatic extraction of material properties following simulations using the Abaqus voxel mesh option.  There are various optimisation changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.3/README/view here].&lt;br /&gt;
&amp;lt;small&amp;gt;13.56, 12 November 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.2 Released! ===&lt;br /&gt;
Version 3.5.2 has been released.  This contains the addition of a refine option to the 3D orthogonal weave.  The geometry is adjusted to achieve a given overall fabric thickness.  Fibre orientation calculations have been improved to reflect the variations in yarn cross-sections and a render fibre orientation functions has been added to the user interface.  A rectangular yarn section has been added.  There are also various bug fixes. Windows 32 and 64 bit installers are now available.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.2/README/view here].&lt;br /&gt;
&lt;br /&gt;
===Workshop Presentations===&lt;br /&gt;
The presentations from the TexGen workshop held at the East Midlands Conference Centre on 2nd May 2012 are now available to view on the Documentation page [http://texgen.sourceforge.net/index.php/Documentation here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:09, 8 May 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.1 Released! ===&lt;br /&gt;
Version 3.5.1 has been released.  This contains the addition of offset angle interlock weaves and specification of power ellipse power in the 3d weave wizard.  An export function has been added which uses the open source software Tetgen to generate tetrahedral meshes.  It also contains the addition of an x offset to the power ellipse section and various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:20, 1 March 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.0 Released! ===&lt;br /&gt;
Version 3.5.0 has been released.  This contains a new wizard for automatic creation of idealised orthogonal, angle interlock and layer-to-layer 3d textile weaves. It also contains various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:00, 13 October 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.1 Released! ===&lt;br /&gt;
Version 3.4.1 has been released. This contains minor changes to ABAQUS voxel mesh output and some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:09, 22 June 2011 &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.0 Released! ===&lt;br /&gt;
Version 3.4.0 has been released. It contains the addition of periodic boundary conditions to the Abaqus voxel mesh output.  The dry fibre volume mesh intersection correction has been improved and an additional option added to regenerate the textile model using the adapted mesh following correction.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.0/ReleaseNotes3.4.0.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:49, 16 March 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.3 Released! ===&lt;br /&gt;
Version 3.3.3 has been released.  It contains new features to save fibre and/or matrix as a voxel mesh in Abaqus format, to assign fibre properties to individual yarns and to adjust for small intersections in dry fibre volume mesh when outputting to Abaqus format.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.3.3/ReleaseNotes3.3.3.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;4 November 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.2 Released! ===&lt;br /&gt;
Version 3.3.2 has been released.  It contains new features to save fibre models to Abaqus output, render fibre volume mesh and render interference depth.  There are also some bug fixes, in particular a couple to get the GUI working in the Linux version.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.2/Release%20notes3-3-2.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15 June 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.3.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.1 has been released (currently only Windows versions). It contains a couple of bug fixes and an option to switch output of messages on and off.  A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.1/Release%20notes3-3-1.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17 March 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.0 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.0 has been released, it has various bug fixes most notably to the volume mesher and a few new algorithms dealing with geometry prediction based on mechanical behaviour of yarns. A list of changes can be found [https://sourceforge.net/project/shownotes.php?group_id=181000&amp;amp;release_id=591019 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:52, 9 April 2008 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.2.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.2.1 has been released, this is mainly a bug fix release however there are a few new features. A list of changes can be found [http://sourceforge.net/project/shownotes.php?release_id=553663&amp;amp;group_id=181000 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;04:12, 13 November 2007 (PST)&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>TexGen Applications</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-04-15T11:48:54Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally developed at the University of Nottingham to describe textile composite reinforcements, TexGen has various applications in modelling dry fabric mechanics, fluid flow through fabrics and mechanics of textile composites. This page contains information on published and current research activity related to TexGen. Further information is available on the [https://www.nottingham.ac.uk/research/groups/composites-research-group/research/textile-composites/textile-composites.aspx textile composite research pages] at the University of Nottingham.&lt;br /&gt;
&lt;br /&gt;
* [[Textile mechanics]]&lt;br /&gt;
&lt;br /&gt;
* [[Textile permeability]]&lt;br /&gt;
&lt;br /&gt;
* [[Textile composite mechanics]]&lt;br /&gt;
&lt;br /&gt;
* [[Textile composite heat transfer]]&lt;br /&gt;
&lt;br /&gt;
* [[Textile composite viscous forming]]&lt;br /&gt;
&lt;br /&gt;
* [[Other applications]]&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Compiling from Source</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2024-07-05T14:40:02Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These  [http://texgen.sourceforge.net/documents/HowToBuildTexGen.pdf slides] give a walkthrough of how to compile TexGen and its modules. If you are unfamiliar with building software such as this they may be easier to follow than the instructions below. &lt;br /&gt;
&lt;br /&gt;
In order to compile TexGen and &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; of its modules, the following software is required:&lt;br /&gt;
&lt;br /&gt;
The following programs are needed to build TexGen:&lt;br /&gt;
* [http://www.cmake.org/ CMake]&lt;br /&gt;
* [http://www.swig.org/ SWIG]&lt;br /&gt;
&lt;br /&gt;
The following libraries are needed to link to TexGen:&lt;br /&gt;
* [http://www.vtk.org/ VTK]&lt;br /&gt;
* [http://www.wxwidgets.org/ wxWidgets]&lt;br /&gt;
* [http://www.opencascade.org/ OpenCascade]&lt;br /&gt;
* [http://www.python.org/ Python]&lt;br /&gt;
&lt;br /&gt;
However to perform a minimum build of TexGen with none of the additional modules you only require CMake and a C++ compiler. It is recommended to begin with a minimum build, once that is working try adding modules one at a time. A list of modules along with dependencies is shown below:&lt;br /&gt;
&lt;br /&gt;
* Python interface: Python, SWIG&lt;br /&gt;
* Renderer: VTK&lt;br /&gt;
* Export: OpenCascade&lt;br /&gt;
* GUI: wxWidgets, Renderer, Python interface&lt;br /&gt;
* Unit tests: CPPUnit&lt;br /&gt;
&lt;br /&gt;
A graphical representation of the modules and their dependencies can also be found in the [http://texgen.sourceforge.net/api/ TexGen API].&lt;br /&gt;
&lt;br /&gt;
If you want to get the source code from GitHub you will need to install [https://git-scm.com/downloads Git] by following the instructions below. Note that this is the very latest development source and so may it contain some bugs and unfinished features. However it is very easy to keep up to date with the latest version of TexGen using this method and will allow you to keep any modifications you have made to the source when updating. If you find a bug or implement new features that may be useful to the rest of the community please send a pull request and they will be incorporated into TexGen following review.&lt;br /&gt;
&lt;br /&gt;
Alternatively the stable source code can be downloaded as a [http://sourceforge.net/project/showfiles.php?group_id=181000 tarball]. Download the latest file release named &amp;#039;&amp;#039;texgen-3.x.x.tar.gz&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Windows (Microsoft Visual Studio C++, recommended method) ==&lt;br /&gt;
&lt;br /&gt;
[http://texgen.sourceforge.net/documents/HowToBuildTexGen.pdf Presentation giving a walkthrough for building TexGen from source] (Python 3 builds only)&lt;br /&gt;
 &lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
It is assumed that Microsoft Visual Studio is already installed.  If it isn&amp;#039;t and you plan to use it, then install it.  It may be possible to use the free [http://www.microsoft.com/express/ Visual Studio Express]; if anyone tries this and finds out one way or the other, please post the information either here or in the [http://texgen.sourceforge.net/phpBB2/index.php forum]. Brief instructions on how to install the various 3rd party libraries under windows are given below. Note that you do not need to install all of these in order to perform the minimal build. Only CMake is absolutely required.&lt;br /&gt;
&lt;br /&gt;
TexGen versions 3.11.0 onwards have been built with VS2017. All of the libraries used can be built with this version of Visual Studio.&lt;br /&gt;
&lt;br /&gt;
==== CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and install, selecting &amp;#039;Add CMake to the system PATH for all users&amp;#039; (select current user if this is not permissible on your system).&lt;br /&gt;
&lt;br /&gt;
==== Git ====&lt;br /&gt;
&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and install it.&lt;br /&gt;
&lt;br /&gt;
==== SWIG ====&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/ Download] the windows .zip files and extract to a suitable location (e.g. c:\Program Files\swigwin-4.0.2).  The current version of TexGen is built with version 4.0.2&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/ Download Python] and install.  Note that TexGen version 3.13 is built with Python 3.9. Versions prior to that were built with Python 2.7.&lt;br /&gt;
&lt;br /&gt;
For a Release build the include files and python39.lib provided with the standard installation can be used. &lt;br /&gt;
&lt;br /&gt;
For a Debug build it is necessary to build a debug version of Python. Download the latest [https://www.python.org/downloads/source/ source release] and follow the instructions in the README for building for your environment. For Visual Studio use the VS solution in the PCBuild folder. Version 3.13 was built with Python 3.9.9.&lt;br /&gt;
Note that for newer VS versions it is necessary to apply this [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/issues/161 patch] in order for the build to be successful.&lt;br /&gt;
&lt;br /&gt;
==== OpenCascade ====&lt;br /&gt;
&lt;br /&gt;
[https://dev.opencascade.org/release Download OpenCascade] and install; this extracts the files to a directory. If the installation doesn&amp;#039;t start automatically, run the &amp;#039;install.bat&amp;#039; file located the directory where the files where extracted (read &amp;#039;readme.htm&amp;#039; file in the same directory for more information).  Choose &amp;#039;complete installation&amp;#039; and tick the box to set the environment variables.  The current version of TexGen is built with OpenCascade version 7.0.0.&lt;br /&gt;
&lt;br /&gt;
==== VTK ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/louisepb/VTK-6.3 Download] version 6.3.0 of the source files and extract them. Instructions for building VTK using CMake are given on the [https://vtk.org/Wiki/VTK/Configure_and_Build VTK webpage] The following CMake settings should be set:&lt;br /&gt;
&lt;br /&gt;
 BUILD_EXAMPLES           OFF&lt;br /&gt;
 BUILD_SHARED_LIBS        OFF&lt;br /&gt;
 VTK_USE_MPEG2_ENCODER    OFF&lt;br /&gt;
 VTK_USE_PARALLEL         OFF&lt;br /&gt;
 VTK_USE_RENDERING        ON&lt;br /&gt;
 VTK_WRAP_JAVA            OFF&lt;br /&gt;
 VTK_WRAP_PYTHON          OFF&lt;br /&gt;
 VTK_WRAP_TCL             OFF&lt;br /&gt;
&lt;br /&gt;
(Version 6.3 is no longer available on the VTK webpage so the link above makes this available until TexGen has been modified to work with more recent VTK versions).&lt;br /&gt;
You may be able to get things working with different settings, however these are the settings I use and are known to work.&lt;br /&gt;
&lt;br /&gt;
==== wxWidgets ====&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/downloads/ Download] and install the windows version 3.2.5 of wxWidgets (wxMSW). It is then necessary to compile wxWidgets from source. Detailed instructions on how to do this can be found in &amp;#039;install.txt&amp;#039; located in the &amp;#039;docs\msw&amp;#039; subfolder. The main steps are to open &amp;#039;wx_vcN.sln&amp;#039; with MS Visual Studio (where N is the appropriate version) located in the &amp;#039;build\msw&amp;#039; subfolder and compile both Release and Debug configurations (The configuration can be selected from the drop down box on the main toolbar in Visual Studio. Universal and DLL versions need not be compiled).&lt;br /&gt;
&lt;br /&gt;
==== CppUnit ====&lt;br /&gt;
To build the test module download [https://www.freedesktop.org/wiki/Software/cppunit/ cppunit]&lt;br /&gt;
&lt;br /&gt;
The VS solution is in the Examples folder. When this is run, accept the option to upgrade to your version of VS and then build. The resulting cppunit.lib file can then be found in the /lib folder.&lt;br /&gt;
&lt;br /&gt;
=== Checkout TexGen source code from GitHub ===&lt;br /&gt;
* Create a directory where you would like to store the TexGen source code in Windows Explorer. &lt;br /&gt;
* Open a Git Bash shell within that folder.&lt;br /&gt;
* Type &lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
A new TexGen folder will have been created which contains a downloaded copy of the TexGen repository.&lt;br /&gt;
&lt;br /&gt;
=== Configuring the build system with CMake ===&lt;br /&gt;
Run CMake from its shortcut on the Start menu. There are some general instructions on using CMake on the [https://cmake.org/cmake-tutorial/ CMake website] which are worth reading. You will need to fill in the source code location, this should point to where you checked out out the latest TexGen GitHub code or where you extracted the source code from the zip file. Also set where to place the binary files once they are compiled, this can be the same as the source directory, a subdirectory within the source directory or any other location.&lt;br /&gt;
&lt;br /&gt;
Once that is entered click &amp;#039;Configure&amp;#039; and choose the Visual Studio version which you have installed and click ok. You will initially get a number of error messages such as:&lt;br /&gt;
&lt;br /&gt;
 CMake Error: Swig was not found on the system. Please specify the location of Swig. (click OK)&lt;br /&gt;
 CMake Error: Error in configuration process, project files may be invalid. (click OK)&lt;br /&gt;
&lt;br /&gt;
This is normal, in order to get rid of the errors you will need to tell CMake where the various libraries you have installed can be found. This is done in the Cache Values sections.&lt;br /&gt;
&lt;br /&gt;
It is recommended to begin with a minimal build, this is achieved by setting the cache values as follows:&lt;br /&gt;
&lt;br /&gt;
 BUILD_CASCADE_EXPORT           OFF&lt;br /&gt;
 BUILD_DOCUMENTATION            OFF&lt;br /&gt;
 BUILD_EXAMPLES                 OFF&lt;br /&gt;
 BUILD_GUI                      OFF&lt;br /&gt;
 BUILD_PYTHON_INTERFACE         OFF&lt;br /&gt;
 BUILD_RENDERER                 OFF&lt;br /&gt;
 BUILD_SHARED                   ON&lt;br /&gt;
 BUILD_UNIT_TESTS               OFF&lt;br /&gt;
&lt;br /&gt;
Once these are set press configure again and you shouldn&amp;#039;t have any more errors/warnings. Press &amp;#039;OK&amp;#039; to generate the MSVC solution and project files. Configuring the various optional modules is explained in [[#Configuring optional modules]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring optional modules ===&lt;br /&gt;
&lt;br /&gt;
Once the minimal build is working you may want to switch on the optional modules. To do this open up CMake again and switch the modules you want to ON in the Cache Values then click Configure. You will most likely see some errors telling you it is unable to automatically find certain directories. You will need to specify these manually. An explanation of the different locations is listed below:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039;&amp;#039;&amp;#039; - This should be the folder where the TexGen python modules will be placed. Usually located in &amp;#039;C:\Python27\Lib\site-packages&amp;#039;, but this will depend on the version of Python installed and where you decided to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_DIR&amp;#039;&amp;#039;&amp;#039; -  This is the location where you extracted the SWIG executable. e.g. &amp;#039;C:\Program Files\swigwin-2.0.10&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_EXECUTABLE&amp;#039;&amp;#039;&amp;#039; - Same as root directory followed by &amp;#039;swig.exe&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_ROOT_DIR&amp;#039;&amp;#039;&amp;#039; - Location where you install wxWidgets. e.g. &amp;#039;C:/wxWidgets-3.2.5&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_LIB_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the wxWidgets libraries were compiled to, should be the same as the root directory followed by &amp;#039;lib/vc_lib&amp;#039; or &amp;#039;lib/vc_x64_lib&amp;#039; for 64-bit builds.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WX&amp;#039;&amp;#039;&amp;#039; - CMake may not automatically pick up the location of all libraries in which case these may need to be input manually. The image below shows the CMake GUI part way through specifying the library locations&lt;br /&gt;
[[Image:wxWidgetsCMake.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_INCLUDE_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade header files are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/inc&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/lib&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_DEBUG_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade debug libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/libd&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VTK_DIR&amp;#039;&amp;#039;&amp;#039; - Location of the VTK binary directory (note: not the source directory).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CPPUNIT_LIBRARY&amp;#039;&amp;#039;&amp;#039; - Location where the cppunit library file is located. e.g. &amp;#039;C:/cppunit-1.15.1/lib/cppunit.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After setting the directories manually, click on configure again. You may need to go through several iterations of changing parameters then pressing configure. Once you have finished changing parameters and have successfully pressed configure without error messages you can press the OK button to generate the build. Note: you can always come back to this at a later time to make changes.&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Find &amp;#039;TexGen.sln&amp;#039; which should be located in the directory where you told CMake to output the binary files to and open it with Microsoft Visual Studio.&lt;br /&gt;
&lt;br /&gt;
Set the configuration to &amp;#039;Release&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
If building the Graphical User Interface with Visual Studio 2008 or later open the properties page for the TexGenGUI project.  Select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Build the solution. Hopefully the project will have been compiled without errors.&lt;br /&gt;
&lt;br /&gt;
If you want to compile and execute the Graphical User Interface you will need to install it, you will not be able to execute it directly from the build directory. This is done by right click on the &amp;#039;INSTALL&amp;#039; project in the Solution Explorer and selecting Build. This will copy the Python modules into the Python site-packages directory so that they can be imported into scripts, and it will copy the executable along with other necessary files into &amp;#039;C:\Program Files\TexGen\&amp;#039; by default (this can be changed with the CMAKE_INSTALL_PREFIX cache value in CMake). TexGenGUI.exe should then be run from the installed location, if you attempt to run it directly from where it was compiled you will get some errors on launch.&lt;br /&gt;
&lt;br /&gt;
=== Building the documentation ===&lt;br /&gt;
&lt;br /&gt;
To build the documentation, [http://www.doxygen.nl/download.html Doxygen] and [https://graphviz.gitlab.io/download/ Graphviz] are required.  Open a command prompt in the &amp;#039;Docs&amp;#039; subdirectory of the source code and run &amp;#039;doxygen&amp;#039;. If the doxygen directory is not in your path, you must add it, or give the full path on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Integrating TexGen with ABAQUS ===&lt;br /&gt;
&lt;br /&gt;
If you are using ABAQUS and wish to use TexGen Python scripting from within the ABAQUS/CAE environment, there are a few extra steps to perform. This is because ABAQUS comes packaged with its own version of Python, so any modules added to your standalone python installation will not be accessible by ABAQUS. You must compile the TexGen Python modules with the same version of Python as ABAQUS uses. The following table shows which version of Python is used in specific ABAQUS versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ABAQUS Version !! Python Version&lt;br /&gt;
|-&lt;br /&gt;
| 6.6-1  || 2.3.3&lt;br /&gt;
|- &lt;br /&gt;
| 6.7-1  || 2.4.3 &lt;br /&gt;
|- &lt;br /&gt;
| 6.10-2 || 2.6.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.14-1 || 2.7.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If your version of ABAQUS is not listed in the table above you can type &amp;#039;abaqus python -V&amp;#039; to check what version of Python is used (then please edit this page to update the table). You can obtain specific versions of Python from https://www.python.org/downloads/source/ .&lt;br /&gt;
&lt;br /&gt;
Additionally you will need to place the TexGen python modules inside ABAQUS&amp;#039; version of python. There are a few ways to accomplish this, the easiest is perhaps to set the CMake cache variable &amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039; point to the ABAQUS&amp;#039; python directory, e.g.:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR     C:\Abaqus\6.14-1\Python\Lib\&lt;br /&gt;
&lt;br /&gt;
Then when you build the INSTALL project in MSVC++ it will automatically copy the TexGen python modules to the ABAQUS&amp;#039; Python. Alternatively you can simply copy the files manually or modify Python&amp;#039;s search path to include the TexGen python modules, e.g. In python:&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.path.append(&amp;#039;C:/Python27/Lib/site-packages/&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
There may also be a need to modify the file [source code location]/Installer/texgen.nsi.  The original version, lines 1-3 are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python25.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while on Jon&amp;#039;s version they are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python24.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error LNK1104: cannot open file &amp;#039;python25_d.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; The windows installation of Python doesn&amp;#039;t come with the debug library (&amp;#039;python25_d.lib&amp;#039;, the _d part means debug). You should be able to compile in release mode however. If you really want to compile in debug mode you will need to compile Python from source and link to that. Or you can try to link to the release library &amp;#039;python25.lib&amp;#039; instead, easiest way to do that is to copy &amp;#039;python25.lib&amp;#039; to &amp;#039;python25_d.lib&amp;#039; but this may cause problems during linking or execution.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error C1083: Cannot open include file: &amp;#039;wx/wxprec.h&amp;#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Make sure that you have compiled wxWidgets and that the wxWidgets_XXX cache variables are set correctly in CMake.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I do not have a &amp;#039;libd&amp;#039; folder in &amp;#039;ros/win32&amp;#039; for OpenCASCADE.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; If you do not compile OpenCASCADE yourself then this folder does not exist. However it can be ignored if you are only interested in building the release version of TexGen. If you really want to compile the debug version please refer to the OpenCASCADE documentation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; Why do I get the error message: &amp;quot;The parameter is incorrect.&amp;quot; when launching TexGenGUI.exe?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; In the TexGenGUI Property Pages select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I am getting error messages at the stage of building GUI:[ 86%] Building CXX object GUI/CMakeFiles/TexGenGUI.dir/PrecompiledHeaders.cpp.o&lt;br /&gt;
In file included from /usr/include/python2.4/pyconfig.h:6,&lt;br /&gt;
                 from /usr/include/python2.4/Python.h:8,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:30,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/usr/include/python2.4/pyconfig-64.h:823:1: warning: &amp;quot;_FILE_OFFSET_BITS&amp;quot; redefined&lt;br /&gt;
&amp;lt;command line&amp;gt;:1:1: warning: this is the location of the previous definition&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/wx.h:15,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/defs.h:42:13: error: #error &amp;quot;No Target! You should use wx-config program for compilation flags!&amp;quot;&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/cmndata.h:17,&lt;br /&gt;
                 from /data/include/wx-2.8/wx/wx.h:65,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/encinfo.h:64:6: error: #error &amp;quot;Unsupported toolkit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and lots of othe warnings and error messages afterwards.&lt;br /&gt;
&lt;br /&gt;
The location of wx-config is correct in cmake; wxWidgets installation appears to have been successful; the system is Red Hat Linux 64-bit&lt;br /&gt;
&lt;br /&gt;
== Windows (Cygwin and gcc, alternate method) ==&lt;br /&gt;
A limited build (without graphics) can be made under cygwin, this is a UNIX emulation environment available at [http://www.cygwin.com www.cygwin.com]. &lt;br /&gt;
This can exist peacefully next to the native windows version. &lt;br /&gt;
Cygwin creates a unix-style file system within your windows installation. If you choose c:/cygwin as your install directory, your HOME will be at c:/cygwin/home/&amp;lt;username&amp;gt;/. &lt;br /&gt;
&lt;br /&gt;
=== Download cygwin and install packages ===&lt;br /&gt;
Install gcc, g++, wget, make and cmake using the setup.exe program from the cygwin website. &lt;br /&gt;
For the mesh generator and python interface to work we currently need VTK and swig. &lt;br /&gt;
&lt;br /&gt;
This downloads and installs swig from source (when starting the cygwin shell you can paste this into the command line, otherwise write it to a file and run it with sh). &lt;br /&gt;
 mkdir progs&lt;br /&gt;
 cd progs &lt;br /&gt;
 SWIG=swig-1.3.31&lt;br /&gt;
 wget -nc http://kent.dl.sourceforge.net/sourceforge/swig/$SWIG.tar.gz&lt;br /&gt;
 tar xzvf $SWIG.tar.gz &lt;br /&gt;
 cd $SWIG&lt;br /&gt;
 ./configure &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This downloads and installs VTK from source, in the ccmake stage, use the cmake graphical commands to get a working install. &lt;br /&gt;
 VTK=vtk-6.3.0&lt;br /&gt;
 wget -nc https://vtk.org/download/&lt;br /&gt;
 tar xzvf $VTK.tar.gz&lt;br /&gt;
 mkdir vtkbin&lt;br /&gt;
 cd vtkbin&lt;br /&gt;
 ccmake ../VTK&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Install TexGen from source ===&lt;br /&gt;
Now we can proceed to install texgen, as an example we&amp;#039;ll work in ~/temp/texgen&lt;br /&gt;
 cd ~; mkdir temp; cd temp; mkdir texgen; cd texgen&lt;br /&gt;
 svn checkout svn//svn.code.sf.net/p/texgen/code/TexGen/trunk/ TexGen&lt;br /&gt;
 cd .. ; mkdir tbin; cd tbin&lt;br /&gt;
 ccmake ../texgen&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This should result in a working texgen install in ~/temp/texgen/tbin.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
=== Notes ===&lt;br /&gt;
If you are installing to a system where you don&amp;#039;t have root access (i.e. this computer does not belong to you) you won&amp;#039;t be able to install the software using the default configure script. This is because by default software is installed to the /usr/local directory. If you are not a systems administrator then you will quite rightly not have write access to this folder. All is not lost! You can still install software into your home directory. In order to do this you should always call the configure script with the following parameter: --prefix=$HOME. This goes for all the software to be installed below. All executables will then be placed in ~/bin, libraries in ~/lib, includes in ~/include, etc...&lt;br /&gt;
&lt;br /&gt;
In the guide below the parameter is included in italic. If you do in fact have root access then it is recommended to omit this parameter and install to the default directory so that other users will also have access to the software.&lt;br /&gt;
&lt;br /&gt;
=== Get TexGen from GitHub repository ===&lt;br /&gt;
&lt;br /&gt;
==== Install Git ====&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and unpack.&lt;br /&gt;
&lt;br /&gt;
==== Clone TexGen ====&lt;br /&gt;
Open a shell in folder you wish to place TexGen (e.g. ~/):&lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
&lt;br /&gt;
=== Compile source ===&lt;br /&gt;
&lt;br /&gt;
==== Install CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and unpack.&lt;br /&gt;
Open a shell in extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==== Compile TexGen core ====&lt;br /&gt;
Open a shell in the folder with the TexGen source code (e.g. ~/TexGen):&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 cd bin&lt;br /&gt;
 ccmake ../&lt;br /&gt;
Press &amp;#039;c&amp;#039; to configure. When a warning pops up telling you it can&amp;#039;t find such and such a file press &amp;#039;e&amp;#039; to close it. You will now need to specify which components of TexGen to build and where their dependencies can be found. Use the up and down arrows to move the caret and press enter to modify options. Do this to set BUILD_GUI, BUILD_PYTHON_INTERFACE and BUILD_RENDERER to OFF. You are basically telling CMake not to attempt to build these components, which means that you won&amp;#039;t need to have installed their dependencies.&lt;br /&gt;
&lt;br /&gt;
Similarly to the --prefix=$HOME parameter to the configure script, you can tell CMake to install TexGen to your home directory by changing CMAKE_INSTALL_PREFIX to ~/. Note that it won&amp;#039;t actually install anything until you get type make install.&lt;br /&gt;
&lt;br /&gt;
Now press &amp;#039;c&amp;#039; again to update the changes.&lt;br /&gt;
&lt;br /&gt;
Hopefully now that all the additional modules have been switched off no errors will be shown. Press &amp;#039;g&amp;#039; to generate the makefiles and exit. At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Note that at this point you have only built and installed the TexGen Core library which doesn&amp;#039;t actually do anything on its own. If you plan to incorporate TexGen into your own C++ program then this is enough, however if you would like to interface with TexGen from a Python script or Graphical User Interface then follow the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Compiling optional modules ===&lt;br /&gt;
==== Python interface ====&lt;br /&gt;
[http://www.python.org/download/ Download Python] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/download.html Download SWIG] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Open a shell in the folder where you called ccmake from for the first time (e.g. ~/TexGen/bin):&lt;br /&gt;
 ccmake ../&lt;br /&gt;
&lt;br /&gt;
Use the up and down arrows to reach BUILD_PYTHON_INTERFACE and press Enter to set it to ON. Then press &amp;#039;c&amp;#039; to configure. You will probably get a warning saying you need to specify the location of SWIG and/or Python, press &amp;#039;e&amp;#039; to close it.&lt;br /&gt;
&lt;br /&gt;
Set the PYTHON_INCLUDE_PATH, PYTHON_LIBRARY, PYTHON_SITEPACKAGES_DIR, SWIG_DIR and SWIG_EXECUTABLE parameters correctly where necessary. If you have installed packages to your home directory then they should look something like this:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_INCLUDE_PATH: ~/include/python2.7&lt;br /&gt;
 PYTHON_LIBRARY: ~/lib/python2.5/config/libpython2.7.a&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR: ~/lib/python2.7/site-packages&lt;br /&gt;
 SWIG_DIR: ~/bin&lt;br /&gt;
 SWIG_EXECUTABLE: ~/bin/swig&lt;br /&gt;
&lt;br /&gt;
Once that is done press &amp;#039;c&amp;#039; again. You may need perform this process over several iterations. When everything is set correctly press &amp;#039;g&amp;#039; to generate the makefiles.&lt;br /&gt;
&lt;br /&gt;
At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Assuming the build completed without errors you should now be able to access TexGen functions from within Python. In order to check everything worked as planned open Python in interactive mode by typing:&lt;br /&gt;
 python&lt;br /&gt;
&lt;br /&gt;
Then from within Python type:&lt;br /&gt;
 from TexGen.Core import *&lt;br /&gt;
 CTexGen.GetInstance().GetVersion()&lt;br /&gt;
&lt;br /&gt;
This should display the version of TexGen installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when linking _Core.so:&lt;br /&gt;
 libpython2.5.a(abstract.o): relocation R_X86_64_32 against `a local symbol&amp;#039;&lt;br /&gt;
 can not be used when making a shared object; recompile with -fPIC&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Try removing libpython2.5.a from the libraries to link to by setting PYTHON_LIBRARY to a bogus path, e.g.:&lt;br /&gt;
&lt;br /&gt;
PYTHON_LIBRARY: ~/&lt;br /&gt;
&lt;br /&gt;
By doing so you may receive a warning similar to this:&lt;br /&gt;
 Warning: Ignoring path found in link libraries for target: _Core, path is:&lt;br /&gt;
 /home/username. Expected a library name or a full path to a library name.&lt;br /&gt;
This warning may be ignored.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Compiling from Source</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2024-06-26T15:45:11Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Configuring optional modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to compile TexGen and &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; of its modules, the following software is required:&lt;br /&gt;
&lt;br /&gt;
The following programs are needed to build TexGen:&lt;br /&gt;
* [http://www.cmake.org/ CMake]&lt;br /&gt;
* [http://www.swig.org/ SWIG]&lt;br /&gt;
&lt;br /&gt;
The following libraries are needed to link to TexGen:&lt;br /&gt;
* [http://www.vtk.org/ VTK]&lt;br /&gt;
* [http://www.wxwidgets.org/ wxWidgets]&lt;br /&gt;
* [http://www.opencascade.org/ OpenCascade]&lt;br /&gt;
* [http://www.python.org/ Python]&lt;br /&gt;
&lt;br /&gt;
However to perform a minimum build of TexGen with none of the additional modules you only require CMake and a C++ compiler. It is recommended to begin with a minimum build, once that is working try adding modules one at a time. A list of modules along with dependencies is shown below:&lt;br /&gt;
&lt;br /&gt;
* Python interface: Python, SWIG&lt;br /&gt;
* Renderer: VTK&lt;br /&gt;
* Export: OpenCascade&lt;br /&gt;
* GUI: wxWidgets, Renderer, Python interface&lt;br /&gt;
* Unit tests: CPPUnit&lt;br /&gt;
&lt;br /&gt;
A graphical representation of the modules and their dependencies can also be found in the [http://texgen.sourceforge.net/api/ TexGen API].&lt;br /&gt;
&lt;br /&gt;
If you want to get the source code from GitHub you will need to install [https://git-scm.com/downloads Git] by following the instructions below. Note that this is the very latest development source and so may it contain some bugs and unfinished features. However it is very easy to keep up to date with the latest version of TexGen using this method and will allow you to keep any modifications you have made to the source when updating. If you find a bug or implement new features that may be useful to the rest of the community please send a pull request and they will be incorporated into TexGen following review.&lt;br /&gt;
&lt;br /&gt;
Alternatively the stable source code can be downloaded as a [http://sourceforge.net/project/showfiles.php?group_id=181000 tarball]. Download the latest file release named &amp;#039;&amp;#039;texgen-3.x.x.tar.gz&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Windows (Microsoft Visual Studio C++, recommended method) ==&lt;br /&gt;
&lt;br /&gt;
[http://texgen.sourceforge.net/documents/HowToBuildTexGen.pdf Presentation giving a walkthrough for building TexGen from source] (Python 3 builds only)&lt;br /&gt;
 &lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
It is assumed that Microsoft Visual Studio is already installed.  If it isn&amp;#039;t and you plan to use it, then install it.  It may be possible to use the free [http://www.microsoft.com/express/ Visual Studio Express]; if anyone tries this and finds out one way or the other, please post the information either here or in the [http://texgen.sourceforge.net/phpBB2/index.php forum]. Brief instructions on how to install the various 3rd party libraries under windows are given below. Note that you do not need to install all of these in order to perform the minimal build. Only CMake is absolutely required.&lt;br /&gt;
&lt;br /&gt;
TexGen versions 3.11.0 onwards have been built with VS2017. All of the libraries used can be built with this version of Visual Studio.&lt;br /&gt;
&lt;br /&gt;
==== CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and install, selecting &amp;#039;Add CMake to the system PATH for all users&amp;#039; (select current user if this is not permissible on your system).&lt;br /&gt;
&lt;br /&gt;
==== Git ====&lt;br /&gt;
&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and install it.&lt;br /&gt;
&lt;br /&gt;
==== SWIG ====&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/ Download] the windows .zip files and extract to a suitable location (e.g. c:\Program Files\swigwin-4.0.2).  The current version of TexGen is built with version 4.0.2&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/ Download Python] and install.  Note that TexGen version 3.13 is built with Python 3.9. Versions prior to that were built with Python 2.7.&lt;br /&gt;
&lt;br /&gt;
For a Release build the include files and python39.lib provided with the standard installation can be used. &lt;br /&gt;
&lt;br /&gt;
For a Debug build it is necessary to build a debug version of Python. Download the latest [https://www.python.org/downloads/source/ source release] and follow the instructions in the README for building for your environment. For Visual Studio use the VS solution in the PCBuild folder. Version 3.13 was built with Python 3.9.9.&lt;br /&gt;
Note that for newer VS versions it is necessary to apply this [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/issues/161 patch] in order for the build to be successful.&lt;br /&gt;
&lt;br /&gt;
==== OpenCascade ====&lt;br /&gt;
&lt;br /&gt;
[https://dev.opencascade.org/release Download OpenCascade] and install; this extracts the files to a directory. If the installation doesn&amp;#039;t start automatically, run the &amp;#039;install.bat&amp;#039; file located the directory where the files where extracted (read &amp;#039;readme.htm&amp;#039; file in the same directory for more information).  Choose &amp;#039;complete installation&amp;#039; and tick the box to set the environment variables.  The current version of TexGen is built with OpenCascade version 7.0.0.&lt;br /&gt;
&lt;br /&gt;
==== VTK ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/louisepb/VTK-6.3 Download] version 6.3.0 of the source files and extract them. Instructions for building VTK using CMake are given on the [https://vtk.org/Wiki/VTK/Configure_and_Build VTK webpage] The following CMake settings should be set:&lt;br /&gt;
&lt;br /&gt;
 BUILD_EXAMPLES           OFF&lt;br /&gt;
 BUILD_SHARED_LIBS        OFF&lt;br /&gt;
 VTK_USE_MPEG2_ENCODER    OFF&lt;br /&gt;
 VTK_USE_PARALLEL         OFF&lt;br /&gt;
 VTK_USE_RENDERING        ON&lt;br /&gt;
 VTK_WRAP_JAVA            OFF&lt;br /&gt;
 VTK_WRAP_PYTHON          OFF&lt;br /&gt;
 VTK_WRAP_TCL             OFF&lt;br /&gt;
&lt;br /&gt;
(Version 6.3 is no longer available on the VTK webpage so the link above makes this available until TexGen has been modified to work with more recent VTK versions).&lt;br /&gt;
You may be able to get things working with different settings, however these are the settings I use and are known to work.&lt;br /&gt;
&lt;br /&gt;
==== wxWidgets ====&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/downloads/ Download] and install the windows version 3.2.5 of wxWidgets (wxMSW). It is then necessary to compile wxWidgets from source. Detailed instructions on how to do this can be found in &amp;#039;install.txt&amp;#039; located in the &amp;#039;docs\msw&amp;#039; subfolder. The main steps are to open &amp;#039;wx_vcN.sln&amp;#039; with MS Visual Studio (where N is the appropriate version) located in the &amp;#039;build\msw&amp;#039; subfolder and compile both Release and Debug configurations (The configuration can be selected from the drop down box on the main toolbar in Visual Studio. Universal and DLL versions need not be compiled).&lt;br /&gt;
&lt;br /&gt;
==== CppUnit ====&lt;br /&gt;
To build the test module download [https://www.freedesktop.org/wiki/Software/cppunit/ cppunit]&lt;br /&gt;
&lt;br /&gt;
The VS solution is in the Examples folder. When this is run, accept the option to upgrade to your version of VS and then build. The resulting cppunit.lib file can then be found in the /lib folder.&lt;br /&gt;
&lt;br /&gt;
=== Checkout TexGen source code from GitHub ===&lt;br /&gt;
* Create a directory where you would like to store the TexGen source code in Windows Explorer. &lt;br /&gt;
* Open a Git Bash shell within that folder.&lt;br /&gt;
* Type &lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
A new TexGen folder will have been created which contains a downloaded copy of the TexGen repository.&lt;br /&gt;
&lt;br /&gt;
=== Configuring the build system with CMake ===&lt;br /&gt;
Run CMake from its shortcut on the Start menu. There are some general instructions on using CMake on the [https://cmake.org/cmake-tutorial/ CMake website] which are worth reading. You will need to fill in the source code location, this should point to where you checked out out the latest TexGen GitHub code or where you extracted the source code from the zip file. Also set where to place the binary files once they are compiled, this can be the same as the source directory, a subdirectory within the source directory or any other location.&lt;br /&gt;
&lt;br /&gt;
Once that is entered click &amp;#039;Configure&amp;#039; and choose the Visual Studio version which you have installed and click ok. You will initially get a number of error messages such as:&lt;br /&gt;
&lt;br /&gt;
 CMake Error: Swig was not found on the system. Please specify the location of Swig. (click OK)&lt;br /&gt;
 CMake Error: Error in configuration process, project files may be invalid. (click OK)&lt;br /&gt;
&lt;br /&gt;
This is normal, in order to get rid of the errors you will need to tell CMake where the various libraries you have installed can be found. This is done in the Cache Values sections.&lt;br /&gt;
&lt;br /&gt;
It is recommended to begin with a minimal build, this is achieved by setting the cache values as follows:&lt;br /&gt;
&lt;br /&gt;
 BUILD_CASCADE_EXPORT           OFF&lt;br /&gt;
 BUILD_DOCUMENTATION            OFF&lt;br /&gt;
 BUILD_EXAMPLES                 OFF&lt;br /&gt;
 BUILD_GUI                      OFF&lt;br /&gt;
 BUILD_PYTHON_INTERFACE         OFF&lt;br /&gt;
 BUILD_RENDERER                 OFF&lt;br /&gt;
 BUILD_SHARED                   ON&lt;br /&gt;
 BUILD_UNIT_TESTS               OFF&lt;br /&gt;
&lt;br /&gt;
Once these are set press configure again and you shouldn&amp;#039;t have any more errors/warnings. Press &amp;#039;OK&amp;#039; to generate the MSVC solution and project files. Configuring the various optional modules is explained in [[#Configuring optional modules]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring optional modules ===&lt;br /&gt;
&lt;br /&gt;
Once the minimal build is working you may want to switch on the optional modules. To do this open up CMake again and switch the modules you want to ON in the Cache Values then click Configure. You will most likely see some errors telling you it is unable to automatically find certain directories. You will need to specify these manually. An explanation of the different locations is listed below:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039;&amp;#039;&amp;#039; - This should be the folder where the TexGen python modules will be placed. Usually located in &amp;#039;C:\Python27\Lib\site-packages&amp;#039;, but this will depend on the version of Python installed and where you decided to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_DIR&amp;#039;&amp;#039;&amp;#039; -  This is the location where you extracted the SWIG executable. e.g. &amp;#039;C:\Program Files\swigwin-2.0.10&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_EXECUTABLE&amp;#039;&amp;#039;&amp;#039; - Same as root directory followed by &amp;#039;swig.exe&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_ROOT_DIR&amp;#039;&amp;#039;&amp;#039; - Location where you install wxWidgets. e.g. &amp;#039;C:/wxWidgets-3.2.5&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_LIB_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the wxWidgets libraries were compiled to, should be the same as the root directory followed by &amp;#039;lib/vc_lib&amp;#039; or &amp;#039;lib/vc_x64_lib&amp;#039; for 64-bit builds.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WX&amp;#039;&amp;#039;&amp;#039; - CMake may not automatically pick up the location of all libraries in which case these may need to be input manually. The image below shows the CMake GUI part way through specifying the library locations&lt;br /&gt;
[[Image:wxWidgetsCMake.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_INCLUDE_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade header files are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/inc&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/lib&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_DEBUG_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade debug libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/libd&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VTK_DIR&amp;#039;&amp;#039;&amp;#039; - Location of the VTK binary directory (note: not the source directory).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CPPUNIT_LIBRARY&amp;#039;&amp;#039;&amp;#039; - Location where the cppunit library file is located. e.g. &amp;#039;C:/cppunit-1.15.1/lib/cppunit.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After setting the directories manually, click on configure again. You may need to go through several iterations of changing parameters then pressing configure. Once you have finished changing parameters and have successfully pressed configure without error messages you can press the OK button to generate the build. Note: you can always come back to this at a later time to make changes.&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Find &amp;#039;TexGen.sln&amp;#039; which should be located in the directory where you told CMake to output the binary files to and open it with Microsoft Visual Studio.&lt;br /&gt;
&lt;br /&gt;
Set the configuration to &amp;#039;Release&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
If building the Graphical User Interface with Visual Studio 2008 or later open the properties page for the TexGenGUI project.  Select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Build the solution. Hopefully the project will have been compiled without errors.&lt;br /&gt;
&lt;br /&gt;
If you want to compile and execute the Graphical User Interface you will need to install it, you will not be able to execute it directly from the build directory. This is done by right click on the &amp;#039;INSTALL&amp;#039; project in the Solution Explorer and selecting Build. This will copy the Python modules into the Python site-packages directory so that they can be imported into scripts, and it will copy the executable along with other necessary files into &amp;#039;C:\Program Files\TexGen\&amp;#039; by default (this can be changed with the CMAKE_INSTALL_PREFIX cache value in CMake). TexGenGUI.exe should then be run from the installed location, if you attempt to run it directly from where it was compiled you will get some errors on launch.&lt;br /&gt;
&lt;br /&gt;
=== Building the documentation ===&lt;br /&gt;
&lt;br /&gt;
To build the documentation, [http://www.doxygen.nl/download.html Doxygen] and [https://graphviz.gitlab.io/download/ Graphviz] are required.  Open a command prompt in the &amp;#039;Docs&amp;#039; subdirectory of the source code and run &amp;#039;doxygen&amp;#039;. If the doxygen directory is not in your path, you must add it, or give the full path on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Integrating TexGen with ABAQUS ===&lt;br /&gt;
&lt;br /&gt;
If you are using ABAQUS and wish to use TexGen Python scripting from within the ABAQUS/CAE environment, there are a few extra steps to perform. This is because ABAQUS comes packaged with its own version of Python, so any modules added to your standalone python installation will not be accessible by ABAQUS. You must compile the TexGen Python modules with the same version of Python as ABAQUS uses. The following table shows which version of Python is used in specific ABAQUS versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ABAQUS Version !! Python Version&lt;br /&gt;
|-&lt;br /&gt;
| 6.6-1  || 2.3.3&lt;br /&gt;
|- &lt;br /&gt;
| 6.7-1  || 2.4.3 &lt;br /&gt;
|- &lt;br /&gt;
| 6.10-2 || 2.6.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.14-1 || 2.7.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If your version of ABAQUS is not listed in the table above you can type &amp;#039;abaqus python -V&amp;#039; to check what version of Python is used (then please edit this page to update the table). You can obtain specific versions of Python from https://www.python.org/downloads/source/ .&lt;br /&gt;
&lt;br /&gt;
Additionally you will need to place the TexGen python modules inside ABAQUS&amp;#039; version of python. There are a few ways to accomplish this, the easiest is perhaps to set the CMake cache variable &amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039; point to the ABAQUS&amp;#039; python directory, e.g.:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR     C:\Abaqus\6.14-1\Python\Lib\&lt;br /&gt;
&lt;br /&gt;
Then when you build the INSTALL project in MSVC++ it will automatically copy the TexGen python modules to the ABAQUS&amp;#039; Python. Alternatively you can simply copy the files manually or modify Python&amp;#039;s search path to include the TexGen python modules, e.g. In python:&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.path.append(&amp;#039;C:/Python27/Lib/site-packages/&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
There may also be a need to modify the file [source code location]/Installer/texgen.nsi.  The original version, lines 1-3 are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python25.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while on Jon&amp;#039;s version they are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python24.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error LNK1104: cannot open file &amp;#039;python25_d.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; The windows installation of Python doesn&amp;#039;t come with the debug library (&amp;#039;python25_d.lib&amp;#039;, the _d part means debug). You should be able to compile in release mode however. If you really want to compile in debug mode you will need to compile Python from source and link to that. Or you can try to link to the release library &amp;#039;python25.lib&amp;#039; instead, easiest way to do that is to copy &amp;#039;python25.lib&amp;#039; to &amp;#039;python25_d.lib&amp;#039; but this may cause problems during linking or execution.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error C1083: Cannot open include file: &amp;#039;wx/wxprec.h&amp;#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Make sure that you have compiled wxWidgets and that the wxWidgets_XXX cache variables are set correctly in CMake.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I do not have a &amp;#039;libd&amp;#039; folder in &amp;#039;ros/win32&amp;#039; for OpenCASCADE.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; If you do not compile OpenCASCADE yourself then this folder does not exist. However it can be ignored if you are only interested in building the release version of TexGen. If you really want to compile the debug version please refer to the OpenCASCADE documentation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; Why do I get the error message: &amp;quot;The parameter is incorrect.&amp;quot; when launching TexGenGUI.exe?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; In the TexGenGUI Property Pages select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I am getting error messages at the stage of building GUI:[ 86%] Building CXX object GUI/CMakeFiles/TexGenGUI.dir/PrecompiledHeaders.cpp.o&lt;br /&gt;
In file included from /usr/include/python2.4/pyconfig.h:6,&lt;br /&gt;
                 from /usr/include/python2.4/Python.h:8,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:30,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/usr/include/python2.4/pyconfig-64.h:823:1: warning: &amp;quot;_FILE_OFFSET_BITS&amp;quot; redefined&lt;br /&gt;
&amp;lt;command line&amp;gt;:1:1: warning: this is the location of the previous definition&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/wx.h:15,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/defs.h:42:13: error: #error &amp;quot;No Target! You should use wx-config program for compilation flags!&amp;quot;&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/cmndata.h:17,&lt;br /&gt;
                 from /data/include/wx-2.8/wx/wx.h:65,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/encinfo.h:64:6: error: #error &amp;quot;Unsupported toolkit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and lots of othe warnings and error messages afterwards.&lt;br /&gt;
&lt;br /&gt;
The location of wx-config is correct in cmake; wxWidgets installation appears to have been successful; the system is Red Hat Linux 64-bit&lt;br /&gt;
&lt;br /&gt;
== Windows (Cygwin and gcc, alternate method) ==&lt;br /&gt;
A limited build (without graphics) can be made under cygwin, this is a UNIX emulation environment available at [http://www.cygwin.com www.cygwin.com]. &lt;br /&gt;
This can exist peacefully next to the native windows version. &lt;br /&gt;
Cygwin creates a unix-style file system within your windows installation. If you choose c:/cygwin as your install directory, your HOME will be at c:/cygwin/home/&amp;lt;username&amp;gt;/. &lt;br /&gt;
&lt;br /&gt;
=== Download cygwin and install packages ===&lt;br /&gt;
Install gcc, g++, wget, make and cmake using the setup.exe program from the cygwin website. &lt;br /&gt;
For the mesh generator and python interface to work we currently need VTK and swig. &lt;br /&gt;
&lt;br /&gt;
This downloads and installs swig from source (when starting the cygwin shell you can paste this into the command line, otherwise write it to a file and run it with sh). &lt;br /&gt;
 mkdir progs&lt;br /&gt;
 cd progs &lt;br /&gt;
 SWIG=swig-1.3.31&lt;br /&gt;
 wget -nc http://kent.dl.sourceforge.net/sourceforge/swig/$SWIG.tar.gz&lt;br /&gt;
 tar xzvf $SWIG.tar.gz &lt;br /&gt;
 cd $SWIG&lt;br /&gt;
 ./configure &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This downloads and installs VTK from source, in the ccmake stage, use the cmake graphical commands to get a working install. &lt;br /&gt;
 VTK=vtk-6.3.0&lt;br /&gt;
 wget -nc https://vtk.org/download/&lt;br /&gt;
 tar xzvf $VTK.tar.gz&lt;br /&gt;
 mkdir vtkbin&lt;br /&gt;
 cd vtkbin&lt;br /&gt;
 ccmake ../VTK&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Install TexGen from source ===&lt;br /&gt;
Now we can proceed to install texgen, as an example we&amp;#039;ll work in ~/temp/texgen&lt;br /&gt;
 cd ~; mkdir temp; cd temp; mkdir texgen; cd texgen&lt;br /&gt;
 svn checkout svn//svn.code.sf.net/p/texgen/code/TexGen/trunk/ TexGen&lt;br /&gt;
 cd .. ; mkdir tbin; cd tbin&lt;br /&gt;
 ccmake ../texgen&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This should result in a working texgen install in ~/temp/texgen/tbin.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
=== Notes ===&lt;br /&gt;
If you are installing to a system where you don&amp;#039;t have root access (i.e. this computer does not belong to you) you won&amp;#039;t be able to install the software using the default configure script. This is because by default software is installed to the /usr/local directory. If you are not a systems administrator then you will quite rightly not have write access to this folder. All is not lost! You can still install software into your home directory. In order to do this you should always call the configure script with the following parameter: --prefix=$HOME. This goes for all the software to be installed below. All executables will then be placed in ~/bin, libraries in ~/lib, includes in ~/include, etc...&lt;br /&gt;
&lt;br /&gt;
In the guide below the parameter is included in italic. If you do in fact have root access then it is recommended to omit this parameter and install to the default directory so that other users will also have access to the software.&lt;br /&gt;
&lt;br /&gt;
=== Get TexGen from GitHub repository ===&lt;br /&gt;
&lt;br /&gt;
==== Install Git ====&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and unpack.&lt;br /&gt;
&lt;br /&gt;
==== Clone TexGen ====&lt;br /&gt;
Open a shell in folder you wish to place TexGen (e.g. ~/):&lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
&lt;br /&gt;
=== Compile source ===&lt;br /&gt;
&lt;br /&gt;
==== Install CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and unpack.&lt;br /&gt;
Open a shell in extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==== Compile TexGen core ====&lt;br /&gt;
Open a shell in the folder with the TexGen source code (e.g. ~/TexGen):&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 cd bin&lt;br /&gt;
 ccmake ../&lt;br /&gt;
Press &amp;#039;c&amp;#039; to configure. When a warning pops up telling you it can&amp;#039;t find such and such a file press &amp;#039;e&amp;#039; to close it. You will now need to specify which components of TexGen to build and where their dependencies can be found. Use the up and down arrows to move the caret and press enter to modify options. Do this to set BUILD_GUI, BUILD_PYTHON_INTERFACE and BUILD_RENDERER to OFF. You are basically telling CMake not to attempt to build these components, which means that you won&amp;#039;t need to have installed their dependencies.&lt;br /&gt;
&lt;br /&gt;
Similarly to the --prefix=$HOME parameter to the configure script, you can tell CMake to install TexGen to your home directory by changing CMAKE_INSTALL_PREFIX to ~/. Note that it won&amp;#039;t actually install anything until you get type make install.&lt;br /&gt;
&lt;br /&gt;
Now press &amp;#039;c&amp;#039; again to update the changes.&lt;br /&gt;
&lt;br /&gt;
Hopefully now that all the additional modules have been switched off no errors will be shown. Press &amp;#039;g&amp;#039; to generate the makefiles and exit. At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Note that at this point you have only built and installed the TexGen Core library which doesn&amp;#039;t actually do anything on its own. If you plan to incorporate TexGen into your own C++ program then this is enough, however if you would like to interface with TexGen from a Python script or Graphical User Interface then follow the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Compiling optional modules ===&lt;br /&gt;
==== Python interface ====&lt;br /&gt;
[http://www.python.org/download/ Download Python] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/download.html Download SWIG] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Open a shell in the folder where you called ccmake from for the first time (e.g. ~/TexGen/bin):&lt;br /&gt;
 ccmake ../&lt;br /&gt;
&lt;br /&gt;
Use the up and down arrows to reach BUILD_PYTHON_INTERFACE and press Enter to set it to ON. Then press &amp;#039;c&amp;#039; to configure. You will probably get a warning saying you need to specify the location of SWIG and/or Python, press &amp;#039;e&amp;#039; to close it.&lt;br /&gt;
&lt;br /&gt;
Set the PYTHON_INCLUDE_PATH, PYTHON_LIBRARY, PYTHON_SITEPACKAGES_DIR, SWIG_DIR and SWIG_EXECUTABLE parameters correctly where necessary. If you have installed packages to your home directory then they should look something like this:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_INCLUDE_PATH: ~/include/python2.7&lt;br /&gt;
 PYTHON_LIBRARY: ~/lib/python2.5/config/libpython2.7.a&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR: ~/lib/python2.7/site-packages&lt;br /&gt;
 SWIG_DIR: ~/bin&lt;br /&gt;
 SWIG_EXECUTABLE: ~/bin/swig&lt;br /&gt;
&lt;br /&gt;
Once that is done press &amp;#039;c&amp;#039; again. You may need perform this process over several iterations. When everything is set correctly press &amp;#039;g&amp;#039; to generate the makefiles.&lt;br /&gt;
&lt;br /&gt;
At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Assuming the build completed without errors you should now be able to access TexGen functions from within Python. In order to check everything worked as planned open Python in interactive mode by typing:&lt;br /&gt;
 python&lt;br /&gt;
&lt;br /&gt;
Then from within Python type:&lt;br /&gt;
 from TexGen.Core import *&lt;br /&gt;
 CTexGen.GetInstance().GetVersion()&lt;br /&gt;
&lt;br /&gt;
This should display the version of TexGen installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when linking _Core.so:&lt;br /&gt;
 libpython2.5.a(abstract.o): relocation R_X86_64_32 against `a local symbol&amp;#039;&lt;br /&gt;
 can not be used when making a shared object; recompile with -fPIC&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Try removing libpython2.5.a from the libraries to link to by setting PYTHON_LIBRARY to a bogus path, e.g.:&lt;br /&gt;
&lt;br /&gt;
PYTHON_LIBRARY: ~/&lt;br /&gt;
&lt;br /&gt;
By doing so you may receive a warning similar to this:&lt;br /&gt;
 Warning: Ignoring path found in link libraries for target: _Core, path is:&lt;br /&gt;
 /home/username. Expected a library name or a full path to a library name.&lt;br /&gt;
This warning may be ignored.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Compiling from Source</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2024-06-26T15:43:12Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* wxWidgets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to compile TexGen and &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; of its modules, the following software is required:&lt;br /&gt;
&lt;br /&gt;
The following programs are needed to build TexGen:&lt;br /&gt;
* [http://www.cmake.org/ CMake]&lt;br /&gt;
* [http://www.swig.org/ SWIG]&lt;br /&gt;
&lt;br /&gt;
The following libraries are needed to link to TexGen:&lt;br /&gt;
* [http://www.vtk.org/ VTK]&lt;br /&gt;
* [http://www.wxwidgets.org/ wxWidgets]&lt;br /&gt;
* [http://www.opencascade.org/ OpenCascade]&lt;br /&gt;
* [http://www.python.org/ Python]&lt;br /&gt;
&lt;br /&gt;
However to perform a minimum build of TexGen with none of the additional modules you only require CMake and a C++ compiler. It is recommended to begin with a minimum build, once that is working try adding modules one at a time. A list of modules along with dependencies is shown below:&lt;br /&gt;
&lt;br /&gt;
* Python interface: Python, SWIG&lt;br /&gt;
* Renderer: VTK&lt;br /&gt;
* Export: OpenCascade&lt;br /&gt;
* GUI: wxWidgets, Renderer, Python interface&lt;br /&gt;
* Unit tests: CPPUnit&lt;br /&gt;
&lt;br /&gt;
A graphical representation of the modules and their dependencies can also be found in the [http://texgen.sourceforge.net/api/ TexGen API].&lt;br /&gt;
&lt;br /&gt;
If you want to get the source code from GitHub you will need to install [https://git-scm.com/downloads Git] by following the instructions below. Note that this is the very latest development source and so may it contain some bugs and unfinished features. However it is very easy to keep up to date with the latest version of TexGen using this method and will allow you to keep any modifications you have made to the source when updating. If you find a bug or implement new features that may be useful to the rest of the community please send a pull request and they will be incorporated into TexGen following review.&lt;br /&gt;
&lt;br /&gt;
Alternatively the stable source code can be downloaded as a [http://sourceforge.net/project/showfiles.php?group_id=181000 tarball]. Download the latest file release named &amp;#039;&amp;#039;texgen-3.x.x.tar.gz&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Windows (Microsoft Visual Studio C++, recommended method) ==&lt;br /&gt;
&lt;br /&gt;
[http://texgen.sourceforge.net/documents/HowToBuildTexGen.pdf Presentation giving a walkthrough for building TexGen from source] (Python 3 builds only)&lt;br /&gt;
 &lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
It is assumed that Microsoft Visual Studio is already installed.  If it isn&amp;#039;t and you plan to use it, then install it.  It may be possible to use the free [http://www.microsoft.com/express/ Visual Studio Express]; if anyone tries this and finds out one way or the other, please post the information either here or in the [http://texgen.sourceforge.net/phpBB2/index.php forum]. Brief instructions on how to install the various 3rd party libraries under windows are given below. Note that you do not need to install all of these in order to perform the minimal build. Only CMake is absolutely required.&lt;br /&gt;
&lt;br /&gt;
TexGen versions 3.11.0 onwards have been built with VS2017. All of the libraries used can be built with this version of Visual Studio.&lt;br /&gt;
&lt;br /&gt;
==== CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and install, selecting &amp;#039;Add CMake to the system PATH for all users&amp;#039; (select current user if this is not permissible on your system).&lt;br /&gt;
&lt;br /&gt;
==== Git ====&lt;br /&gt;
&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and install it.&lt;br /&gt;
&lt;br /&gt;
==== SWIG ====&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/ Download] the windows .zip files and extract to a suitable location (e.g. c:\Program Files\swigwin-4.0.2).  The current version of TexGen is built with version 4.0.2&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/ Download Python] and install.  Note that TexGen version 3.13 is built with Python 3.9. Versions prior to that were built with Python 2.7.&lt;br /&gt;
&lt;br /&gt;
For a Release build the include files and python39.lib provided with the standard installation can be used. &lt;br /&gt;
&lt;br /&gt;
For a Debug build it is necessary to build a debug version of Python. Download the latest [https://www.python.org/downloads/source/ source release] and follow the instructions in the README for building for your environment. For Visual Studio use the VS solution in the PCBuild folder. Version 3.13 was built with Python 3.9.9.&lt;br /&gt;
Note that for newer VS versions it is necessary to apply this [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/issues/161 patch] in order for the build to be successful.&lt;br /&gt;
&lt;br /&gt;
==== OpenCascade ====&lt;br /&gt;
&lt;br /&gt;
[https://dev.opencascade.org/release Download OpenCascade] and install; this extracts the files to a directory. If the installation doesn&amp;#039;t start automatically, run the &amp;#039;install.bat&amp;#039; file located the directory where the files where extracted (read &amp;#039;readme.htm&amp;#039; file in the same directory for more information).  Choose &amp;#039;complete installation&amp;#039; and tick the box to set the environment variables.  The current version of TexGen is built with OpenCascade version 7.0.0.&lt;br /&gt;
&lt;br /&gt;
==== VTK ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/louisepb/VTK-6.3 Download] version 6.3.0 of the source files and extract them. Instructions for building VTK using CMake are given on the [https://vtk.org/Wiki/VTK/Configure_and_Build VTK webpage] The following CMake settings should be set:&lt;br /&gt;
&lt;br /&gt;
 BUILD_EXAMPLES           OFF&lt;br /&gt;
 BUILD_SHARED_LIBS        OFF&lt;br /&gt;
 VTK_USE_MPEG2_ENCODER    OFF&lt;br /&gt;
 VTK_USE_PARALLEL         OFF&lt;br /&gt;
 VTK_USE_RENDERING        ON&lt;br /&gt;
 VTK_WRAP_JAVA            OFF&lt;br /&gt;
 VTK_WRAP_PYTHON          OFF&lt;br /&gt;
 VTK_WRAP_TCL             OFF&lt;br /&gt;
&lt;br /&gt;
(Version 6.3 is no longer available on the VTK webpage so the link above makes this available until TexGen has been modified to work with more recent VTK versions).&lt;br /&gt;
You may be able to get things working with different settings, however these are the settings I use and are known to work.&lt;br /&gt;
&lt;br /&gt;
==== wxWidgets ====&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/downloads/ Download] and install the windows version 3.2.5 of wxWidgets (wxMSW). It is then necessary to compile wxWidgets from source. Detailed instructions on how to do this can be found in &amp;#039;install.txt&amp;#039; located in the &amp;#039;docs\msw&amp;#039; subfolder. The main steps are to open &amp;#039;wx_vcN.sln&amp;#039; with MS Visual Studio (where N is the appropriate version) located in the &amp;#039;build\msw&amp;#039; subfolder and compile both Release and Debug configurations (The configuration can be selected from the drop down box on the main toolbar in Visual Studio. Universal and DLL versions need not be compiled).&lt;br /&gt;
&lt;br /&gt;
==== CppUnit ====&lt;br /&gt;
To build the test module download [https://www.freedesktop.org/wiki/Software/cppunit/ cppunit]&lt;br /&gt;
&lt;br /&gt;
The VS solution is in the Examples folder. When this is run, accept the option to upgrade to your version of VS and then build. The resulting cppunit.lib file can then be found in the /lib folder.&lt;br /&gt;
&lt;br /&gt;
=== Checkout TexGen source code from GitHub ===&lt;br /&gt;
* Create a directory where you would like to store the TexGen source code in Windows Explorer. &lt;br /&gt;
* Open a Git Bash shell within that folder.&lt;br /&gt;
* Type &lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
A new TexGen folder will have been created which contains a downloaded copy of the TexGen repository.&lt;br /&gt;
&lt;br /&gt;
=== Configuring the build system with CMake ===&lt;br /&gt;
Run CMake from its shortcut on the Start menu. There are some general instructions on using CMake on the [https://cmake.org/cmake-tutorial/ CMake website] which are worth reading. You will need to fill in the source code location, this should point to where you checked out out the latest TexGen GitHub code or where you extracted the source code from the zip file. Also set where to place the binary files once they are compiled, this can be the same as the source directory, a subdirectory within the source directory or any other location.&lt;br /&gt;
&lt;br /&gt;
Once that is entered click &amp;#039;Configure&amp;#039; and choose the Visual Studio version which you have installed and click ok. You will initially get a number of error messages such as:&lt;br /&gt;
&lt;br /&gt;
 CMake Error: Swig was not found on the system. Please specify the location of Swig. (click OK)&lt;br /&gt;
 CMake Error: Error in configuration process, project files may be invalid. (click OK)&lt;br /&gt;
&lt;br /&gt;
This is normal, in order to get rid of the errors you will need to tell CMake where the various libraries you have installed can be found. This is done in the Cache Values sections.&lt;br /&gt;
&lt;br /&gt;
It is recommended to begin with a minimal build, this is achieved by setting the cache values as follows:&lt;br /&gt;
&lt;br /&gt;
 BUILD_CASCADE_EXPORT           OFF&lt;br /&gt;
 BUILD_DOCUMENTATION            OFF&lt;br /&gt;
 BUILD_EXAMPLES                 OFF&lt;br /&gt;
 BUILD_GUI                      OFF&lt;br /&gt;
 BUILD_PYTHON_INTERFACE         OFF&lt;br /&gt;
 BUILD_RENDERER                 OFF&lt;br /&gt;
 BUILD_SHARED                   ON&lt;br /&gt;
 BUILD_UNIT_TESTS               OFF&lt;br /&gt;
&lt;br /&gt;
Once these are set press configure again and you shouldn&amp;#039;t have any more errors/warnings. Press &amp;#039;OK&amp;#039; to generate the MSVC solution and project files. Configuring the various optional modules is explained in [[#Configuring optional modules]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring optional modules ===&lt;br /&gt;
&lt;br /&gt;
Once the minimal build is working you may want to switch on the optional modules. To do this open up CMake again and switch the modules you want to ON in the Cache Values then click Configure. You will most likely see some errors telling you it is unable to automatically find certain directories. You will need to specify these manually. An explanation of the different locations is listed below:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039;&amp;#039;&amp;#039; - This should be the folder where the TexGen python modules will be placed. Usually located in &amp;#039;C:\Python27\Lib\site-packages&amp;#039;, but this will depend on the version of Python installed and where you decided to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_DIR&amp;#039;&amp;#039;&amp;#039; -  This is the location where you extracted the SWIG executable. e.g. &amp;#039;C:\Program Files\swigwin-2.0.10&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_EXECUTABLE&amp;#039;&amp;#039;&amp;#039; - Same as root directory followed by &amp;#039;swig.exe&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_ROOT_DIR&amp;#039;&amp;#039;&amp;#039; - Location where you install wxWidgets. e.g. &amp;#039;C:/wxWidgets-3.0.4&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_LIB_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the wxWidgets libraries were compiled to, should be the same as the root directory followed by &amp;#039;lib/vc_lib&amp;#039; or &amp;#039;lib/vc_x64_lib&amp;#039; for 64-bit builds.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WX&amp;#039;&amp;#039;&amp;#039; - CMake may not automatically pick up the location of all libraries in which case these may need to be input manually. The image below shows the CMake GUI part way through specifying the library locations&lt;br /&gt;
[[Image:wxWidgetsCMake.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_INCLUDE_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade header files are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/inc&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/lib&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_DEBUG_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade debug libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/libd&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VTK_DIR&amp;#039;&amp;#039;&amp;#039; - Location of the VTK binary directory (note: not the source directory).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CPPUNIT_LIBRARY&amp;#039;&amp;#039;&amp;#039; - Location where the cppunit library file is located. e.g. &amp;#039;C:/cppunit-1.15.1/lib/cppunit.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After setting the directories manually, click on configure again. You may need to go through several iterations of changing parameters then pressing configure. Once you have finished changing parameters and have successfully pressed configure without error messages you can press the OK button to generate the build. Note: you can always come back to this at a later time to make changes.&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Find &amp;#039;TexGen.sln&amp;#039; which should be located in the directory where you told CMake to output the binary files to and open it with Microsoft Visual Studio.&lt;br /&gt;
&lt;br /&gt;
Set the configuration to &amp;#039;Release&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
If building the Graphical User Interface with Visual Studio 2008 or later open the properties page for the TexGenGUI project.  Select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Build the solution. Hopefully the project will have been compiled without errors.&lt;br /&gt;
&lt;br /&gt;
If you want to compile and execute the Graphical User Interface you will need to install it, you will not be able to execute it directly from the build directory. This is done by right click on the &amp;#039;INSTALL&amp;#039; project in the Solution Explorer and selecting Build. This will copy the Python modules into the Python site-packages directory so that they can be imported into scripts, and it will copy the executable along with other necessary files into &amp;#039;C:\Program Files\TexGen\&amp;#039; by default (this can be changed with the CMAKE_INSTALL_PREFIX cache value in CMake). TexGenGUI.exe should then be run from the installed location, if you attempt to run it directly from where it was compiled you will get some errors on launch.&lt;br /&gt;
&lt;br /&gt;
=== Building the documentation ===&lt;br /&gt;
&lt;br /&gt;
To build the documentation, [http://www.doxygen.nl/download.html Doxygen] and [https://graphviz.gitlab.io/download/ Graphviz] are required.  Open a command prompt in the &amp;#039;Docs&amp;#039; subdirectory of the source code and run &amp;#039;doxygen&amp;#039;. If the doxygen directory is not in your path, you must add it, or give the full path on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Integrating TexGen with ABAQUS ===&lt;br /&gt;
&lt;br /&gt;
If you are using ABAQUS and wish to use TexGen Python scripting from within the ABAQUS/CAE environment, there are a few extra steps to perform. This is because ABAQUS comes packaged with its own version of Python, so any modules added to your standalone python installation will not be accessible by ABAQUS. You must compile the TexGen Python modules with the same version of Python as ABAQUS uses. The following table shows which version of Python is used in specific ABAQUS versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ABAQUS Version !! Python Version&lt;br /&gt;
|-&lt;br /&gt;
| 6.6-1  || 2.3.3&lt;br /&gt;
|- &lt;br /&gt;
| 6.7-1  || 2.4.3 &lt;br /&gt;
|- &lt;br /&gt;
| 6.10-2 || 2.6.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.14-1 || 2.7.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If your version of ABAQUS is not listed in the table above you can type &amp;#039;abaqus python -V&amp;#039; to check what version of Python is used (then please edit this page to update the table). You can obtain specific versions of Python from https://www.python.org/downloads/source/ .&lt;br /&gt;
&lt;br /&gt;
Additionally you will need to place the TexGen python modules inside ABAQUS&amp;#039; version of python. There are a few ways to accomplish this, the easiest is perhaps to set the CMake cache variable &amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039; point to the ABAQUS&amp;#039; python directory, e.g.:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR     C:\Abaqus\6.14-1\Python\Lib\&lt;br /&gt;
&lt;br /&gt;
Then when you build the INSTALL project in MSVC++ it will automatically copy the TexGen python modules to the ABAQUS&amp;#039; Python. Alternatively you can simply copy the files manually or modify Python&amp;#039;s search path to include the TexGen python modules, e.g. In python:&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.path.append(&amp;#039;C:/Python27/Lib/site-packages/&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
There may also be a need to modify the file [source code location]/Installer/texgen.nsi.  The original version, lines 1-3 are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python25.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while on Jon&amp;#039;s version they are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python24.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error LNK1104: cannot open file &amp;#039;python25_d.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; The windows installation of Python doesn&amp;#039;t come with the debug library (&amp;#039;python25_d.lib&amp;#039;, the _d part means debug). You should be able to compile in release mode however. If you really want to compile in debug mode you will need to compile Python from source and link to that. Or you can try to link to the release library &amp;#039;python25.lib&amp;#039; instead, easiest way to do that is to copy &amp;#039;python25.lib&amp;#039; to &amp;#039;python25_d.lib&amp;#039; but this may cause problems during linking or execution.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error C1083: Cannot open include file: &amp;#039;wx/wxprec.h&amp;#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Make sure that you have compiled wxWidgets and that the wxWidgets_XXX cache variables are set correctly in CMake.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I do not have a &amp;#039;libd&amp;#039; folder in &amp;#039;ros/win32&amp;#039; for OpenCASCADE.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; If you do not compile OpenCASCADE yourself then this folder does not exist. However it can be ignored if you are only interested in building the release version of TexGen. If you really want to compile the debug version please refer to the OpenCASCADE documentation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; Why do I get the error message: &amp;quot;The parameter is incorrect.&amp;quot; when launching TexGenGUI.exe?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; In the TexGenGUI Property Pages select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I am getting error messages at the stage of building GUI:[ 86%] Building CXX object GUI/CMakeFiles/TexGenGUI.dir/PrecompiledHeaders.cpp.o&lt;br /&gt;
In file included from /usr/include/python2.4/pyconfig.h:6,&lt;br /&gt;
                 from /usr/include/python2.4/Python.h:8,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:30,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/usr/include/python2.4/pyconfig-64.h:823:1: warning: &amp;quot;_FILE_OFFSET_BITS&amp;quot; redefined&lt;br /&gt;
&amp;lt;command line&amp;gt;:1:1: warning: this is the location of the previous definition&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/wx.h:15,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/defs.h:42:13: error: #error &amp;quot;No Target! You should use wx-config program for compilation flags!&amp;quot;&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/cmndata.h:17,&lt;br /&gt;
                 from /data/include/wx-2.8/wx/wx.h:65,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/encinfo.h:64:6: error: #error &amp;quot;Unsupported toolkit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and lots of othe warnings and error messages afterwards.&lt;br /&gt;
&lt;br /&gt;
The location of wx-config is correct in cmake; wxWidgets installation appears to have been successful; the system is Red Hat Linux 64-bit&lt;br /&gt;
&lt;br /&gt;
== Windows (Cygwin and gcc, alternate method) ==&lt;br /&gt;
A limited build (without graphics) can be made under cygwin, this is a UNIX emulation environment available at [http://www.cygwin.com www.cygwin.com]. &lt;br /&gt;
This can exist peacefully next to the native windows version. &lt;br /&gt;
Cygwin creates a unix-style file system within your windows installation. If you choose c:/cygwin as your install directory, your HOME will be at c:/cygwin/home/&amp;lt;username&amp;gt;/. &lt;br /&gt;
&lt;br /&gt;
=== Download cygwin and install packages ===&lt;br /&gt;
Install gcc, g++, wget, make and cmake using the setup.exe program from the cygwin website. &lt;br /&gt;
For the mesh generator and python interface to work we currently need VTK and swig. &lt;br /&gt;
&lt;br /&gt;
This downloads and installs swig from source (when starting the cygwin shell you can paste this into the command line, otherwise write it to a file and run it with sh). &lt;br /&gt;
 mkdir progs&lt;br /&gt;
 cd progs &lt;br /&gt;
 SWIG=swig-1.3.31&lt;br /&gt;
 wget -nc http://kent.dl.sourceforge.net/sourceforge/swig/$SWIG.tar.gz&lt;br /&gt;
 tar xzvf $SWIG.tar.gz &lt;br /&gt;
 cd $SWIG&lt;br /&gt;
 ./configure &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This downloads and installs VTK from source, in the ccmake stage, use the cmake graphical commands to get a working install. &lt;br /&gt;
 VTK=vtk-6.3.0&lt;br /&gt;
 wget -nc https://vtk.org/download/&lt;br /&gt;
 tar xzvf $VTK.tar.gz&lt;br /&gt;
 mkdir vtkbin&lt;br /&gt;
 cd vtkbin&lt;br /&gt;
 ccmake ../VTK&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Install TexGen from source ===&lt;br /&gt;
Now we can proceed to install texgen, as an example we&amp;#039;ll work in ~/temp/texgen&lt;br /&gt;
 cd ~; mkdir temp; cd temp; mkdir texgen; cd texgen&lt;br /&gt;
 svn checkout svn//svn.code.sf.net/p/texgen/code/TexGen/trunk/ TexGen&lt;br /&gt;
 cd .. ; mkdir tbin; cd tbin&lt;br /&gt;
 ccmake ../texgen&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This should result in a working texgen install in ~/temp/texgen/tbin.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
=== Notes ===&lt;br /&gt;
If you are installing to a system where you don&amp;#039;t have root access (i.e. this computer does not belong to you) you won&amp;#039;t be able to install the software using the default configure script. This is because by default software is installed to the /usr/local directory. If you are not a systems administrator then you will quite rightly not have write access to this folder. All is not lost! You can still install software into your home directory. In order to do this you should always call the configure script with the following parameter: --prefix=$HOME. This goes for all the software to be installed below. All executables will then be placed in ~/bin, libraries in ~/lib, includes in ~/include, etc...&lt;br /&gt;
&lt;br /&gt;
In the guide below the parameter is included in italic. If you do in fact have root access then it is recommended to omit this parameter and install to the default directory so that other users will also have access to the software.&lt;br /&gt;
&lt;br /&gt;
=== Get TexGen from GitHub repository ===&lt;br /&gt;
&lt;br /&gt;
==== Install Git ====&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and unpack.&lt;br /&gt;
&lt;br /&gt;
==== Clone TexGen ====&lt;br /&gt;
Open a shell in folder you wish to place TexGen (e.g. ~/):&lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
&lt;br /&gt;
=== Compile source ===&lt;br /&gt;
&lt;br /&gt;
==== Install CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and unpack.&lt;br /&gt;
Open a shell in extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==== Compile TexGen core ====&lt;br /&gt;
Open a shell in the folder with the TexGen source code (e.g. ~/TexGen):&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 cd bin&lt;br /&gt;
 ccmake ../&lt;br /&gt;
Press &amp;#039;c&amp;#039; to configure. When a warning pops up telling you it can&amp;#039;t find such and such a file press &amp;#039;e&amp;#039; to close it. You will now need to specify which components of TexGen to build and where their dependencies can be found. Use the up and down arrows to move the caret and press enter to modify options. Do this to set BUILD_GUI, BUILD_PYTHON_INTERFACE and BUILD_RENDERER to OFF. You are basically telling CMake not to attempt to build these components, which means that you won&amp;#039;t need to have installed their dependencies.&lt;br /&gt;
&lt;br /&gt;
Similarly to the --prefix=$HOME parameter to the configure script, you can tell CMake to install TexGen to your home directory by changing CMAKE_INSTALL_PREFIX to ~/. Note that it won&amp;#039;t actually install anything until you get type make install.&lt;br /&gt;
&lt;br /&gt;
Now press &amp;#039;c&amp;#039; again to update the changes.&lt;br /&gt;
&lt;br /&gt;
Hopefully now that all the additional modules have been switched off no errors will be shown. Press &amp;#039;g&amp;#039; to generate the makefiles and exit. At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Note that at this point you have only built and installed the TexGen Core library which doesn&amp;#039;t actually do anything on its own. If you plan to incorporate TexGen into your own C++ program then this is enough, however if you would like to interface with TexGen from a Python script or Graphical User Interface then follow the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Compiling optional modules ===&lt;br /&gt;
==== Python interface ====&lt;br /&gt;
[http://www.python.org/download/ Download Python] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/download.html Download SWIG] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Open a shell in the folder where you called ccmake from for the first time (e.g. ~/TexGen/bin):&lt;br /&gt;
 ccmake ../&lt;br /&gt;
&lt;br /&gt;
Use the up and down arrows to reach BUILD_PYTHON_INTERFACE and press Enter to set it to ON. Then press &amp;#039;c&amp;#039; to configure. You will probably get a warning saying you need to specify the location of SWIG and/or Python, press &amp;#039;e&amp;#039; to close it.&lt;br /&gt;
&lt;br /&gt;
Set the PYTHON_INCLUDE_PATH, PYTHON_LIBRARY, PYTHON_SITEPACKAGES_DIR, SWIG_DIR and SWIG_EXECUTABLE parameters correctly where necessary. If you have installed packages to your home directory then they should look something like this:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_INCLUDE_PATH: ~/include/python2.7&lt;br /&gt;
 PYTHON_LIBRARY: ~/lib/python2.5/config/libpython2.7.a&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR: ~/lib/python2.7/site-packages&lt;br /&gt;
 SWIG_DIR: ~/bin&lt;br /&gt;
 SWIG_EXECUTABLE: ~/bin/swig&lt;br /&gt;
&lt;br /&gt;
Once that is done press &amp;#039;c&amp;#039; again. You may need perform this process over several iterations. When everything is set correctly press &amp;#039;g&amp;#039; to generate the makefiles.&lt;br /&gt;
&lt;br /&gt;
At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Assuming the build completed without errors you should now be able to access TexGen functions from within Python. In order to check everything worked as planned open Python in interactive mode by typing:&lt;br /&gt;
 python&lt;br /&gt;
&lt;br /&gt;
Then from within Python type:&lt;br /&gt;
 from TexGen.Core import *&lt;br /&gt;
 CTexGen.GetInstance().GetVersion()&lt;br /&gt;
&lt;br /&gt;
This should display the version of TexGen installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when linking _Core.so:&lt;br /&gt;
 libpython2.5.a(abstract.o): relocation R_X86_64_32 against `a local symbol&amp;#039;&lt;br /&gt;
 can not be used when making a shared object; recompile with -fPIC&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Try removing libpython2.5.a from the libraries to link to by setting PYTHON_LIBRARY to a bogus path, e.g.:&lt;br /&gt;
&lt;br /&gt;
PYTHON_LIBRARY: ~/&lt;br /&gt;
&lt;br /&gt;
By doing so you may receive a warning similar to this:&lt;br /&gt;
 Warning: Ignoring path found in link libraries for target: _Core, path is:&lt;br /&gt;
 /home/username. Expected a library name or a full path to a library name.&lt;br /&gt;
This warning may be ignored.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>User Guide</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2024-06-25T15:29:36Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Weave Pattern File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This user guide gives instructions for using TexGen via the graphical user interface (GUI). A practical introduction to using TexGen with worked examples and exercises can be found in the [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6 TexGen chapter] in the book Advanced Weaving Technology, DOI https://doi.org/10.1007/978-3-030-91515-5.&lt;br /&gt;
&lt;br /&gt;
==Layout==&lt;br /&gt;
[[Image:layout.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There are several other windows which can be switched on and off via the drop-down menu at the top in the &amp;quot;Window&amp;quot; section. By default the controls and logs windows will be visible.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The log windows at the bottom contains an interactive &amp;#039;&amp;#039;Python Console&amp;#039;&amp;#039; along with &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; and &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Textiles Menu==&lt;br /&gt;
&lt;br /&gt;
===Create Empty Textile===&lt;br /&gt;
This option creates an empty textile ready to have yarns added using the Modeller options.&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
A Textile Name dialog will then be displayed for entering a name for the textile.  Leave blank for a default name of Textile, Textile-2 etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Weave===&lt;br /&gt;
&lt;br /&gt;
[[Image:WeavewizardShear.png]]&lt;br /&gt;
&lt;br /&gt;
To use the weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Weave...&lt;br /&gt;
&lt;br /&gt;
====Create 2D Weave====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
* Warp Yarns, Weft Yarns - select number of yarns required&lt;br /&gt;
* Yarn Spacing - by default this is the same for both warp and weft yarns&lt;br /&gt;
* Yarn Width - by default this is the same for both warp and weft yarns&lt;br /&gt;
* 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&lt;br /&gt;
* Create 3D Weave - leave unchecked for 2D weave&lt;br /&gt;
* Create Layered Textile - when checked the Number of Weave Layers control is enabled for selection of the number of layers of the 2D textile.&lt;br /&gt;
* Create Default Domain - the default domain is the same as the unit cell, producing a box shaped domain with orthogonal faces.&lt;br /&gt;
* Create Sheared Domain - enabled when the Shear textile option is selected.  Generates a unit cell domain which lines up with the angle of the sheared yarns in the &amp;#039;&amp;#039;x&amp;#039;&amp;#039;-&amp;#039;&amp;#039;y&amp;#039;&amp;#039; plane.&lt;br /&gt;
* 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&lt;br /&gt;
** Gap Size - Specify the gap between yarns when Refine Model is selected&lt;br /&gt;
* Shear textile - if selected this will generate a textile with the weft yarns sheared at the shear angle specified.&lt;br /&gt;
** Shear angle - Specify the shear angle in degrees when Shear Textile is selected&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:2DWeavePatternDialog.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
* Click on yarn cross-over to switch the vertical order of the crossing yarns and thus define the weave pattern.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** 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.&lt;br /&gt;
&lt;br /&gt;
====Create 3D Weave====&lt;br /&gt;
&lt;br /&gt;
* Create 3D Weave - check this box&lt;br /&gt;
* Refine Model/Gap size - these options will now be greyed&lt;br /&gt;
* Fill in the rest of the textile data on the Weave Wizard as described for a 2D weave above &lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:weavepattern.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Add/remove layers&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and Click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu.&lt;br /&gt;
*** Select Add Layers/Remove Layers to add/remove one yarn to each set of yarns chosen&lt;br /&gt;
* Set yarn spacing, width and height as for 2D Weave described above&lt;br /&gt;
&lt;br /&gt;
===Create 3D Weave===&lt;br /&gt;
&lt;br /&gt;
To use the 3D weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; 3D Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create 3D Weave...&lt;br /&gt;
&lt;br /&gt;
First select the weave type to be created and then select Next to continue to the next page.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardPage1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardWeftPage.png]]&lt;br /&gt;
&lt;br /&gt;
* Yarns - select number of yarns required&lt;br /&gt;
* Number of Yarn Layers - select the number of weft yarn layers&lt;br /&gt;
** 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.&lt;br /&gt;
* Yarn Spacing - this is the spacing allowed for the yarn, the yarn being positioned centrally within the space assigned.&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to warp yarn input dialog.  Enter data as for the weft yarns.&lt;br /&gt;
[[Image:3DWizardWarpPage.png]]&lt;br /&gt;
*Total number of yarns in warp direction: This is the total of both straight warp yarns and through thickness binder yarns.&lt;br /&gt;
* Ratio of Binder Yarns to Warp Yarns: Specifies the order of binder/warp yarns.  If the warp ratio is 0 then all yarns in the warp direction are binder yarns.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the binder yarn input dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardBinderPage.png]]&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Yarn Spacing - specify the yarn spacing&lt;br /&gt;
* Gap size - where possible this forces a gap of the given size between yarns&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* Number of Binder Yarn Layers - this is only enabled for layer-to-layer weaves&lt;br /&gt;
* Refine - this option is only available for orthogonal weaves. Check the box to refine the textile.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the Weave Pattern dialog or to the Yarn Properties dialogs if the Refine option is selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:3dWizardWeaveControl.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
Binder yarns are green, warp yarns blue.&lt;br /&gt;
* Orthogonal weave - click on binder yarn crossover point on top view to toggle the binder yarn between top and bottom of the weave.&lt;br /&gt;
* Angle interlock - click on binder yarn crossover point on top view to assign top point of binder yarn pattern.&lt;br /&gt;
* Layer-to-layer&lt;br /&gt;
** 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** Changes will be applied to all selected yarns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardYarnProperties.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Layered===&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Layered, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Layered...&lt;br /&gt;
&lt;br /&gt;
[[Image:SelectLayersDialog.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The Select Textile Layers dialog will be displayed.  On the left hand side this lists all of the textiles currently loaded in the GUI. These can be selected and then the Add Layer button used to add them to the Layers window on the right hand side.  The textiles listed in the Layers window can then be selected and the Remove Layer, Move Layer Up and Move Layer Down buttons used to select the order required.  The layered textile will be created with the textiles in the order shown in the dialog as shown below.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredTextile.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Set Layer Offsets===&lt;br /&gt;
[[Image:Layer Offsets Dialog.png|right]]&lt;br /&gt;
Select Main Menu -&amp;gt; Textiles -&amp;gt; Set Layer Offsets&lt;br /&gt;
&lt;br /&gt;
The Layer Offsets dialog will be displayed.&lt;br /&gt;
* Constant - enter an x and y offset. This offset will be applied from the bottom of the stack to each layer, relative to the one below.&lt;br /&gt;
* Random - random offsets are allocated and are displayed in the table on the dialog.&lt;br /&gt;
* Edit Offsets - the table can be edited and the offsets entered.&lt;br /&gt;
[[Image:4LayeredOffset.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Nest Layers===&lt;br /&gt;
Two nesting options are available, either maintaining the layer offsets already set or moving the layers relative to each other in order to achieve the maximum nesting.&lt;br /&gt;
&lt;br /&gt;
* Maintaining offset&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Keep Offsets&lt;br /&gt;
**The layers will be moved together, in the z direction, as much as possible without causing intersections.  The current x,y offsets between layers is maintained.&lt;br /&gt;
&lt;br /&gt;
* Maximum nesting&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Maximum nesting&lt;br /&gt;
**The layers will be moved together adjusting the x and y offset between the layers in order to achieve the maximum z movement without causing intersections.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredNested.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Edit Textile===&lt;br /&gt;
&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Edit Textile..&lt;br /&gt;
or&lt;br /&gt;
* Select Edit from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Note: If the textile has been edited (eg. nodes have been moved) this will not be reflected in the regenerated textile.&lt;br /&gt;
&lt;br /&gt;
===Rotate Textile===&lt;br /&gt;
[[Image:RotateTextileDialog.png|right]]&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Rotate Textile&lt;br /&gt;
or&lt;br /&gt;
* Select Rotate from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
The Rotate Textile dialog will be displayed&lt;br /&gt;
* Rotation Axis - select the axis of rotation. For in plane rotation select the z-axis&lt;br /&gt;
* Angle - rotation angle in degrees&lt;br /&gt;
* Rotate Domain - Check to rotate the domain with the yarns. This will result in the section of yarns contained in the domain remaining unchanged (left below). If unchecked the domain will be unchanged and just the yarns rotated (right below).&lt;br /&gt;
&lt;br /&gt;
[[Image:RotateTextileAndDomain.png|400px]]           [[Image:RotateTextile.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==File Menu==&lt;br /&gt;
===Import===&lt;br /&gt;
====Weave Pattern File====&lt;br /&gt;
This option generates a TexGen model from a weave pattern file in the format specified below.&lt;br /&gt;
*Select File-&amp;gt;Import-&amp;gt;Weave Pattern File...&lt;br /&gt;
*The Open Weave Pattern File dialog is displayed, from which a file for import may be selected.&lt;br /&gt;
** Weave Pattern File Format&lt;br /&gt;
2D Satin Weave:&lt;br /&gt;
&lt;br /&gt;
 1 1 1 1                         &amp;#039;&amp;#039;First line is layer data, space delimited&amp;#039;&amp;#039;&lt;br /&gt;
 1000                            &amp;#039;&amp;#039;Weave pattern: 1 = warp lifted&amp;#039;&amp;#039;&lt;br /&gt;
 0010                                           &amp;#039;&amp;#039;0 = warp lowered&amp;#039;&amp;#039;&lt;br /&gt;
 0100		          &lt;br /&gt;
 0001                            &amp;#039;&amp;#039;No spacing between entries&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
 WEFT_REPEAT                     &amp;#039;&amp;#039;Use this keyword to generate pattern repeat&amp;#039;&amp;#039;&lt;br /&gt;
 WIDTH	6		mm       &amp;#039;&amp;#039;Yarn data. Row order is unimportant&amp;#039;&amp;#039;&lt;br /&gt;
 TOW_AREA	0.2    mm^2      &amp;#039;&amp;#039;Width, tow area and weft density must all be&amp;#039;&amp;#039;&lt;br /&gt;
 WEFT_DENSITY	8	/cm      &amp;#039;&amp;#039;specified otherwise default values will be used&amp;#039;&amp;#039; &lt;br /&gt;
                          	 &amp;#039;&amp;#039;to generate the TexGen model&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Additional yarn data. This is optional and will be saved in the yarn properties in the TexGen model&lt;br /&gt;
 LINEAR_DENSITY	800	tex&lt;br /&gt;
 FIBRE_DIAMETER	7	um&lt;br /&gt;
 FIBRE_DENSITY	1.8	g/cm^3&lt;br /&gt;
 FIBRE_COUNT	12000&lt;br /&gt;
&lt;br /&gt;
If the tow area is specified with no tow width and height then the TexGen model is generated using the tow area to calculate the width and height of the yarns, assuming a width to height ratio of 6:1 and an elliptical cross-section.  Warp and weft spacings are calculated using the width and weft density information. The data above will generate the model shown below:&lt;br /&gt;
&lt;br /&gt;
[[file:SatinFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
If the tow area and one of tow width or height are specified then the other dimension (height or width) will be calculated using this data (as in the 3D weave model below). If both tow width and height are specified then these are used, irrespective of the tow area specified.&lt;br /&gt;
&lt;br /&gt;
3D Weave:&lt;br /&gt;
The following file will generate the model shown below:&lt;br /&gt;
 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4   &amp;#039;&amp;#039;Warp layer data, numbered from bottom. Single &amp;#039;1&amp;#039; gives binder yarn&amp;#039;&amp;#039;&lt;br /&gt;
 11001111110000001100&lt;br /&gt;
 00001100111111000000&lt;br /&gt;
 10001100100011001000&lt;br /&gt;
 11001000110010001111&lt;br /&gt;
 11110000100000001000&lt;br /&gt;
 00001000000011110000&lt;br /&gt;
 WIDTH	7.5		mm&lt;br /&gt;
 TOW_AREA  0.2 mm^2&lt;br /&gt;
 TOW_HEIGHT 	0.4 mm&lt;br /&gt;
 WEFT_DENSITY	8	/cm&lt;br /&gt;
 FIBRE_COUNT	6000&lt;br /&gt;
 LINEAR_DENSITY	800	tex&lt;br /&gt;
 FIBRE_DIAMETER	6	um&lt;br /&gt;
 FIBRE_DENSITY	1.8	g/cm^3&lt;br /&gt;
 WEFT_REPEAT&lt;br /&gt;
&lt;br /&gt;
[[file:3DWeaveFromPattern.png|400px]]    [[file:3DWeaveFromPattern2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
3D Orthogonal Weave:&lt;br /&gt;
 1 1 2 3 4 1 1 2 3 4            &amp;#039;&amp;#039;Warp layer data, numbered from bottom. Single &amp;#039;1&amp;#039; gives binder yarn&amp;#039;&amp;#039;&lt;br /&gt;
 1000000000&lt;br /&gt;
 1100001000&lt;br /&gt;
 1110001100&lt;br /&gt;
 1111001110&lt;br /&gt;
 1111101111&lt;br /&gt;
 0000010000&lt;br /&gt;
 0100011000&lt;br /&gt;
 0110011100&lt;br /&gt;
 0111011110&lt;br /&gt;
 0111111111&lt;br /&gt;
 &lt;br /&gt;
 ORTHOGONAL                     &amp;#039;&amp;#039;Use orthogonal keyword to automatically stack weft insertions&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[file:OrthogonalFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Export===&lt;br /&gt;
====Surface Mesh====&lt;br /&gt;
This option creates a surface mesh corresponding to the mesh shown when using the Rendering -&amp;gt; X-Ray option.&lt;br /&gt;
&lt;br /&gt;
=====VTU and STL File=====&lt;br /&gt;
[[file:SurfaceVTUDialog.png|right]]&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;STL, VTU File...&lt;br /&gt;
*The Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Export Yarns: Select to create a mesh of the yarn surfaces&lt;br /&gt;
**Trim Surface to Domain: Select to create yarn meshes conforming to domain bounds&lt;br /&gt;
**Export Domain: Select to create a triangulated mesh of the domain surfaces&lt;br /&gt;
***Mesh Yarn Ends: Select to create a triangulated mesh across the yarn ends&lt;br /&gt;
***Seed size: Used to adjust size of triangulation&lt;br /&gt;
*The Save Mesh file menu will be displayed&lt;br /&gt;
**Save as type: Use the drop-down menu to select the file type - VTU, STL (ASCII or binary, or SciRun format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS File=====&lt;br /&gt;
[[file:SurfaceAbaqusDialog.png|right]]&lt;br /&gt;
This option will export the surface mesh of the yarns only&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;ABAQUS File...&lt;br /&gt;
*The ABAQUS Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Trim Surface to Domain: Select to output mesh of the yarns bounded by the domain, otherwise the yarns will be output as specified, without repeats&lt;br /&gt;
**Contact Surfaces: Outputs element sets for the contact surfaces, either for the upper and lower surfaces separately, or for the whole yarn. Choose Whole Yarn where surfaces are not clearly defined, for example in knitted textiles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Volume Mesh====&lt;br /&gt;
[[file:VolumeMeshDialog.png|right]]&lt;br /&gt;
This option creates a tetrahedral mesh of both the yarns and matrix (ie of the whole domain).  Please note that this algorithm does not work well with textiles with vertical or near-vertical yarns.&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Volume Mesh&lt;br /&gt;
*The Volume Mesh Options dialog will be displayed&lt;br /&gt;
**Element Order: Linear creates 4 noded tetrahedra, Quadratic creates 10 noded tetrahedra&lt;br /&gt;
**Periodic Meshing: Select to create matching elements on opposite boundaries&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates tetrahedra which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
**Seed size: Controls the mesh density and corresponds to the approximates edge length of the elements.  The default value is 1/20th of the domain diagonal length.&lt;br /&gt;
**Merge Tolerance:Any gaps between yarns that are smaller than this tolerance will be merged together.  This can help to reduce the number of bad quality elements.&lt;br /&gt;
&lt;br /&gt;
After the Volume Mesh Options dialog is accepted the Save Mesh File dialog will be dispayed.  The default type for output is an ABAQUS .inp file.  This will create the requested boundary conditions and also associated .ele and .ori files containing yarn orientation and volume fraction information.&lt;br /&gt;
Alternatively a VTK unstructured grid file (.vtu) can be selected which will just output the mesh.&lt;br /&gt;
&lt;br /&gt;
====Tetgen Mesh====&lt;br /&gt;
[[file:TetgenOptions.png|right]]&lt;br /&gt;
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.&lt;br /&gt;
:*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. Use the o2 parameter to generate second order elements.&lt;br /&gt;
:*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.&lt;br /&gt;
:*The Periodic check box should be unchecked for non-periodic textiles.  In this case the the domain faces will not be triangulated prior to calling the Tetgen tetrahedralization.&lt;br /&gt;
:*The Set Resolution check box allows the textile resolution to be changed. This sets the resolution for the surface mesh which is used as input for the Tetgen meshing&lt;br /&gt;
&lt;br /&gt;
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.  &amp;#039;&amp;#039;It is strongly recommended that the textile is saved before using this option.&amp;#039;&amp;#039;  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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Voxel Mesh====&lt;br /&gt;
&lt;br /&gt;
Textiles can be exported in voxel mesh format, either as an ABAQUS file including periodic boundary conditions or at a VTU file containing just the nodes and elements.&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS Voxel File=====&lt;br /&gt;
[[file:AbaqusVoxelDialog.png|300px|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; ABAQUS Voxel File&lt;br /&gt;
*The Abaqus Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Select whether to output yarns, matrix or both&lt;br /&gt;
**Select whether to use octree refinement and/or smoothing on the voxel mesh. The Octree Refinement dialog will be displayed when OK is selected.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
&lt;br /&gt;
=====Octree Refinement=====&lt;br /&gt;
[[file:OctreeRefinementDialog.png|300px|right]]&lt;br /&gt;
*Output Surfaces - generate sets of nodes for surfaces between yarns and matrix &lt;br /&gt;
*Output cohesive elements – define cohesive contact between yarns and matrix &lt;br /&gt;
**Only available if surfaces are output. Nodes on the surfaces between yarns and matrix will be duplicated to &amp;quot;decouple&amp;quot; the yarns and matrix. Cohesive contacts will be created&lt;br /&gt;
*Refinement level - Each level of refinement reduces the size of element by the factor of 2. Only elements on the interface between two materials or close to it will be refined to this level of refinement.&lt;br /&gt;
======Smoothing Options======&lt;br /&gt;
The smoothing algorithm will move the yarn surface nodes according to the [http://www.cs.jhu.edu/~misha/Fall07/Papers/Taubin00.pdf Laplacian smoothing algorithm]&lt;br /&gt;
*Smoothing&lt;br /&gt;
**None - no smoothing applied&lt;br /&gt;
**Laplacian - Apply Laplacian smoothing to nodes belonging to yarn-matrix surfaces. Each node will be moved by C1*sum(x_i) where x_i are coordinates of neighbouring nodes&lt;br /&gt;
**Non-shrinking - Apply two Laplacian smoothings consecutively with coefficients C1 and C1, where C1 &amp;lt; abs(-C2)&lt;br /&gt;
*Iterations - number of smoothing iterations&lt;br /&gt;
*Coefficient 1 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 1] &lt;br /&gt;
*Coefficient 2 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 2]&lt;br /&gt;
&lt;br /&gt;
=====VTU Voxel File=====&lt;br /&gt;
[[file:VoxelVTUDialog.png|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; VTU Voxel File&lt;br /&gt;
*The VTU Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Domain Type&lt;br /&gt;
***Box Domain: Default domain created by weave wizards consisting of 6 orthogonal planes&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ABAQUS Dry Fibre File====&lt;br /&gt;
[[file:DryFibreDialog.png|right]]&lt;br /&gt;
&lt;br /&gt;
This will create a mesh of just the yarns in the same form as shown by the Rendering-&amp;gt;Render Textile Volume option.&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; ABAQUS File -&amp;gt; ABAQUS Dry Fibre File..&lt;br /&gt;
*The Abaqus Options dialog will be displayed&lt;br /&gt;
**X, Y and Z Scale:From the scales entered displacements are calculated and applied to the centre node of each yarn, effectively providing the loading for the Abaqus simulation&lt;br /&gt;
**Checking the Compression Plates box will add a pair of plates at the top and bottom surface of the domain.&lt;br /&gt;
**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.&lt;br /&gt;
**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.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Contact Surfaces: This option allows contact surfaces to be generated for either the whole yarns or for the upper and lower surfaces. For woven textiles select Upper and Lower. For textiles where there is not a clearly defined upper and lower surface, eg knitted fabric, choose Whole Yarn&lt;br /&gt;
&lt;br /&gt;
==Modeller==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Textile===&lt;br /&gt;
To invoke the modeller either:&lt;br /&gt;
# Select Controls -&amp;gt; Textile -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Add Yarns===&lt;br /&gt;
&lt;br /&gt;
To add a single yarn either:&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Create Yarn...&lt;br /&gt;
&lt;br /&gt;
In the Create Yarn dialog:&lt;br /&gt;
* Enter start and end coordinates for the yarn&lt;br /&gt;
* Enter number of nodes&lt;br /&gt;
** The yarn will always initially be created as a straight line with equispaced nodes.&lt;br /&gt;
** Once the yarn has been placed it will be visible on screen in wire frame mode.&lt;br /&gt;
&lt;br /&gt;
====Edit Yarn/Node Position====&lt;br /&gt;
&lt;br /&gt;
Select yarn/node using one of the following methods:&lt;br /&gt;
# Click on the yarn/node with the left mouse button&lt;br /&gt;
# Hold Shift while selecting yarn/node to select multiple yarns&lt;br /&gt;
# Click on the yarn/node in the Outliner tree control&lt;br /&gt;
# Hold Shift or Ctrl while clicking on yarns/nodes in outliner tree to select multiple yarns&lt;br /&gt;
&lt;br /&gt;
Nodes are displayed as spheres on the centreline of the yarns.&lt;br /&gt;
&lt;br /&gt;
When either yarn or nodes have been selected they will turn white.  X, Y and Z axes will be displayed.&lt;br /&gt;
&lt;br /&gt;
To move yarn/node once it has been selected either:&lt;br /&gt;
* Click and drag one of the axes displayed.  The yarn/node will be moved in the corresponding direction.&lt;br /&gt;
** Precise positioning can be achieved by enabling snapping using Controls -&amp;gt; Modeller -&amp;gt; Snapping&lt;br /&gt;
* Edit the coordinates in the Controls -&amp;gt; Modeller -&amp;gt; Position boxes.&lt;br /&gt;
&lt;br /&gt;
====Add Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select node&lt;br /&gt;
# Click Outliner -&amp;gt; Insert Node, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Duplicate Yarns====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Duplicate Yarn, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039; on the keyboard&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Delete Yarns/Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Delete Selected, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Path Interpolation===&lt;br /&gt;
&lt;br /&gt;
This specifies how the yarn path is interpolated between the nodes.&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Interpolation... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Interpolation&lt;br /&gt;
# Select interpolation type from drop-down menu&lt;br /&gt;
# Periodic - check to give continuity across yarn repeats as follows:&lt;br /&gt;
## Linear - continuity of cross-section&lt;br /&gt;
## Bezier - continuity of cross-section and tangent(first order continuity)&lt;br /&gt;
## Natural Cubic - continuity of cross-section and both first and second order continuity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Cross-Sections===&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Section... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Section&lt;br /&gt;
# Select from the drop-down menu how the cross-section will vary along the length of the yarn&lt;br /&gt;
## Constant&lt;br /&gt;
## Interpolate Between Nodes - see below&lt;br /&gt;
## Interpolate Between Sections - see below&lt;br /&gt;
# Select Edit Section to change section shape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Nodes====&lt;br /&gt;
** Highlight node to be edited&lt;br /&gt;
** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Smooth - check this box to give smooth interpolation between section&lt;br /&gt;
** Polar - check this box to give polar rather than linear interpolation between sections, useful if there are large rotations between sections&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Sections====&lt;br /&gt;
** Sections can be specified at specific positions along the length of the yarn&lt;br /&gt;
** To add a section:&lt;br /&gt;
*** Click on Insert Section&lt;br /&gt;
*** Highlight the section which appears in the text box&lt;br /&gt;
*** Select the position along the yarn by using the slider or typing into the text box at the bottom of the dialog&lt;br /&gt;
** To remove a section:&lt;br /&gt;
*** Highlight the section to be removed&lt;br /&gt;
*** Click on Remove Section&lt;br /&gt;
*** Smooth and Polar - check as required, see Interpolate Between Nodes&lt;br /&gt;
*** Highlight node to be edited&lt;br /&gt;
*** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Specify Cross-sections====&lt;br /&gt;
&lt;br /&gt;
After selecting the Edit Section button the Select Cross-section Shape dialog will be displayed.&lt;br /&gt;
&lt;br /&gt;
The shape at the top of the dialog gives a preview of the shape currently specified.&lt;br /&gt;
&lt;br /&gt;
* Select Cross-section from drop-down list and enter parameters as follows:&lt;br /&gt;
** Ellipse - Width and height&lt;br /&gt;
** 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.&lt;br /&gt;
** Power Ellipse - A modified ellipse.  Power = 1 gives an ellipse. Power &amp;lt; 1 gives a rectangle with rounded corners (power = 0 gives a rectangle). Power &amp;gt; 1 gives a shape similar to lenticular with rounded ends.&lt;br /&gt;
** 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 ).&lt;br /&gt;
** Hybrid - This allows a complex section to be created by combining two or more of the above cross-section shapes.&lt;br /&gt;
[[file:HybridSection.png|frame|left]]&lt;br /&gt;
[[file:HybridSectionDialog3.png|right|frame]]&lt;br /&gt;
::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.&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
::The example shows: &lt;br /&gt;
:::Red section   - ellipse, width = 1.0, height = 0.5&lt;br /&gt;
:::Blue section  - lenticular, width = 1.0, height = 0.5, distortion = 0&lt;br /&gt;
:::Green section - ellipse, width = 0.75, height = 0.75&lt;br /&gt;
&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rotate - if this is checked then input an angle by which the shape should be rotated.&lt;br /&gt;
* Scale - if this is checked then input scale factors for the x and y directions.&lt;br /&gt;
&lt;br /&gt;
===Repeats===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Repeats... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Repeats&lt;br /&gt;
# Select yarn or multiple yarns as described in Edit Yarn/Node Position&lt;br /&gt;
# 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties===&lt;br /&gt;
Properties can be set for yarns, either individually or for the whole textile, and matrix.&lt;br /&gt;
&lt;br /&gt;
For all properties both the value and the units can be set in the dialog box.  Units are set by entering a string, eg kg/m^3&lt;br /&gt;
&lt;br /&gt;
[[file:YarnProperties.png|right]]&lt;br /&gt;
To set yarn properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Yarn Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the whole textile:&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Areal Density, or...&lt;br /&gt;
# To set properties for individual yarns select one or more yarns (use Shift+Mouse Click to select multiple yarns) and enter values and units in the Properties dialog:&lt;br /&gt;
[[file:TextilePropetiesDialog.png|right]]&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Young&amp;#039;s Modulus X&lt;br /&gt;
## Young&amp;#039;s Modulus Y&lt;br /&gt;
## Young&amp;#039;s Modulus Z&lt;br /&gt;
## Shear Modulus XY&lt;br /&gt;
## Shear Modulus XZ&lt;br /&gt;
## Shear Modulus YZ&lt;br /&gt;
## Poisson&amp;#039;s Ratio X&lt;br /&gt;
## Poisson&amp;#039;s Ratio Y&lt;br /&gt;
## Poisson&amp;#039;s Ratio Z&lt;br /&gt;
## Alpha X&lt;br /&gt;
## Alpha Y&lt;br /&gt;
## Alpha Z&lt;br /&gt;
[[file:MatrixProperties.png|right]]&lt;br /&gt;
To set the matrix properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Matrix Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Matrix Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the matrix:&lt;br /&gt;
## Matrix Young&amp;#039;s Modulus&lt;br /&gt;
## Matrix Poisson&amp;#039;s Ratio&lt;br /&gt;
## Matrix Alpha&lt;br /&gt;
&lt;br /&gt;
==Domain==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The domain is specified by planes where the space on the negative side of the plane is&lt;br /&gt;
considered to be outside of the domain. Each plane is defined as:&lt;br /&gt;
Ax + By + Cz + D = 0&lt;br /&gt;
&lt;br /&gt;
The vector (A, B, C) represents the unit normal to the plane, and D represents the distance&lt;br /&gt;
from the plane to the origin. In order to specify an axis aligned bounding box&lt;br /&gt;
with minimum of (x1, y1, z1) and maximum of (x2, y2, z2), six planes P need to be defined&lt;br /&gt;
as shown in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! A !! B !! C !! D&lt;br /&gt;
|-&lt;br /&gt;
! P0&lt;br /&gt;
| 1 || 0 || 0 || x1&lt;br /&gt;
|-&lt;br /&gt;
! P1&lt;br /&gt;
| -1 || 0 || 0 || -x2&lt;br /&gt;
|-&lt;br /&gt;
! P2&lt;br /&gt;
| 0 || 1 || 0 || y1&lt;br /&gt;
|-&lt;br /&gt;
! P3&lt;br /&gt;
| 0 || -1 || 0 || -y2&lt;br /&gt;
|-&lt;br /&gt;
! P4&lt;br /&gt;
| 0 || 0 || 1 || z1&lt;br /&gt;
|-&lt;br /&gt;
! P5&lt;br /&gt;
| 0 || 0 || -1 || -z2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The user interface gives two methods of specifying the domain:&lt;br /&gt;
# Specify a bounding box with minimum and maximum x, y and z values&lt;br /&gt;
# Specify the planes as described above&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Bounding Box===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Box... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Box&lt;br /&gt;
# In the Box Domain dialog enter the minimum and maximum x, y and z coordinates&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Planes===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Planes... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Planes&lt;br /&gt;
# Enter planes using the Domain Editor dialog:&lt;br /&gt;
## Enter x, y, z and d values for a plane as specified above&lt;br /&gt;
## Select Add Plane&lt;br /&gt;
## Repeat for each plane required&lt;br /&gt;
# To edit a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Alter the values as required&lt;br /&gt;
## Select Replace Plane&lt;br /&gt;
# To delete a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Select Delete Plane&lt;br /&gt;
&lt;br /&gt;
===Edit Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Edit Domain... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Edit&lt;br /&gt;
# The Domain Editor dialog will be displayed and is used as described in the previous section&lt;br /&gt;
&lt;br /&gt;
===Delete Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Delete or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Delete&lt;br /&gt;
&lt;br /&gt;
Both of these actions will completely delete the domain&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
&lt;br /&gt;
===Render Fibre Orientation===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Refresh View===&lt;br /&gt;
&lt;br /&gt;
Forces the textile to be re-rendered so that any updates (eg made using Python commands) are shown.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Create Pattern Draft===&lt;br /&gt;
&lt;br /&gt;
This function will create a pattern draft for textiles created using the 2D and 3D textile weave types. It is not currently implemented for 3D angle interlock textiles.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Select Pattern Draft&lt;br /&gt;
** A dialog will be displayed showing the pattern draft for the current textile as shown below:&lt;br /&gt;
[[Image:Pattern4x4.png|400px]]    [[Image:2dWeavePatternDraft.png|200px]]&lt;br /&gt;
&lt;br /&gt;
* Select Print to print in the format shown in the dialog&lt;br /&gt;
* Select Save to create a text file with a binary version of the pattern as shown below:&lt;br /&gt;
&lt;br /&gt;
 1000	0001&lt;br /&gt;
 0100	0010&lt;br /&gt;
 0010	0100&lt;br /&gt;
 0001	1000&lt;br /&gt;
 &lt;br /&gt;
 0111	1110&lt;br /&gt;
 1101	1011&lt;br /&gt;
 1011	1101&lt;br /&gt;
 1110	0111&lt;br /&gt;
&lt;br /&gt;
* For 3d textiles the ordering of weft yarn insertion is selected using the dialog below:&lt;br /&gt;
[[Image:WeftOrderingDialog.png]]&lt;br /&gt;
* The pattern draft will then be displayed and may be printed and saved as before.&lt;br /&gt;
[[Image:LayerToLayerTextile.png|400px]]    [[Image:LayerToLayerPattern.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Quick Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Quick Calculate Domain Volume Fraction&lt;br /&gt;
** The volume fraction will be calculated using the volume fraction for the whole yarn. This may introduce inaccuracies if the domain does not correlate to the size of the yarn and the yarn cross-section changes along its length.  The Calculate Domain Volume Fraction gives a more accurate value but is slower.  This option is useful where a quick approximation is acceptable.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:QuickVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Calculate Domain Volume Fraction&lt;br /&gt;
** This calculates the volume fraction for the domain based on the localised volume fractions for each element of a volume mesh.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:DomainVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Yarn Fibre Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Yarn Fibre Volume Fraction&lt;br /&gt;
** Select yarn using the left mouse button. (Shift + left button to select more than one yarn)&lt;br /&gt;
** The volume fraction for each yarn is displayed in a dialog as shown:&lt;br /&gt;
[[File:YarnVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Correct Small Intersections===&lt;br /&gt;
&lt;br /&gt;
*Select Main Menu-&amp;gt;Tools-&amp;gt;Correct Small Intersections&lt;br /&gt;
**Adjusts small interferences in the fibre volume mesh&lt;br /&gt;
**Takes the individual yarn meshes and corrects intersections based on Textile.DetectInterference()&lt;br /&gt;
**Only intended to be used for minor adjustments so will abort if intersections are greater than one volume element in depth&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
&lt;br /&gt;
===Switch Off Messages===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Options -&amp;gt; Output Messages to switch on/off&lt;br /&gt;
** The option will be marked with a tick if messages are switched on&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
===Zoom===&lt;br /&gt;
&lt;br /&gt;
Press and hold right mouse button.  Drag in an upwards direction to zoom in, downwards to zoom out.&lt;br /&gt;
&lt;br /&gt;
===Pan===&lt;br /&gt;
&lt;br /&gt;
Press and hold middle mouse button at point to be moved, then drag to required position.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>User Guide</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2024-06-25T15:15:05Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Weave Pattern File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This user guide gives instructions for using TexGen via the graphical user interface (GUI). A practical introduction to using TexGen with worked examples and exercises can be found in the [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6 TexGen chapter] in the book Advanced Weaving Technology, DOI https://doi.org/10.1007/978-3-030-91515-5.&lt;br /&gt;
&lt;br /&gt;
==Layout==&lt;br /&gt;
[[Image:layout.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There are several other windows which can be switched on and off via the drop-down menu at the top in the &amp;quot;Window&amp;quot; section. By default the controls and logs windows will be visible.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The log windows at the bottom contains an interactive &amp;#039;&amp;#039;Python Console&amp;#039;&amp;#039; along with &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; and &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Textiles Menu==&lt;br /&gt;
&lt;br /&gt;
===Create Empty Textile===&lt;br /&gt;
This option creates an empty textile ready to have yarns added using the Modeller options.&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
A Textile Name dialog will then be displayed for entering a name for the textile.  Leave blank for a default name of Textile, Textile-2 etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Weave===&lt;br /&gt;
&lt;br /&gt;
[[Image:WeavewizardShear.png]]&lt;br /&gt;
&lt;br /&gt;
To use the weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Weave...&lt;br /&gt;
&lt;br /&gt;
====Create 2D Weave====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
* Warp Yarns, Weft Yarns - select number of yarns required&lt;br /&gt;
* Yarn Spacing - by default this is the same for both warp and weft yarns&lt;br /&gt;
* Yarn Width - by default this is the same for both warp and weft yarns&lt;br /&gt;
* 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&lt;br /&gt;
* Create 3D Weave - leave unchecked for 2D weave&lt;br /&gt;
* Create Layered Textile - when checked the Number of Weave Layers control is enabled for selection of the number of layers of the 2D textile.&lt;br /&gt;
* Create Default Domain - the default domain is the same as the unit cell, producing a box shaped domain with orthogonal faces.&lt;br /&gt;
* Create Sheared Domain - enabled when the Shear textile option is selected.  Generates a unit cell domain which lines up with the angle of the sheared yarns in the &amp;#039;&amp;#039;x&amp;#039;&amp;#039;-&amp;#039;&amp;#039;y&amp;#039;&amp;#039; plane.&lt;br /&gt;
* 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&lt;br /&gt;
** Gap Size - Specify the gap between yarns when Refine Model is selected&lt;br /&gt;
* Shear textile - if selected this will generate a textile with the weft yarns sheared at the shear angle specified.&lt;br /&gt;
** Shear angle - Specify the shear angle in degrees when Shear Textile is selected&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:2DWeavePatternDialog.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
* Click on yarn cross-over to switch the vertical order of the crossing yarns and thus define the weave pattern.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** 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.&lt;br /&gt;
&lt;br /&gt;
====Create 3D Weave====&lt;br /&gt;
&lt;br /&gt;
* Create 3D Weave - check this box&lt;br /&gt;
* Refine Model/Gap size - these options will now be greyed&lt;br /&gt;
* Fill in the rest of the textile data on the Weave Wizard as described for a 2D weave above &lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:weavepattern.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Add/remove layers&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and Click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu.&lt;br /&gt;
*** Select Add Layers/Remove Layers to add/remove one yarn to each set of yarns chosen&lt;br /&gt;
* Set yarn spacing, width and height as for 2D Weave described above&lt;br /&gt;
&lt;br /&gt;
===Create 3D Weave===&lt;br /&gt;
&lt;br /&gt;
To use the 3D weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; 3D Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create 3D Weave...&lt;br /&gt;
&lt;br /&gt;
First select the weave type to be created and then select Next to continue to the next page.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardPage1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardWeftPage.png]]&lt;br /&gt;
&lt;br /&gt;
* Yarns - select number of yarns required&lt;br /&gt;
* Number of Yarn Layers - select the number of weft yarn layers&lt;br /&gt;
** 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.&lt;br /&gt;
* Yarn Spacing - this is the spacing allowed for the yarn, the yarn being positioned centrally within the space assigned.&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to warp yarn input dialog.  Enter data as for the weft yarns.&lt;br /&gt;
[[Image:3DWizardWarpPage.png]]&lt;br /&gt;
*Total number of yarns in warp direction: This is the total of both straight warp yarns and through thickness binder yarns.&lt;br /&gt;
* Ratio of Binder Yarns to Warp Yarns: Specifies the order of binder/warp yarns.  If the warp ratio is 0 then all yarns in the warp direction are binder yarns.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the binder yarn input dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardBinderPage.png]]&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Yarn Spacing - specify the yarn spacing&lt;br /&gt;
* Gap size - where possible this forces a gap of the given size between yarns&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* Number of Binder Yarn Layers - this is only enabled for layer-to-layer weaves&lt;br /&gt;
* Refine - this option is only available for orthogonal weaves. Check the box to refine the textile.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the Weave Pattern dialog or to the Yarn Properties dialogs if the Refine option is selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:3dWizardWeaveControl.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
Binder yarns are green, warp yarns blue.&lt;br /&gt;
* Orthogonal weave - click on binder yarn crossover point on top view to toggle the binder yarn between top and bottom of the weave.&lt;br /&gt;
* Angle interlock - click on binder yarn crossover point on top view to assign top point of binder yarn pattern.&lt;br /&gt;
* Layer-to-layer&lt;br /&gt;
** 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** Changes will be applied to all selected yarns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardYarnProperties.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Layered===&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Layered, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Layered...&lt;br /&gt;
&lt;br /&gt;
[[Image:SelectLayersDialog.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The Select Textile Layers dialog will be displayed.  On the left hand side this lists all of the textiles currently loaded in the GUI. These can be selected and then the Add Layer button used to add them to the Layers window on the right hand side.  The textiles listed in the Layers window can then be selected and the Remove Layer, Move Layer Up and Move Layer Down buttons used to select the order required.  The layered textile will be created with the textiles in the order shown in the dialog as shown below.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredTextile.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Set Layer Offsets===&lt;br /&gt;
[[Image:Layer Offsets Dialog.png|right]]&lt;br /&gt;
Select Main Menu -&amp;gt; Textiles -&amp;gt; Set Layer Offsets&lt;br /&gt;
&lt;br /&gt;
The Layer Offsets dialog will be displayed.&lt;br /&gt;
* Constant - enter an x and y offset. This offset will be applied from the bottom of the stack to each layer, relative to the one below.&lt;br /&gt;
* Random - random offsets are allocated and are displayed in the table on the dialog.&lt;br /&gt;
* Edit Offsets - the table can be edited and the offsets entered.&lt;br /&gt;
[[Image:4LayeredOffset.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Nest Layers===&lt;br /&gt;
Two nesting options are available, either maintaining the layer offsets already set or moving the layers relative to each other in order to achieve the maximum nesting.&lt;br /&gt;
&lt;br /&gt;
* Maintaining offset&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Keep Offsets&lt;br /&gt;
**The layers will be moved together, in the z direction, as much as possible without causing intersections.  The current x,y offsets between layers is maintained.&lt;br /&gt;
&lt;br /&gt;
* Maximum nesting&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Maximum nesting&lt;br /&gt;
**The layers will be moved together adjusting the x and y offset between the layers in order to achieve the maximum z movement without causing intersections.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredNested.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Edit Textile===&lt;br /&gt;
&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Edit Textile..&lt;br /&gt;
or&lt;br /&gt;
* Select Edit from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Note: If the textile has been edited (eg. nodes have been moved) this will not be reflected in the regenerated textile.&lt;br /&gt;
&lt;br /&gt;
===Rotate Textile===&lt;br /&gt;
[[Image:RotateTextileDialog.png|right]]&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Rotate Textile&lt;br /&gt;
or&lt;br /&gt;
* Select Rotate from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
The Rotate Textile dialog will be displayed&lt;br /&gt;
* Rotation Axis - select the axis of rotation. For in plane rotation select the z-axis&lt;br /&gt;
* Angle - rotation angle in degrees&lt;br /&gt;
* Rotate Domain - Check to rotate the domain with the yarns. This will result in the section of yarns contained in the domain remaining unchanged (left below). If unchecked the domain will be unchanged and just the yarns rotated (right below).&lt;br /&gt;
&lt;br /&gt;
[[Image:RotateTextileAndDomain.png|400px]]           [[Image:RotateTextile.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==File Menu==&lt;br /&gt;
===Import===&lt;br /&gt;
====Weave Pattern File====&lt;br /&gt;
This option generates a TexGen model from a weave pattern file in the format specified below.&lt;br /&gt;
*Select File-&amp;gt;Import-&amp;gt;Weave Pattern File...&lt;br /&gt;
*The Open Weave Pattern File dialog is displayed, from which a file for import may be selected.&lt;br /&gt;
** Weave Pattern File Format&lt;br /&gt;
2D Satin Weave:&lt;br /&gt;
&lt;br /&gt;
 1 1 1 1                         &amp;#039;&amp;#039;First line is layer data, space delimited&amp;#039;&amp;#039;&lt;br /&gt;
 1000                            &amp;#039;&amp;#039;Weave pattern: 1 = warp lifted&amp;#039;&amp;#039;&lt;br /&gt;
 0010                                           &amp;#039;&amp;#039;0 = warp lowered&amp;#039;&amp;#039;&lt;br /&gt;
 0100		          &lt;br /&gt;
 0001                            &amp;#039;&amp;#039;No spacing between entries&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
 WEFT_REPEAT                     &amp;#039;&amp;#039;Use this keyword to generate pattern repeat&amp;#039;&amp;#039;&lt;br /&gt;
 WIDTH	6		mm       &amp;#039;&amp;#039;Yarn data. Row order is unimportant&amp;#039;&amp;#039;&lt;br /&gt;
 TOW_AREA	0.2    mm^2      &amp;#039;&amp;#039;Width, tow area and weft density must all be&amp;#039;&amp;#039;&lt;br /&gt;
 WEFT_DENSITY	8	/cm      &amp;#039;&amp;#039;specified otherwise default values will be used&amp;#039;&amp;#039; &lt;br /&gt;
                          	 &amp;#039;&amp;#039;to generate the TexGen model&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Additional yarn data. This is optional and will be saved in the yarn properties in the TexGen model&lt;br /&gt;
 LINEAR_DENSITY	800	tex&lt;br /&gt;
 FIBRE_DIAMETER	7	um&lt;br /&gt;
 FIBRE_DENSITY	1.8	g/cm^3&lt;br /&gt;
 FIBRE_COUNT	12000&lt;br /&gt;
&lt;br /&gt;
If the tow area is specified with no tow width and height then the TexGen model is generated using the tow area to calculate the width and height of the yarns, assuming a width to height ratio of 6:1 and an elliptical cross-section.  Warp and weft spacings are calculated using the width and weft density information. The data above will generate the model shown below:&lt;br /&gt;
&lt;br /&gt;
[[file:SatinFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
If the tow area and one of tow width or height are specified then the other dimension (height or width) will be calculated using this data (as in the 3D weave model below). If both tow width and height are specified then these are used, irrespective of the tow area specified.&lt;br /&gt;
&lt;br /&gt;
3D Weave:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4   &amp;#039;&amp;#039;Warp layer data, numbered from bottom. Single &amp;#039;1&amp;#039; gives binder yarn&amp;#039;&amp;#039;&lt;br /&gt;
 11001111110000001100&lt;br /&gt;
 00001100111111000000&lt;br /&gt;
 10001100100011001000&lt;br /&gt;
 11001000110010001111&lt;br /&gt;
 11110000100000001000&lt;br /&gt;
 00001000000011110000&lt;br /&gt;
 WIDTH	7.5		mm&lt;br /&gt;
 TOW_AREA  0.2 mm^2&lt;br /&gt;
 TOW_HEIGHT 	0.4 mm&lt;br /&gt;
 WEFT_DENSITY	8	/cm&lt;br /&gt;
 FIBRE_COUNT	6000&lt;br /&gt;
 LINEAR_DENSITY	800	tex&lt;br /&gt;
 FIBRE_DIAMETER	6	um&lt;br /&gt;
 FIBRE_DENSITY	1.8	g/cm^3&lt;br /&gt;
 WEFT_REPEAT&lt;br /&gt;
&lt;br /&gt;
[[file:3DWeaveFromPattern.png|400px]]    [[file:3DWeaveFromPattern2.png|400px]]&lt;br /&gt;
&lt;br /&gt;
3D Orthogonal Weave:&lt;br /&gt;
 1 1 2 3 4 1 1 2 3 4            &amp;#039;&amp;#039;Warp layer data, numbered from bottom. Single &amp;#039;1&amp;#039; gives binder yarn&amp;#039;&amp;#039;&lt;br /&gt;
 1000000000&lt;br /&gt;
 1100001000&lt;br /&gt;
 1110001100&lt;br /&gt;
 1111001110&lt;br /&gt;
 1111101111&lt;br /&gt;
 0000010000&lt;br /&gt;
 0100011000&lt;br /&gt;
 0110011100&lt;br /&gt;
 0111011110&lt;br /&gt;
 0111111111&lt;br /&gt;
 &lt;br /&gt;
 ORTHOGONAL                     &amp;#039;&amp;#039;Use orthogonal keyword to automatically stack weft insertions&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[file:OrthogonalFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Export===&lt;br /&gt;
====Surface Mesh====&lt;br /&gt;
This option creates a surface mesh corresponding to the mesh shown when using the Rendering -&amp;gt; X-Ray option.&lt;br /&gt;
&lt;br /&gt;
=====VTU and STL File=====&lt;br /&gt;
[[file:SurfaceVTUDialog.png|right]]&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;STL, VTU File...&lt;br /&gt;
*The Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Export Yarns: Select to create a mesh of the yarn surfaces&lt;br /&gt;
**Trim Surface to Domain: Select to create yarn meshes conforming to domain bounds&lt;br /&gt;
**Export Domain: Select to create a triangulated mesh of the domain surfaces&lt;br /&gt;
***Mesh Yarn Ends: Select to create a triangulated mesh across the yarn ends&lt;br /&gt;
***Seed size: Used to adjust size of triangulation&lt;br /&gt;
*The Save Mesh file menu will be displayed&lt;br /&gt;
**Save as type: Use the drop-down menu to select the file type - VTU, STL (ASCII or binary, or SciRun format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS File=====&lt;br /&gt;
[[file:SurfaceAbaqusDialog.png|right]]&lt;br /&gt;
This option will export the surface mesh of the yarns only&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;ABAQUS File...&lt;br /&gt;
*The ABAQUS Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Trim Surface to Domain: Select to output mesh of the yarns bounded by the domain, otherwise the yarns will be output as specified, without repeats&lt;br /&gt;
**Contact Surfaces: Outputs element sets for the contact surfaces, either for the upper and lower surfaces separately, or for the whole yarn. Choose Whole Yarn where surfaces are not clearly defined, for example in knitted textiles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Volume Mesh====&lt;br /&gt;
[[file:VolumeMeshDialog.png|right]]&lt;br /&gt;
This option creates a tetrahedral mesh of both the yarns and matrix (ie of the whole domain).  Please note that this algorithm does not work well with textiles with vertical or near-vertical yarns.&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Volume Mesh&lt;br /&gt;
*The Volume Mesh Options dialog will be displayed&lt;br /&gt;
**Element Order: Linear creates 4 noded tetrahedra, Quadratic creates 10 noded tetrahedra&lt;br /&gt;
**Periodic Meshing: Select to create matching elements on opposite boundaries&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates tetrahedra which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
**Seed size: Controls the mesh density and corresponds to the approximates edge length of the elements.  The default value is 1/20th of the domain diagonal length.&lt;br /&gt;
**Merge Tolerance:Any gaps between yarns that are smaller than this tolerance will be merged together.  This can help to reduce the number of bad quality elements.&lt;br /&gt;
&lt;br /&gt;
After the Volume Mesh Options dialog is accepted the Save Mesh File dialog will be dispayed.  The default type for output is an ABAQUS .inp file.  This will create the requested boundary conditions and also associated .ele and .ori files containing yarn orientation and volume fraction information.&lt;br /&gt;
Alternatively a VTK unstructured grid file (.vtu) can be selected which will just output the mesh.&lt;br /&gt;
&lt;br /&gt;
====Tetgen Mesh====&lt;br /&gt;
[[file:TetgenOptions.png|right]]&lt;br /&gt;
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.&lt;br /&gt;
:*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. Use the o2 parameter to generate second order elements.&lt;br /&gt;
:*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.&lt;br /&gt;
:*The Periodic check box should be unchecked for non-periodic textiles.  In this case the the domain faces will not be triangulated prior to calling the Tetgen tetrahedralization.&lt;br /&gt;
:*The Set Resolution check box allows the textile resolution to be changed. This sets the resolution for the surface mesh which is used as input for the Tetgen meshing&lt;br /&gt;
&lt;br /&gt;
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.  &amp;#039;&amp;#039;It is strongly recommended that the textile is saved before using this option.&amp;#039;&amp;#039;  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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Voxel Mesh====&lt;br /&gt;
&lt;br /&gt;
Textiles can be exported in voxel mesh format, either as an ABAQUS file including periodic boundary conditions or at a VTU file containing just the nodes and elements.&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS Voxel File=====&lt;br /&gt;
[[file:AbaqusVoxelDialog.png|300px|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; ABAQUS Voxel File&lt;br /&gt;
*The Abaqus Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Select whether to output yarns, matrix or both&lt;br /&gt;
**Select whether to use octree refinement and/or smoothing on the voxel mesh. The Octree Refinement dialog will be displayed when OK is selected.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
&lt;br /&gt;
=====Octree Refinement=====&lt;br /&gt;
[[file:OctreeRefinementDialog.png|300px|right]]&lt;br /&gt;
*Output Surfaces - generate sets of nodes for surfaces between yarns and matrix &lt;br /&gt;
*Output cohesive elements – define cohesive contact between yarns and matrix &lt;br /&gt;
**Only available if surfaces are output. Nodes on the surfaces between yarns and matrix will be duplicated to &amp;quot;decouple&amp;quot; the yarns and matrix. Cohesive contacts will be created&lt;br /&gt;
*Refinement level - Each level of refinement reduces the size of element by the factor of 2. Only elements on the interface between two materials or close to it will be refined to this level of refinement.&lt;br /&gt;
======Smoothing Options======&lt;br /&gt;
The smoothing algorithm will move the yarn surface nodes according to the [http://www.cs.jhu.edu/~misha/Fall07/Papers/Taubin00.pdf Laplacian smoothing algorithm]&lt;br /&gt;
*Smoothing&lt;br /&gt;
**None - no smoothing applied&lt;br /&gt;
**Laplacian - Apply Laplacian smoothing to nodes belonging to yarn-matrix surfaces. Each node will be moved by C1*sum(x_i) where x_i are coordinates of neighbouring nodes&lt;br /&gt;
**Non-shrinking - Apply two Laplacian smoothings consecutively with coefficients C1 and C1, where C1 &amp;lt; abs(-C2)&lt;br /&gt;
*Iterations - number of smoothing iterations&lt;br /&gt;
*Coefficient 1 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 1] &lt;br /&gt;
*Coefficient 2 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 2]&lt;br /&gt;
&lt;br /&gt;
=====VTU Voxel File=====&lt;br /&gt;
[[file:VoxelVTUDialog.png|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; VTU Voxel File&lt;br /&gt;
*The VTU Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Domain Type&lt;br /&gt;
***Box Domain: Default domain created by weave wizards consisting of 6 orthogonal planes&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ABAQUS Dry Fibre File====&lt;br /&gt;
[[file:DryFibreDialog.png|right]]&lt;br /&gt;
&lt;br /&gt;
This will create a mesh of just the yarns in the same form as shown by the Rendering-&amp;gt;Render Textile Volume option.&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; ABAQUS File -&amp;gt; ABAQUS Dry Fibre File..&lt;br /&gt;
*The Abaqus Options dialog will be displayed&lt;br /&gt;
**X, Y and Z Scale:From the scales entered displacements are calculated and applied to the centre node of each yarn, effectively providing the loading for the Abaqus simulation&lt;br /&gt;
**Checking the Compression Plates box will add a pair of plates at the top and bottom surface of the domain.&lt;br /&gt;
**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.&lt;br /&gt;
**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.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Contact Surfaces: This option allows contact surfaces to be generated for either the whole yarns or for the upper and lower surfaces. For woven textiles select Upper and Lower. For textiles where there is not a clearly defined upper and lower surface, eg knitted fabric, choose Whole Yarn&lt;br /&gt;
&lt;br /&gt;
==Modeller==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Textile===&lt;br /&gt;
To invoke the modeller either:&lt;br /&gt;
# Select Controls -&amp;gt; Textile -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Add Yarns===&lt;br /&gt;
&lt;br /&gt;
To add a single yarn either:&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Create Yarn...&lt;br /&gt;
&lt;br /&gt;
In the Create Yarn dialog:&lt;br /&gt;
* Enter start and end coordinates for the yarn&lt;br /&gt;
* Enter number of nodes&lt;br /&gt;
** The yarn will always initially be created as a straight line with equispaced nodes.&lt;br /&gt;
** Once the yarn has been placed it will be visible on screen in wire frame mode.&lt;br /&gt;
&lt;br /&gt;
====Edit Yarn/Node Position====&lt;br /&gt;
&lt;br /&gt;
Select yarn/node using one of the following methods:&lt;br /&gt;
# Click on the yarn/node with the left mouse button&lt;br /&gt;
# Hold Shift while selecting yarn/node to select multiple yarns&lt;br /&gt;
# Click on the yarn/node in the Outliner tree control&lt;br /&gt;
# Hold Shift or Ctrl while clicking on yarns/nodes in outliner tree to select multiple yarns&lt;br /&gt;
&lt;br /&gt;
Nodes are displayed as spheres on the centreline of the yarns.&lt;br /&gt;
&lt;br /&gt;
When either yarn or nodes have been selected they will turn white.  X, Y and Z axes will be displayed.&lt;br /&gt;
&lt;br /&gt;
To move yarn/node once it has been selected either:&lt;br /&gt;
* Click and drag one of the axes displayed.  The yarn/node will be moved in the corresponding direction.&lt;br /&gt;
** Precise positioning can be achieved by enabling snapping using Controls -&amp;gt; Modeller -&amp;gt; Snapping&lt;br /&gt;
* Edit the coordinates in the Controls -&amp;gt; Modeller -&amp;gt; Position boxes.&lt;br /&gt;
&lt;br /&gt;
====Add Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select node&lt;br /&gt;
# Click Outliner -&amp;gt; Insert Node, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Duplicate Yarns====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Duplicate Yarn, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039; on the keyboard&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Delete Yarns/Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Delete Selected, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Path Interpolation===&lt;br /&gt;
&lt;br /&gt;
This specifies how the yarn path is interpolated between the nodes.&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Interpolation... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Interpolation&lt;br /&gt;
# Select interpolation type from drop-down menu&lt;br /&gt;
# Periodic - check to give continuity across yarn repeats as follows:&lt;br /&gt;
## Linear - continuity of cross-section&lt;br /&gt;
## Bezier - continuity of cross-section and tangent(first order continuity)&lt;br /&gt;
## Natural Cubic - continuity of cross-section and both first and second order continuity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Cross-Sections===&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Section... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Section&lt;br /&gt;
# Select from the drop-down menu how the cross-section will vary along the length of the yarn&lt;br /&gt;
## Constant&lt;br /&gt;
## Interpolate Between Nodes - see below&lt;br /&gt;
## Interpolate Between Sections - see below&lt;br /&gt;
# Select Edit Section to change section shape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Nodes====&lt;br /&gt;
** Highlight node to be edited&lt;br /&gt;
** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Smooth - check this box to give smooth interpolation between section&lt;br /&gt;
** Polar - check this box to give polar rather than linear interpolation between sections, useful if there are large rotations between sections&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Sections====&lt;br /&gt;
** Sections can be specified at specific positions along the length of the yarn&lt;br /&gt;
** To add a section:&lt;br /&gt;
*** Click on Insert Section&lt;br /&gt;
*** Highlight the section which appears in the text box&lt;br /&gt;
*** Select the position along the yarn by using the slider or typing into the text box at the bottom of the dialog&lt;br /&gt;
** To remove a section:&lt;br /&gt;
*** Highlight the section to be removed&lt;br /&gt;
*** Click on Remove Section&lt;br /&gt;
*** Smooth and Polar - check as required, see Interpolate Between Nodes&lt;br /&gt;
*** Highlight node to be edited&lt;br /&gt;
*** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Specify Cross-sections====&lt;br /&gt;
&lt;br /&gt;
After selecting the Edit Section button the Select Cross-section Shape dialog will be displayed.&lt;br /&gt;
&lt;br /&gt;
The shape at the top of the dialog gives a preview of the shape currently specified.&lt;br /&gt;
&lt;br /&gt;
* Select Cross-section from drop-down list and enter parameters as follows:&lt;br /&gt;
** Ellipse - Width and height&lt;br /&gt;
** 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.&lt;br /&gt;
** Power Ellipse - A modified ellipse.  Power = 1 gives an ellipse. Power &amp;lt; 1 gives a rectangle with rounded corners (power = 0 gives a rectangle). Power &amp;gt; 1 gives a shape similar to lenticular with rounded ends.&lt;br /&gt;
** 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 ).&lt;br /&gt;
** Hybrid - This allows a complex section to be created by combining two or more of the above cross-section shapes.&lt;br /&gt;
[[file:HybridSection.png|frame|left]]&lt;br /&gt;
[[file:HybridSectionDialog3.png|right|frame]]&lt;br /&gt;
::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.&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
::The example shows: &lt;br /&gt;
:::Red section   - ellipse, width = 1.0, height = 0.5&lt;br /&gt;
:::Blue section  - lenticular, width = 1.0, height = 0.5, distortion = 0&lt;br /&gt;
:::Green section - ellipse, width = 0.75, height = 0.75&lt;br /&gt;
&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rotate - if this is checked then input an angle by which the shape should be rotated.&lt;br /&gt;
* Scale - if this is checked then input scale factors for the x and y directions.&lt;br /&gt;
&lt;br /&gt;
===Repeats===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Repeats... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Repeats&lt;br /&gt;
# Select yarn or multiple yarns as described in Edit Yarn/Node Position&lt;br /&gt;
# 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties===&lt;br /&gt;
Properties can be set for yarns, either individually or for the whole textile, and matrix.&lt;br /&gt;
&lt;br /&gt;
For all properties both the value and the units can be set in the dialog box.  Units are set by entering a string, eg kg/m^3&lt;br /&gt;
&lt;br /&gt;
[[file:YarnProperties.png|right]]&lt;br /&gt;
To set yarn properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Yarn Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the whole textile:&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Areal Density, or...&lt;br /&gt;
# To set properties for individual yarns select one or more yarns (use Shift+Mouse Click to select multiple yarns) and enter values and units in the Properties dialog:&lt;br /&gt;
[[file:TextilePropetiesDialog.png|right]]&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Young&amp;#039;s Modulus X&lt;br /&gt;
## Young&amp;#039;s Modulus Y&lt;br /&gt;
## Young&amp;#039;s Modulus Z&lt;br /&gt;
## Shear Modulus XY&lt;br /&gt;
## Shear Modulus XZ&lt;br /&gt;
## Shear Modulus YZ&lt;br /&gt;
## Poisson&amp;#039;s Ratio X&lt;br /&gt;
## Poisson&amp;#039;s Ratio Y&lt;br /&gt;
## Poisson&amp;#039;s Ratio Z&lt;br /&gt;
## Alpha X&lt;br /&gt;
## Alpha Y&lt;br /&gt;
## Alpha Z&lt;br /&gt;
[[file:MatrixProperties.png|right]]&lt;br /&gt;
To set the matrix properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Matrix Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Matrix Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the matrix:&lt;br /&gt;
## Matrix Young&amp;#039;s Modulus&lt;br /&gt;
## Matrix Poisson&amp;#039;s Ratio&lt;br /&gt;
## Matrix Alpha&lt;br /&gt;
&lt;br /&gt;
==Domain==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The domain is specified by planes where the space on the negative side of the plane is&lt;br /&gt;
considered to be outside of the domain. Each plane is defined as:&lt;br /&gt;
Ax + By + Cz + D = 0&lt;br /&gt;
&lt;br /&gt;
The vector (A, B, C) represents the unit normal to the plane, and D represents the distance&lt;br /&gt;
from the plane to the origin. In order to specify an axis aligned bounding box&lt;br /&gt;
with minimum of (x1, y1, z1) and maximum of (x2, y2, z2), six planes P need to be defined&lt;br /&gt;
as shown in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! A !! B !! C !! D&lt;br /&gt;
|-&lt;br /&gt;
! P0&lt;br /&gt;
| 1 || 0 || 0 || x1&lt;br /&gt;
|-&lt;br /&gt;
! P1&lt;br /&gt;
| -1 || 0 || 0 || -x2&lt;br /&gt;
|-&lt;br /&gt;
! P2&lt;br /&gt;
| 0 || 1 || 0 || y1&lt;br /&gt;
|-&lt;br /&gt;
! P3&lt;br /&gt;
| 0 || -1 || 0 || -y2&lt;br /&gt;
|-&lt;br /&gt;
! P4&lt;br /&gt;
| 0 || 0 || 1 || z1&lt;br /&gt;
|-&lt;br /&gt;
! P5&lt;br /&gt;
| 0 || 0 || -1 || -z2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The user interface gives two methods of specifying the domain:&lt;br /&gt;
# Specify a bounding box with minimum and maximum x, y and z values&lt;br /&gt;
# Specify the planes as described above&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Bounding Box===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Box... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Box&lt;br /&gt;
# In the Box Domain dialog enter the minimum and maximum x, y and z coordinates&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Planes===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Planes... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Planes&lt;br /&gt;
# Enter planes using the Domain Editor dialog:&lt;br /&gt;
## Enter x, y, z and d values for a plane as specified above&lt;br /&gt;
## Select Add Plane&lt;br /&gt;
## Repeat for each plane required&lt;br /&gt;
# To edit a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Alter the values as required&lt;br /&gt;
## Select Replace Plane&lt;br /&gt;
# To delete a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Select Delete Plane&lt;br /&gt;
&lt;br /&gt;
===Edit Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Edit Domain... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Edit&lt;br /&gt;
# The Domain Editor dialog will be displayed and is used as described in the previous section&lt;br /&gt;
&lt;br /&gt;
===Delete Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Delete or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Delete&lt;br /&gt;
&lt;br /&gt;
Both of these actions will completely delete the domain&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
&lt;br /&gt;
===Render Fibre Orientation===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Refresh View===&lt;br /&gt;
&lt;br /&gt;
Forces the textile to be re-rendered so that any updates (eg made using Python commands) are shown.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Create Pattern Draft===&lt;br /&gt;
&lt;br /&gt;
This function will create a pattern draft for textiles created using the 2D and 3D textile weave types. It is not currently implemented for 3D angle interlock textiles.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Select Pattern Draft&lt;br /&gt;
** A dialog will be displayed showing the pattern draft for the current textile as shown below:&lt;br /&gt;
[[Image:Pattern4x4.png|400px]]    [[Image:2dWeavePatternDraft.png|200px]]&lt;br /&gt;
&lt;br /&gt;
* Select Print to print in the format shown in the dialog&lt;br /&gt;
* Select Save to create a text file with a binary version of the pattern as shown below:&lt;br /&gt;
&lt;br /&gt;
 1000	0001&lt;br /&gt;
 0100	0010&lt;br /&gt;
 0010	0100&lt;br /&gt;
 0001	1000&lt;br /&gt;
 &lt;br /&gt;
 0111	1110&lt;br /&gt;
 1101	1011&lt;br /&gt;
 1011	1101&lt;br /&gt;
 1110	0111&lt;br /&gt;
&lt;br /&gt;
* For 3d textiles the ordering of weft yarn insertion is selected using the dialog below:&lt;br /&gt;
[[Image:WeftOrderingDialog.png]]&lt;br /&gt;
* The pattern draft will then be displayed and may be printed and saved as before.&lt;br /&gt;
[[Image:LayerToLayerTextile.png|400px]]    [[Image:LayerToLayerPattern.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Quick Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Quick Calculate Domain Volume Fraction&lt;br /&gt;
** The volume fraction will be calculated using the volume fraction for the whole yarn. This may introduce inaccuracies if the domain does not correlate to the size of the yarn and the yarn cross-section changes along its length.  The Calculate Domain Volume Fraction gives a more accurate value but is slower.  This option is useful where a quick approximation is acceptable.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:QuickVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Calculate Domain Volume Fraction&lt;br /&gt;
** This calculates the volume fraction for the domain based on the localised volume fractions for each element of a volume mesh.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:DomainVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Yarn Fibre Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Yarn Fibre Volume Fraction&lt;br /&gt;
** Select yarn using the left mouse button. (Shift + left button to select more than one yarn)&lt;br /&gt;
** The volume fraction for each yarn is displayed in a dialog as shown:&lt;br /&gt;
[[File:YarnVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Correct Small Intersections===&lt;br /&gt;
&lt;br /&gt;
*Select Main Menu-&amp;gt;Tools-&amp;gt;Correct Small Intersections&lt;br /&gt;
**Adjusts small interferences in the fibre volume mesh&lt;br /&gt;
**Takes the individual yarn meshes and corrects intersections based on Textile.DetectInterference()&lt;br /&gt;
**Only intended to be used for minor adjustments so will abort if intersections are greater than one volume element in depth&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
&lt;br /&gt;
===Switch Off Messages===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Options -&amp;gt; Output Messages to switch on/off&lt;br /&gt;
** The option will be marked with a tick if messages are switched on&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
===Zoom===&lt;br /&gt;
&lt;br /&gt;
Press and hold right mouse button.  Drag in an upwards direction to zoom in, downwards to zoom out.&lt;br /&gt;
&lt;br /&gt;
===Pan===&lt;br /&gt;
&lt;br /&gt;
Press and hold middle mouse button at point to be moved, then drag to required position.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>File:3DWeaveFromPattern2.png</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2024-06-25T15:10:51Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>File:3DWeaveFromPattern.png</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2024-06-25T15:07:28Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>User Guide</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2024-06-25T13:54:02Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Weave Pattern File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This user guide gives instructions for using TexGen via the graphical user interface (GUI). A practical introduction to using TexGen with worked examples and exercises can be found in the [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6 TexGen chapter] in the book Advanced Weaving Technology, DOI https://doi.org/10.1007/978-3-030-91515-5.&lt;br /&gt;
&lt;br /&gt;
==Layout==&lt;br /&gt;
[[Image:layout.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There are several other windows which can be switched on and off via the drop-down menu at the top in the &amp;quot;Window&amp;quot; section. By default the controls and logs windows will be visible.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The log windows at the bottom contains an interactive &amp;#039;&amp;#039;Python Console&amp;#039;&amp;#039; along with &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; and &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Textiles Menu==&lt;br /&gt;
&lt;br /&gt;
===Create Empty Textile===&lt;br /&gt;
This option creates an empty textile ready to have yarns added using the Modeller options.&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
A Textile Name dialog will then be displayed for entering a name for the textile.  Leave blank for a default name of Textile, Textile-2 etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Weave===&lt;br /&gt;
&lt;br /&gt;
[[Image:WeavewizardShear.png]]&lt;br /&gt;
&lt;br /&gt;
To use the weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Weave...&lt;br /&gt;
&lt;br /&gt;
====Create 2D Weave====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
* Warp Yarns, Weft Yarns - select number of yarns required&lt;br /&gt;
* Yarn Spacing - by default this is the same for both warp and weft yarns&lt;br /&gt;
* Yarn Width - by default this is the same for both warp and weft yarns&lt;br /&gt;
* 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&lt;br /&gt;
* Create 3D Weave - leave unchecked for 2D weave&lt;br /&gt;
* Create Layered Textile - when checked the Number of Weave Layers control is enabled for selection of the number of layers of the 2D textile.&lt;br /&gt;
* Create Default Domain - the default domain is the same as the unit cell, producing a box shaped domain with orthogonal faces.&lt;br /&gt;
* Create Sheared Domain - enabled when the Shear textile option is selected.  Generates a unit cell domain which lines up with the angle of the sheared yarns in the &amp;#039;&amp;#039;x&amp;#039;&amp;#039;-&amp;#039;&amp;#039;y&amp;#039;&amp;#039; plane.&lt;br /&gt;
* 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&lt;br /&gt;
** Gap Size - Specify the gap between yarns when Refine Model is selected&lt;br /&gt;
* Shear textile - if selected this will generate a textile with the weft yarns sheared at the shear angle specified.&lt;br /&gt;
** Shear angle - Specify the shear angle in degrees when Shear Textile is selected&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:2DWeavePatternDialog.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
* Click on yarn cross-over to switch the vertical order of the crossing yarns and thus define the weave pattern.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** 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.&lt;br /&gt;
&lt;br /&gt;
====Create 3D Weave====&lt;br /&gt;
&lt;br /&gt;
* Create 3D Weave - check this box&lt;br /&gt;
* Refine Model/Gap size - these options will now be greyed&lt;br /&gt;
* Fill in the rest of the textile data on the Weave Wizard as described for a 2D weave above &lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:weavepattern.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Add/remove layers&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and Click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu.&lt;br /&gt;
*** Select Add Layers/Remove Layers to add/remove one yarn to each set of yarns chosen&lt;br /&gt;
* Set yarn spacing, width and height as for 2D Weave described above&lt;br /&gt;
&lt;br /&gt;
===Create 3D Weave===&lt;br /&gt;
&lt;br /&gt;
To use the 3D weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; 3D Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create 3D Weave...&lt;br /&gt;
&lt;br /&gt;
First select the weave type to be created and then select Next to continue to the next page.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardPage1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardWeftPage.png]]&lt;br /&gt;
&lt;br /&gt;
* Yarns - select number of yarns required&lt;br /&gt;
* Number of Yarn Layers - select the number of weft yarn layers&lt;br /&gt;
** 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.&lt;br /&gt;
* Yarn Spacing - this is the spacing allowed for the yarn, the yarn being positioned centrally within the space assigned.&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to warp yarn input dialog.  Enter data as for the weft yarns.&lt;br /&gt;
[[Image:3DWizardWarpPage.png]]&lt;br /&gt;
*Total number of yarns in warp direction: This is the total of both straight warp yarns and through thickness binder yarns.&lt;br /&gt;
* Ratio of Binder Yarns to Warp Yarns: Specifies the order of binder/warp yarns.  If the warp ratio is 0 then all yarns in the warp direction are binder yarns.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the binder yarn input dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardBinderPage.png]]&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Yarn Spacing - specify the yarn spacing&lt;br /&gt;
* Gap size - where possible this forces a gap of the given size between yarns&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* Number of Binder Yarn Layers - this is only enabled for layer-to-layer weaves&lt;br /&gt;
* Refine - this option is only available for orthogonal weaves. Check the box to refine the textile.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the Weave Pattern dialog or to the Yarn Properties dialogs if the Refine option is selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:3dWizardWeaveControl.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
Binder yarns are green, warp yarns blue.&lt;br /&gt;
* Orthogonal weave - click on binder yarn crossover point on top view to toggle the binder yarn between top and bottom of the weave.&lt;br /&gt;
* Angle interlock - click on binder yarn crossover point on top view to assign top point of binder yarn pattern.&lt;br /&gt;
* Layer-to-layer&lt;br /&gt;
** 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** Changes will be applied to all selected yarns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardYarnProperties.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Layered===&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Layered, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Layered...&lt;br /&gt;
&lt;br /&gt;
[[Image:SelectLayersDialog.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The Select Textile Layers dialog will be displayed.  On the left hand side this lists all of the textiles currently loaded in the GUI. These can be selected and then the Add Layer button used to add them to the Layers window on the right hand side.  The textiles listed in the Layers window can then be selected and the Remove Layer, Move Layer Up and Move Layer Down buttons used to select the order required.  The layered textile will be created with the textiles in the order shown in the dialog as shown below.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredTextile.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Set Layer Offsets===&lt;br /&gt;
[[Image:Layer Offsets Dialog.png|right]]&lt;br /&gt;
Select Main Menu -&amp;gt; Textiles -&amp;gt; Set Layer Offsets&lt;br /&gt;
&lt;br /&gt;
The Layer Offsets dialog will be displayed.&lt;br /&gt;
* Constant - enter an x and y offset. This offset will be applied from the bottom of the stack to each layer, relative to the one below.&lt;br /&gt;
* Random - random offsets are allocated and are displayed in the table on the dialog.&lt;br /&gt;
* Edit Offsets - the table can be edited and the offsets entered.&lt;br /&gt;
[[Image:4LayeredOffset.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Nest Layers===&lt;br /&gt;
Two nesting options are available, either maintaining the layer offsets already set or moving the layers relative to each other in order to achieve the maximum nesting.&lt;br /&gt;
&lt;br /&gt;
* Maintaining offset&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Keep Offsets&lt;br /&gt;
**The layers will be moved together, in the z direction, as much as possible without causing intersections.  The current x,y offsets between layers is maintained.&lt;br /&gt;
&lt;br /&gt;
* Maximum nesting&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Maximum nesting&lt;br /&gt;
**The layers will be moved together adjusting the x and y offset between the layers in order to achieve the maximum z movement without causing intersections.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredNested.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Edit Textile===&lt;br /&gt;
&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Edit Textile..&lt;br /&gt;
or&lt;br /&gt;
* Select Edit from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Note: If the textile has been edited (eg. nodes have been moved) this will not be reflected in the regenerated textile.&lt;br /&gt;
&lt;br /&gt;
===Rotate Textile===&lt;br /&gt;
[[Image:RotateTextileDialog.png|right]]&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Rotate Textile&lt;br /&gt;
or&lt;br /&gt;
* Select Rotate from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
The Rotate Textile dialog will be displayed&lt;br /&gt;
* Rotation Axis - select the axis of rotation. For in plane rotation select the z-axis&lt;br /&gt;
* Angle - rotation angle in degrees&lt;br /&gt;
* Rotate Domain - Check to rotate the domain with the yarns. This will result in the section of yarns contained in the domain remaining unchanged (left below). If unchecked the domain will be unchanged and just the yarns rotated (right below).&lt;br /&gt;
&lt;br /&gt;
[[Image:RotateTextileAndDomain.png|400px]]           [[Image:RotateTextile.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==File Menu==&lt;br /&gt;
===Import===&lt;br /&gt;
====Weave Pattern File====&lt;br /&gt;
This option generates a TexGen model from a weave pattern file in the format specified below.&lt;br /&gt;
*Select File-&amp;gt;Import-&amp;gt;Weave Pattern File...&lt;br /&gt;
*The Open Weave Pattern File dialog is displayed, from which a file for import may be selected.&lt;br /&gt;
** Weave Pattern File Format&lt;br /&gt;
2D Satin Weave:&lt;br /&gt;
&lt;br /&gt;
 1 1 1 1                         &amp;#039;&amp;#039;First line is layer data, space delimited&amp;#039;&amp;#039;&lt;br /&gt;
 1000                            &amp;#039;&amp;#039;Weave pattern: 1 = warp lifted&amp;#039;&amp;#039;&lt;br /&gt;
 0010                                           &amp;#039;&amp;#039;0 = warp lowered&amp;#039;&amp;#039;&lt;br /&gt;
 0100		          &lt;br /&gt;
 0001                            &amp;#039;&amp;#039;No spacing between entries&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
 WEFT_REPEAT                     &amp;#039;&amp;#039;Use this keyword to generate pattern repeat&amp;#039;&amp;#039;&lt;br /&gt;
 WIDTH	6		mm       &amp;#039;&amp;#039;Yarn data. Row order is unimportant&amp;#039;&amp;#039;&lt;br /&gt;
 TOW_AREA	0.2    mm^2      &amp;#039;&amp;#039;Width, tow area and weft density must all be&amp;#039;&amp;#039;&lt;br /&gt;
 WEFT_DENSITY	8	/cm      &amp;#039;&amp;#039;specified otherwise default values will be used&amp;#039;&amp;#039; &lt;br /&gt;
                          	 &amp;#039;&amp;#039;to generate the TexGen model&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Additional yarn data. This is optional and will be saved in the yarn properties in the TexGen model&lt;br /&gt;
 LINEAR_DENSITY	800	tex&lt;br /&gt;
 FIBRE_DIAMETER	7	um&lt;br /&gt;
 FIBRE_DENSITY	1.8	g/cm^3&lt;br /&gt;
 FIBRE_COUNT	12000&lt;br /&gt;
&lt;br /&gt;
If the tow area is specified with no tow width and height then the TexGen model is generated using the tow area to calculate the width and height of the yarns, assuming a width to height ratio of 6:1 and an elliptical cross-section.  Warp and weft spacings are calculated using the width and weft density information. The data above will generate the model shown below:&lt;br /&gt;
&lt;br /&gt;
[[file:SatinFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
If the tow area and one of tow width or height are specified then the other dimension (height or width) will be calculated using this data (as in the 3D weave model below). If both tow width and height are specified then these are used, irrespective of the tow area specified.&lt;br /&gt;
&lt;br /&gt;
3D Weave:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4   &amp;#039;&amp;#039;Warp layer data, numbered from bottom. Single &amp;#039;1&amp;#039; gives binder yarn&amp;#039;&amp;#039;&lt;br /&gt;
 11001111110000001100&lt;br /&gt;
 00001100111111000000&lt;br /&gt;
 10001100100011001000&lt;br /&gt;
 11001000110010001111&lt;br /&gt;
 11110000100000001000&lt;br /&gt;
 00001000000011110000&lt;br /&gt;
 WIDTH	7.5		mm&lt;br /&gt;
 TOW_AREA  0.2 mm^2&lt;br /&gt;
 TOW_HEIGHT 	0.4 mm&lt;br /&gt;
 WEFT_DENSITY	8	/cm&lt;br /&gt;
 FIBRE_COUNT	6000&lt;br /&gt;
 LINEAR_DENSITY	800	tex&lt;br /&gt;
 FIBRE_DIAMETER	6	um&lt;br /&gt;
 FIBRE_DENSITY	1.8	g/cm^3&lt;br /&gt;
 WEFT_REPEAT&lt;br /&gt;
&lt;br /&gt;
3D Orthogonal Weave:&lt;br /&gt;
 1 1 2 3 4 1 1 2 3 4            &amp;#039;&amp;#039;Warp layer data, numbered from bottom. Single &amp;#039;1&amp;#039; gives binder yarn&amp;#039;&amp;#039;&lt;br /&gt;
 1000000000&lt;br /&gt;
 1100001000&lt;br /&gt;
 1110001100&lt;br /&gt;
 1111001110&lt;br /&gt;
 1111101111&lt;br /&gt;
 0000010000&lt;br /&gt;
 0100011000&lt;br /&gt;
 0110011100&lt;br /&gt;
 0111011110&lt;br /&gt;
 0111111111&lt;br /&gt;
 &lt;br /&gt;
 ORTHOGONAL                     &amp;#039;&amp;#039;Use orthogonal keyword to automatically stack weft insertions&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[file:OrthogonalFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Export===&lt;br /&gt;
====Surface Mesh====&lt;br /&gt;
This option creates a surface mesh corresponding to the mesh shown when using the Rendering -&amp;gt; X-Ray option.&lt;br /&gt;
&lt;br /&gt;
=====VTU and STL File=====&lt;br /&gt;
[[file:SurfaceVTUDialog.png|right]]&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;STL, VTU File...&lt;br /&gt;
*The Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Export Yarns: Select to create a mesh of the yarn surfaces&lt;br /&gt;
**Trim Surface to Domain: Select to create yarn meshes conforming to domain bounds&lt;br /&gt;
**Export Domain: Select to create a triangulated mesh of the domain surfaces&lt;br /&gt;
***Mesh Yarn Ends: Select to create a triangulated mesh across the yarn ends&lt;br /&gt;
***Seed size: Used to adjust size of triangulation&lt;br /&gt;
*The Save Mesh file menu will be displayed&lt;br /&gt;
**Save as type: Use the drop-down menu to select the file type - VTU, STL (ASCII or binary, or SciRun format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS File=====&lt;br /&gt;
[[file:SurfaceAbaqusDialog.png|right]]&lt;br /&gt;
This option will export the surface mesh of the yarns only&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;ABAQUS File...&lt;br /&gt;
*The ABAQUS Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Trim Surface to Domain: Select to output mesh of the yarns bounded by the domain, otherwise the yarns will be output as specified, without repeats&lt;br /&gt;
**Contact Surfaces: Outputs element sets for the contact surfaces, either for the upper and lower surfaces separately, or for the whole yarn. Choose Whole Yarn where surfaces are not clearly defined, for example in knitted textiles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Volume Mesh====&lt;br /&gt;
[[file:VolumeMeshDialog.png|right]]&lt;br /&gt;
This option creates a tetrahedral mesh of both the yarns and matrix (ie of the whole domain).  Please note that this algorithm does not work well with textiles with vertical or near-vertical yarns.&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Volume Mesh&lt;br /&gt;
*The Volume Mesh Options dialog will be displayed&lt;br /&gt;
**Element Order: Linear creates 4 noded tetrahedra, Quadratic creates 10 noded tetrahedra&lt;br /&gt;
**Periodic Meshing: Select to create matching elements on opposite boundaries&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates tetrahedra which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
**Seed size: Controls the mesh density and corresponds to the approximates edge length of the elements.  The default value is 1/20th of the domain diagonal length.&lt;br /&gt;
**Merge Tolerance:Any gaps between yarns that are smaller than this tolerance will be merged together.  This can help to reduce the number of bad quality elements.&lt;br /&gt;
&lt;br /&gt;
After the Volume Mesh Options dialog is accepted the Save Mesh File dialog will be dispayed.  The default type for output is an ABAQUS .inp file.  This will create the requested boundary conditions and also associated .ele and .ori files containing yarn orientation and volume fraction information.&lt;br /&gt;
Alternatively a VTK unstructured grid file (.vtu) can be selected which will just output the mesh.&lt;br /&gt;
&lt;br /&gt;
====Tetgen Mesh====&lt;br /&gt;
[[file:TetgenOptions.png|right]]&lt;br /&gt;
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.&lt;br /&gt;
:*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. Use the o2 parameter to generate second order elements.&lt;br /&gt;
:*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.&lt;br /&gt;
:*The Periodic check box should be unchecked for non-periodic textiles.  In this case the the domain faces will not be triangulated prior to calling the Tetgen tetrahedralization.&lt;br /&gt;
:*The Set Resolution check box allows the textile resolution to be changed. This sets the resolution for the surface mesh which is used as input for the Tetgen meshing&lt;br /&gt;
&lt;br /&gt;
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.  &amp;#039;&amp;#039;It is strongly recommended that the textile is saved before using this option.&amp;#039;&amp;#039;  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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Voxel Mesh====&lt;br /&gt;
&lt;br /&gt;
Textiles can be exported in voxel mesh format, either as an ABAQUS file including periodic boundary conditions or at a VTU file containing just the nodes and elements.&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS Voxel File=====&lt;br /&gt;
[[file:AbaqusVoxelDialog.png|300px|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; ABAQUS Voxel File&lt;br /&gt;
*The Abaqus Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Select whether to output yarns, matrix or both&lt;br /&gt;
**Select whether to use octree refinement and/or smoothing on the voxel mesh. The Octree Refinement dialog will be displayed when OK is selected.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
&lt;br /&gt;
=====Octree Refinement=====&lt;br /&gt;
[[file:OctreeRefinementDialog.png|300px|right]]&lt;br /&gt;
*Output Surfaces - generate sets of nodes for surfaces between yarns and matrix &lt;br /&gt;
*Output cohesive elements – define cohesive contact between yarns and matrix &lt;br /&gt;
**Only available if surfaces are output. Nodes on the surfaces between yarns and matrix will be duplicated to &amp;quot;decouple&amp;quot; the yarns and matrix. Cohesive contacts will be created&lt;br /&gt;
*Refinement level - Each level of refinement reduces the size of element by the factor of 2. Only elements on the interface between two materials or close to it will be refined to this level of refinement.&lt;br /&gt;
======Smoothing Options======&lt;br /&gt;
The smoothing algorithm will move the yarn surface nodes according to the [http://www.cs.jhu.edu/~misha/Fall07/Papers/Taubin00.pdf Laplacian smoothing algorithm]&lt;br /&gt;
*Smoothing&lt;br /&gt;
**None - no smoothing applied&lt;br /&gt;
**Laplacian - Apply Laplacian smoothing to nodes belonging to yarn-matrix surfaces. Each node will be moved by C1*sum(x_i) where x_i are coordinates of neighbouring nodes&lt;br /&gt;
**Non-shrinking - Apply two Laplacian smoothings consecutively with coefficients C1 and C1, where C1 &amp;lt; abs(-C2)&lt;br /&gt;
*Iterations - number of smoothing iterations&lt;br /&gt;
*Coefficient 1 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 1] &lt;br /&gt;
*Coefficient 2 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 2]&lt;br /&gt;
&lt;br /&gt;
=====VTU Voxel File=====&lt;br /&gt;
[[file:VoxelVTUDialog.png|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; VTU Voxel File&lt;br /&gt;
*The VTU Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Domain Type&lt;br /&gt;
***Box Domain: Default domain created by weave wizards consisting of 6 orthogonal planes&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ABAQUS Dry Fibre File====&lt;br /&gt;
[[file:DryFibreDialog.png|right]]&lt;br /&gt;
&lt;br /&gt;
This will create a mesh of just the yarns in the same form as shown by the Rendering-&amp;gt;Render Textile Volume option.&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; ABAQUS File -&amp;gt; ABAQUS Dry Fibre File..&lt;br /&gt;
*The Abaqus Options dialog will be displayed&lt;br /&gt;
**X, Y and Z Scale:From the scales entered displacements are calculated and applied to the centre node of each yarn, effectively providing the loading for the Abaqus simulation&lt;br /&gt;
**Checking the Compression Plates box will add a pair of plates at the top and bottom surface of the domain.&lt;br /&gt;
**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.&lt;br /&gt;
**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.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Contact Surfaces: This option allows contact surfaces to be generated for either the whole yarns or for the upper and lower surfaces. For woven textiles select Upper and Lower. For textiles where there is not a clearly defined upper and lower surface, eg knitted fabric, choose Whole Yarn&lt;br /&gt;
&lt;br /&gt;
==Modeller==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Textile===&lt;br /&gt;
To invoke the modeller either:&lt;br /&gt;
# Select Controls -&amp;gt; Textile -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Add Yarns===&lt;br /&gt;
&lt;br /&gt;
To add a single yarn either:&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Create Yarn...&lt;br /&gt;
&lt;br /&gt;
In the Create Yarn dialog:&lt;br /&gt;
* Enter start and end coordinates for the yarn&lt;br /&gt;
* Enter number of nodes&lt;br /&gt;
** The yarn will always initially be created as a straight line with equispaced nodes.&lt;br /&gt;
** Once the yarn has been placed it will be visible on screen in wire frame mode.&lt;br /&gt;
&lt;br /&gt;
====Edit Yarn/Node Position====&lt;br /&gt;
&lt;br /&gt;
Select yarn/node using one of the following methods:&lt;br /&gt;
# Click on the yarn/node with the left mouse button&lt;br /&gt;
# Hold Shift while selecting yarn/node to select multiple yarns&lt;br /&gt;
# Click on the yarn/node in the Outliner tree control&lt;br /&gt;
# Hold Shift or Ctrl while clicking on yarns/nodes in outliner tree to select multiple yarns&lt;br /&gt;
&lt;br /&gt;
Nodes are displayed as spheres on the centreline of the yarns.&lt;br /&gt;
&lt;br /&gt;
When either yarn or nodes have been selected they will turn white.  X, Y and Z axes will be displayed.&lt;br /&gt;
&lt;br /&gt;
To move yarn/node once it has been selected either:&lt;br /&gt;
* Click and drag one of the axes displayed.  The yarn/node will be moved in the corresponding direction.&lt;br /&gt;
** Precise positioning can be achieved by enabling snapping using Controls -&amp;gt; Modeller -&amp;gt; Snapping&lt;br /&gt;
* Edit the coordinates in the Controls -&amp;gt; Modeller -&amp;gt; Position boxes.&lt;br /&gt;
&lt;br /&gt;
====Add Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select node&lt;br /&gt;
# Click Outliner -&amp;gt; Insert Node, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Duplicate Yarns====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Duplicate Yarn, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039; on the keyboard&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Delete Yarns/Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Delete Selected, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Path Interpolation===&lt;br /&gt;
&lt;br /&gt;
This specifies how the yarn path is interpolated between the nodes.&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Interpolation... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Interpolation&lt;br /&gt;
# Select interpolation type from drop-down menu&lt;br /&gt;
# Periodic - check to give continuity across yarn repeats as follows:&lt;br /&gt;
## Linear - continuity of cross-section&lt;br /&gt;
## Bezier - continuity of cross-section and tangent(first order continuity)&lt;br /&gt;
## Natural Cubic - continuity of cross-section and both first and second order continuity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Cross-Sections===&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Section... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Section&lt;br /&gt;
# Select from the drop-down menu how the cross-section will vary along the length of the yarn&lt;br /&gt;
## Constant&lt;br /&gt;
## Interpolate Between Nodes - see below&lt;br /&gt;
## Interpolate Between Sections - see below&lt;br /&gt;
# Select Edit Section to change section shape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Nodes====&lt;br /&gt;
** Highlight node to be edited&lt;br /&gt;
** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Smooth - check this box to give smooth interpolation between section&lt;br /&gt;
** Polar - check this box to give polar rather than linear interpolation between sections, useful if there are large rotations between sections&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Sections====&lt;br /&gt;
** Sections can be specified at specific positions along the length of the yarn&lt;br /&gt;
** To add a section:&lt;br /&gt;
*** Click on Insert Section&lt;br /&gt;
*** Highlight the section which appears in the text box&lt;br /&gt;
*** Select the position along the yarn by using the slider or typing into the text box at the bottom of the dialog&lt;br /&gt;
** To remove a section:&lt;br /&gt;
*** Highlight the section to be removed&lt;br /&gt;
*** Click on Remove Section&lt;br /&gt;
*** Smooth and Polar - check as required, see Interpolate Between Nodes&lt;br /&gt;
*** Highlight node to be edited&lt;br /&gt;
*** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Specify Cross-sections====&lt;br /&gt;
&lt;br /&gt;
After selecting the Edit Section button the Select Cross-section Shape dialog will be displayed.&lt;br /&gt;
&lt;br /&gt;
The shape at the top of the dialog gives a preview of the shape currently specified.&lt;br /&gt;
&lt;br /&gt;
* Select Cross-section from drop-down list and enter parameters as follows:&lt;br /&gt;
** Ellipse - Width and height&lt;br /&gt;
** 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.&lt;br /&gt;
** Power Ellipse - A modified ellipse.  Power = 1 gives an ellipse. Power &amp;lt; 1 gives a rectangle with rounded corners (power = 0 gives a rectangle). Power &amp;gt; 1 gives a shape similar to lenticular with rounded ends.&lt;br /&gt;
** 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 ).&lt;br /&gt;
** Hybrid - This allows a complex section to be created by combining two or more of the above cross-section shapes.&lt;br /&gt;
[[file:HybridSection.png|frame|left]]&lt;br /&gt;
[[file:HybridSectionDialog3.png|right|frame]]&lt;br /&gt;
::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.&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
::The example shows: &lt;br /&gt;
:::Red section   - ellipse, width = 1.0, height = 0.5&lt;br /&gt;
:::Blue section  - lenticular, width = 1.0, height = 0.5, distortion = 0&lt;br /&gt;
:::Green section - ellipse, width = 0.75, height = 0.75&lt;br /&gt;
&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rotate - if this is checked then input an angle by which the shape should be rotated.&lt;br /&gt;
* Scale - if this is checked then input scale factors for the x and y directions.&lt;br /&gt;
&lt;br /&gt;
===Repeats===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Repeats... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Repeats&lt;br /&gt;
# Select yarn or multiple yarns as described in Edit Yarn/Node Position&lt;br /&gt;
# 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties===&lt;br /&gt;
Properties can be set for yarns, either individually or for the whole textile, and matrix.&lt;br /&gt;
&lt;br /&gt;
For all properties both the value and the units can be set in the dialog box.  Units are set by entering a string, eg kg/m^3&lt;br /&gt;
&lt;br /&gt;
[[file:YarnProperties.png|right]]&lt;br /&gt;
To set yarn properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Yarn Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the whole textile:&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Areal Density, or...&lt;br /&gt;
# To set properties for individual yarns select one or more yarns (use Shift+Mouse Click to select multiple yarns) and enter values and units in the Properties dialog:&lt;br /&gt;
[[file:TextilePropetiesDialog.png|right]]&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Young&amp;#039;s Modulus X&lt;br /&gt;
## Young&amp;#039;s Modulus Y&lt;br /&gt;
## Young&amp;#039;s Modulus Z&lt;br /&gt;
## Shear Modulus XY&lt;br /&gt;
## Shear Modulus XZ&lt;br /&gt;
## Shear Modulus YZ&lt;br /&gt;
## Poisson&amp;#039;s Ratio X&lt;br /&gt;
## Poisson&amp;#039;s Ratio Y&lt;br /&gt;
## Poisson&amp;#039;s Ratio Z&lt;br /&gt;
## Alpha X&lt;br /&gt;
## Alpha Y&lt;br /&gt;
## Alpha Z&lt;br /&gt;
[[file:MatrixProperties.png|right]]&lt;br /&gt;
To set the matrix properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Matrix Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Matrix Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the matrix:&lt;br /&gt;
## Matrix Young&amp;#039;s Modulus&lt;br /&gt;
## Matrix Poisson&amp;#039;s Ratio&lt;br /&gt;
## Matrix Alpha&lt;br /&gt;
&lt;br /&gt;
==Domain==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The domain is specified by planes where the space on the negative side of the plane is&lt;br /&gt;
considered to be outside of the domain. Each plane is defined as:&lt;br /&gt;
Ax + By + Cz + D = 0&lt;br /&gt;
&lt;br /&gt;
The vector (A, B, C) represents the unit normal to the plane, and D represents the distance&lt;br /&gt;
from the plane to the origin. In order to specify an axis aligned bounding box&lt;br /&gt;
with minimum of (x1, y1, z1) and maximum of (x2, y2, z2), six planes P need to be defined&lt;br /&gt;
as shown in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! A !! B !! C !! D&lt;br /&gt;
|-&lt;br /&gt;
! P0&lt;br /&gt;
| 1 || 0 || 0 || x1&lt;br /&gt;
|-&lt;br /&gt;
! P1&lt;br /&gt;
| -1 || 0 || 0 || -x2&lt;br /&gt;
|-&lt;br /&gt;
! P2&lt;br /&gt;
| 0 || 1 || 0 || y1&lt;br /&gt;
|-&lt;br /&gt;
! P3&lt;br /&gt;
| 0 || -1 || 0 || -y2&lt;br /&gt;
|-&lt;br /&gt;
! P4&lt;br /&gt;
| 0 || 0 || 1 || z1&lt;br /&gt;
|-&lt;br /&gt;
! P5&lt;br /&gt;
| 0 || 0 || -1 || -z2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The user interface gives two methods of specifying the domain:&lt;br /&gt;
# Specify a bounding box with minimum and maximum x, y and z values&lt;br /&gt;
# Specify the planes as described above&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Bounding Box===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Box... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Box&lt;br /&gt;
# In the Box Domain dialog enter the minimum and maximum x, y and z coordinates&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Planes===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Planes... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Planes&lt;br /&gt;
# Enter planes using the Domain Editor dialog:&lt;br /&gt;
## Enter x, y, z and d values for a plane as specified above&lt;br /&gt;
## Select Add Plane&lt;br /&gt;
## Repeat for each plane required&lt;br /&gt;
# To edit a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Alter the values as required&lt;br /&gt;
## Select Replace Plane&lt;br /&gt;
# To delete a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Select Delete Plane&lt;br /&gt;
&lt;br /&gt;
===Edit Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Edit Domain... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Edit&lt;br /&gt;
# The Domain Editor dialog will be displayed and is used as described in the previous section&lt;br /&gt;
&lt;br /&gt;
===Delete Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Delete or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Delete&lt;br /&gt;
&lt;br /&gt;
Both of these actions will completely delete the domain&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
&lt;br /&gt;
===Render Fibre Orientation===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Refresh View===&lt;br /&gt;
&lt;br /&gt;
Forces the textile to be re-rendered so that any updates (eg made using Python commands) are shown.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Create Pattern Draft===&lt;br /&gt;
&lt;br /&gt;
This function will create a pattern draft for textiles created using the 2D and 3D textile weave types. It is not currently implemented for 3D angle interlock textiles.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Select Pattern Draft&lt;br /&gt;
** A dialog will be displayed showing the pattern draft for the current textile as shown below:&lt;br /&gt;
[[Image:Pattern4x4.png|400px]]    [[Image:2dWeavePatternDraft.png|200px]]&lt;br /&gt;
&lt;br /&gt;
* Select Print to print in the format shown in the dialog&lt;br /&gt;
* Select Save to create a text file with a binary version of the pattern as shown below:&lt;br /&gt;
&lt;br /&gt;
 1000	0001&lt;br /&gt;
 0100	0010&lt;br /&gt;
 0010	0100&lt;br /&gt;
 0001	1000&lt;br /&gt;
 &lt;br /&gt;
 0111	1110&lt;br /&gt;
 1101	1011&lt;br /&gt;
 1011	1101&lt;br /&gt;
 1110	0111&lt;br /&gt;
&lt;br /&gt;
* For 3d textiles the ordering of weft yarn insertion is selected using the dialog below:&lt;br /&gt;
[[Image:WeftOrderingDialog.png]]&lt;br /&gt;
* The pattern draft will then be displayed and may be printed and saved as before.&lt;br /&gt;
[[Image:LayerToLayerTextile.png|400px]]    [[Image:LayerToLayerPattern.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Quick Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Quick Calculate Domain Volume Fraction&lt;br /&gt;
** The volume fraction will be calculated using the volume fraction for the whole yarn. This may introduce inaccuracies if the domain does not correlate to the size of the yarn and the yarn cross-section changes along its length.  The Calculate Domain Volume Fraction gives a more accurate value but is slower.  This option is useful where a quick approximation is acceptable.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:QuickVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Calculate Domain Volume Fraction&lt;br /&gt;
** This calculates the volume fraction for the domain based on the localised volume fractions for each element of a volume mesh.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:DomainVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Yarn Fibre Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Yarn Fibre Volume Fraction&lt;br /&gt;
** Select yarn using the left mouse button. (Shift + left button to select more than one yarn)&lt;br /&gt;
** The volume fraction for each yarn is displayed in a dialog as shown:&lt;br /&gt;
[[File:YarnVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Correct Small Intersections===&lt;br /&gt;
&lt;br /&gt;
*Select Main Menu-&amp;gt;Tools-&amp;gt;Correct Small Intersections&lt;br /&gt;
**Adjusts small interferences in the fibre volume mesh&lt;br /&gt;
**Takes the individual yarn meshes and corrects intersections based on Textile.DetectInterference()&lt;br /&gt;
**Only intended to be used for minor adjustments so will abort if intersections are greater than one volume element in depth&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
&lt;br /&gt;
===Switch Off Messages===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Options -&amp;gt; Output Messages to switch on/off&lt;br /&gt;
** The option will be marked with a tick if messages are switched on&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
===Zoom===&lt;br /&gt;
&lt;br /&gt;
Press and hold right mouse button.  Drag in an upwards direction to zoom in, downwards to zoom out.&lt;br /&gt;
&lt;br /&gt;
===Pan===&lt;br /&gt;
&lt;br /&gt;
Press and hold middle mouse button at point to be moved, then drag to required position.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>User Guide</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2024-06-25T13:53:07Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Weave Pattern File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This user guide gives instructions for using TexGen via the graphical user interface (GUI). A practical introduction to using TexGen with worked examples and exercises can be found in the [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6 TexGen chapter] in the book Advanced Weaving Technology, DOI https://doi.org/10.1007/978-3-030-91515-5.&lt;br /&gt;
&lt;br /&gt;
==Layout==&lt;br /&gt;
[[Image:layout.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There are several other windows which can be switched on and off via the drop-down menu at the top in the &amp;quot;Window&amp;quot; section. By default the controls and logs windows will be visible.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The log windows at the bottom contains an interactive &amp;#039;&amp;#039;Python Console&amp;#039;&amp;#039; along with &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; and &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Textiles Menu==&lt;br /&gt;
&lt;br /&gt;
===Create Empty Textile===&lt;br /&gt;
This option creates an empty textile ready to have yarns added using the Modeller options.&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
A Textile Name dialog will then be displayed for entering a name for the textile.  Leave blank for a default name of Textile, Textile-2 etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Weave===&lt;br /&gt;
&lt;br /&gt;
[[Image:WeavewizardShear.png]]&lt;br /&gt;
&lt;br /&gt;
To use the weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Weave...&lt;br /&gt;
&lt;br /&gt;
====Create 2D Weave====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
* Warp Yarns, Weft Yarns - select number of yarns required&lt;br /&gt;
* Yarn Spacing - by default this is the same for both warp and weft yarns&lt;br /&gt;
* Yarn Width - by default this is the same for both warp and weft yarns&lt;br /&gt;
* 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&lt;br /&gt;
* Create 3D Weave - leave unchecked for 2D weave&lt;br /&gt;
* Create Layered Textile - when checked the Number of Weave Layers control is enabled for selection of the number of layers of the 2D textile.&lt;br /&gt;
* Create Default Domain - the default domain is the same as the unit cell, producing a box shaped domain with orthogonal faces.&lt;br /&gt;
* Create Sheared Domain - enabled when the Shear textile option is selected.  Generates a unit cell domain which lines up with the angle of the sheared yarns in the &amp;#039;&amp;#039;x&amp;#039;&amp;#039;-&amp;#039;&amp;#039;y&amp;#039;&amp;#039; plane.&lt;br /&gt;
* 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&lt;br /&gt;
** Gap Size - Specify the gap between yarns when Refine Model is selected&lt;br /&gt;
* Shear textile - if selected this will generate a textile with the weft yarns sheared at the shear angle specified.&lt;br /&gt;
** Shear angle - Specify the shear angle in degrees when Shear Textile is selected&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:2DWeavePatternDialog.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
* Click on yarn cross-over to switch the vertical order of the crossing yarns and thus define the weave pattern.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** 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.&lt;br /&gt;
&lt;br /&gt;
====Create 3D Weave====&lt;br /&gt;
&lt;br /&gt;
* Create 3D Weave - check this box&lt;br /&gt;
* Refine Model/Gap size - these options will now be greyed&lt;br /&gt;
* Fill in the rest of the textile data on the Weave Wizard as described for a 2D weave above &lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:weavepattern.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Add/remove layers&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and Click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu.&lt;br /&gt;
*** Select Add Layers/Remove Layers to add/remove one yarn to each set of yarns chosen&lt;br /&gt;
* Set yarn spacing, width and height as for 2D Weave described above&lt;br /&gt;
&lt;br /&gt;
===Create 3D Weave===&lt;br /&gt;
&lt;br /&gt;
To use the 3D weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; 3D Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create 3D Weave...&lt;br /&gt;
&lt;br /&gt;
First select the weave type to be created and then select Next to continue to the next page.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardPage1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardWeftPage.png]]&lt;br /&gt;
&lt;br /&gt;
* Yarns - select number of yarns required&lt;br /&gt;
* Number of Yarn Layers - select the number of weft yarn layers&lt;br /&gt;
** 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.&lt;br /&gt;
* Yarn Spacing - this is the spacing allowed for the yarn, the yarn being positioned centrally within the space assigned.&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to warp yarn input dialog.  Enter data as for the weft yarns.&lt;br /&gt;
[[Image:3DWizardWarpPage.png]]&lt;br /&gt;
*Total number of yarns in warp direction: This is the total of both straight warp yarns and through thickness binder yarns.&lt;br /&gt;
* Ratio of Binder Yarns to Warp Yarns: Specifies the order of binder/warp yarns.  If the warp ratio is 0 then all yarns in the warp direction are binder yarns.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the binder yarn input dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardBinderPage.png]]&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Yarn Spacing - specify the yarn spacing&lt;br /&gt;
* Gap size - where possible this forces a gap of the given size between yarns&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* Number of Binder Yarn Layers - this is only enabled for layer-to-layer weaves&lt;br /&gt;
* Refine - this option is only available for orthogonal weaves. Check the box to refine the textile.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the Weave Pattern dialog or to the Yarn Properties dialogs if the Refine option is selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:3dWizardWeaveControl.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
Binder yarns are green, warp yarns blue.&lt;br /&gt;
* Orthogonal weave - click on binder yarn crossover point on top view to toggle the binder yarn between top and bottom of the weave.&lt;br /&gt;
* Angle interlock - click on binder yarn crossover point on top view to assign top point of binder yarn pattern.&lt;br /&gt;
* Layer-to-layer&lt;br /&gt;
** 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** Changes will be applied to all selected yarns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardYarnProperties.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Layered===&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Layered, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Layered...&lt;br /&gt;
&lt;br /&gt;
[[Image:SelectLayersDialog.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The Select Textile Layers dialog will be displayed.  On the left hand side this lists all of the textiles currently loaded in the GUI. These can be selected and then the Add Layer button used to add them to the Layers window on the right hand side.  The textiles listed in the Layers window can then be selected and the Remove Layer, Move Layer Up and Move Layer Down buttons used to select the order required.  The layered textile will be created with the textiles in the order shown in the dialog as shown below.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredTextile.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Set Layer Offsets===&lt;br /&gt;
[[Image:Layer Offsets Dialog.png|right]]&lt;br /&gt;
Select Main Menu -&amp;gt; Textiles -&amp;gt; Set Layer Offsets&lt;br /&gt;
&lt;br /&gt;
The Layer Offsets dialog will be displayed.&lt;br /&gt;
* Constant - enter an x and y offset. This offset will be applied from the bottom of the stack to each layer, relative to the one below.&lt;br /&gt;
* Random - random offsets are allocated and are displayed in the table on the dialog.&lt;br /&gt;
* Edit Offsets - the table can be edited and the offsets entered.&lt;br /&gt;
[[Image:4LayeredOffset.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Nest Layers===&lt;br /&gt;
Two nesting options are available, either maintaining the layer offsets already set or moving the layers relative to each other in order to achieve the maximum nesting.&lt;br /&gt;
&lt;br /&gt;
* Maintaining offset&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Keep Offsets&lt;br /&gt;
**The layers will be moved together, in the z direction, as much as possible without causing intersections.  The current x,y offsets between layers is maintained.&lt;br /&gt;
&lt;br /&gt;
* Maximum nesting&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Maximum nesting&lt;br /&gt;
**The layers will be moved together adjusting the x and y offset between the layers in order to achieve the maximum z movement without causing intersections.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredNested.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Edit Textile===&lt;br /&gt;
&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Edit Textile..&lt;br /&gt;
or&lt;br /&gt;
* Select Edit from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Note: If the textile has been edited (eg. nodes have been moved) this will not be reflected in the regenerated textile.&lt;br /&gt;
&lt;br /&gt;
===Rotate Textile===&lt;br /&gt;
[[Image:RotateTextileDialog.png|right]]&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Rotate Textile&lt;br /&gt;
or&lt;br /&gt;
* Select Rotate from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
The Rotate Textile dialog will be displayed&lt;br /&gt;
* Rotation Axis - select the axis of rotation. For in plane rotation select the z-axis&lt;br /&gt;
* Angle - rotation angle in degrees&lt;br /&gt;
* Rotate Domain - Check to rotate the domain with the yarns. This will result in the section of yarns contained in the domain remaining unchanged (left below). If unchecked the domain will be unchanged and just the yarns rotated (right below).&lt;br /&gt;
&lt;br /&gt;
[[Image:RotateTextileAndDomain.png|400px]]           [[Image:RotateTextile.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==File Menu==&lt;br /&gt;
===Import===&lt;br /&gt;
====Weave Pattern File====&lt;br /&gt;
This option generates a TexGen model from a weave pattern file in the format specified below.&lt;br /&gt;
*Select File-&amp;gt;Import-&amp;gt;Weave Pattern File...&lt;br /&gt;
*The Open Weave Pattern File dialog is displayed, from which a file for import may be selected.&lt;br /&gt;
** Weave Pattern File Format&lt;br /&gt;
2D Satin Weave:&lt;br /&gt;
&lt;br /&gt;
 1 1 1 1                         &amp;#039;&amp;#039;First line is layer data, space delimited&amp;#039;&amp;#039;&lt;br /&gt;
 1000                            &amp;#039;&amp;#039;Weave pattern: 1 = warp lifted&amp;#039;&amp;#039;&lt;br /&gt;
 0010                                           &amp;#039;&amp;#039;0 = warp lowered&amp;#039;&amp;#039;&lt;br /&gt;
 0100		          &lt;br /&gt;
 0001                            &amp;#039;&amp;#039;No spacing between entries&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
 WEFT_REPEAT                     &amp;#039;&amp;#039;Use this keyword to generate pattern repeat&amp;#039;&amp;#039;&lt;br /&gt;
 WIDTH	6		mm       &amp;#039;&amp;#039;Yarn data. Row order is unimportant&amp;#039;&amp;#039;&lt;br /&gt;
 TOW_AREA	0.2    mm^2      &amp;#039;&amp;#039;Width, tow area and weft density must all be&amp;#039;&amp;#039;&lt;br /&gt;
 WEFT_DENSITY	8	/cm      &amp;#039;&amp;#039;specified otherwise default values will be used&amp;#039;&amp;#039; &lt;br /&gt;
                          	 &amp;#039;&amp;#039;to generate the TexGen model&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Additional yarn data. This is optional and will be saved in the yarn properties in the TexGen model&lt;br /&gt;
 LINEAR_DENSITY	800	tex&lt;br /&gt;
 FIBRE_DIAMETER	7	um&lt;br /&gt;
 FIBRE_DENSITY	1.8	g/cm^3&lt;br /&gt;
 FIBRE_COUNT	12000&lt;br /&gt;
&lt;br /&gt;
If the tow area is specified with no tow width and height then the TexGen model is generated using the tow area to calculate the width and height of the yarns, assuming a width to height ratio of 6:1 and an elliptical cross-section.  Warp and weft spacings are calculated using the width and weft density information. The data above will generate the model shown below:&lt;br /&gt;
&lt;br /&gt;
[[file:SatinFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
If the tow area and one of tow width or height are specified then the other dimension (height or width) will be calculated using this data (as in the 3D weave model below). If both tow width and height are specified then these are used, irrespective of the tow area specified.&lt;br /&gt;
&lt;br /&gt;
3D Weave:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4   &amp;#039;&amp;#039;Warp layer data, numbered from bottom. Single &amp;#039;1&amp;#039; gives binder yarn&amp;#039;&amp;#039;&lt;br /&gt;
 11001111110000001100&lt;br /&gt;
 00001100111111000000&lt;br /&gt;
 10001100100011001000&lt;br /&gt;
 11001000110010001111&lt;br /&gt;
 11110000100000001000&lt;br /&gt;
 00001000000011110000&lt;br /&gt;
&lt;br /&gt;
 WIDTH	7.5		mm&lt;br /&gt;
 TOW_AREA  0.2 mm^2&lt;br /&gt;
 TOW_HEIGHT 	0.4 mm&lt;br /&gt;
 WEFT_DENSITY	8	/cm&lt;br /&gt;
 FIBRE_COUNT	6000&lt;br /&gt;
 LINEAR_DENSITY	800	tex&lt;br /&gt;
 FIBRE_DIAMETER	6	um&lt;br /&gt;
 FIBRE_DENSITY	1.8	g/cm^3&lt;br /&gt;
 WEFT_REPEAT&lt;br /&gt;
&lt;br /&gt;
3D Orthogonal Weave:&lt;br /&gt;
 1 1 2 3 4 1 1 2 3 4            &amp;#039;&amp;#039;Warp layer data, numbered from bottom. Single &amp;#039;1&amp;#039; gives binder yarn&amp;#039;&amp;#039;&lt;br /&gt;
 1000000000&lt;br /&gt;
 1100001000&lt;br /&gt;
 1110001100&lt;br /&gt;
 1111001110&lt;br /&gt;
 1111101111&lt;br /&gt;
 0000010000&lt;br /&gt;
 0100011000&lt;br /&gt;
 0110011100&lt;br /&gt;
 0111011110&lt;br /&gt;
 0111111111&lt;br /&gt;
 &lt;br /&gt;
 ORTHOGONAL                     &amp;#039;&amp;#039;Use orthogonal keyword to automatically stack weft insertions&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[file:OrthogonalFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Export===&lt;br /&gt;
====Surface Mesh====&lt;br /&gt;
This option creates a surface mesh corresponding to the mesh shown when using the Rendering -&amp;gt; X-Ray option.&lt;br /&gt;
&lt;br /&gt;
=====VTU and STL File=====&lt;br /&gt;
[[file:SurfaceVTUDialog.png|right]]&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;STL, VTU File...&lt;br /&gt;
*The Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Export Yarns: Select to create a mesh of the yarn surfaces&lt;br /&gt;
**Trim Surface to Domain: Select to create yarn meshes conforming to domain bounds&lt;br /&gt;
**Export Domain: Select to create a triangulated mesh of the domain surfaces&lt;br /&gt;
***Mesh Yarn Ends: Select to create a triangulated mesh across the yarn ends&lt;br /&gt;
***Seed size: Used to adjust size of triangulation&lt;br /&gt;
*The Save Mesh file menu will be displayed&lt;br /&gt;
**Save as type: Use the drop-down menu to select the file type - VTU, STL (ASCII or binary, or SciRun format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS File=====&lt;br /&gt;
[[file:SurfaceAbaqusDialog.png|right]]&lt;br /&gt;
This option will export the surface mesh of the yarns only&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;ABAQUS File...&lt;br /&gt;
*The ABAQUS Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Trim Surface to Domain: Select to output mesh of the yarns bounded by the domain, otherwise the yarns will be output as specified, without repeats&lt;br /&gt;
**Contact Surfaces: Outputs element sets for the contact surfaces, either for the upper and lower surfaces separately, or for the whole yarn. Choose Whole Yarn where surfaces are not clearly defined, for example in knitted textiles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Volume Mesh====&lt;br /&gt;
[[file:VolumeMeshDialog.png|right]]&lt;br /&gt;
This option creates a tetrahedral mesh of both the yarns and matrix (ie of the whole domain).  Please note that this algorithm does not work well with textiles with vertical or near-vertical yarns.&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Volume Mesh&lt;br /&gt;
*The Volume Mesh Options dialog will be displayed&lt;br /&gt;
**Element Order: Linear creates 4 noded tetrahedra, Quadratic creates 10 noded tetrahedra&lt;br /&gt;
**Periodic Meshing: Select to create matching elements on opposite boundaries&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates tetrahedra which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
**Seed size: Controls the mesh density and corresponds to the approximates edge length of the elements.  The default value is 1/20th of the domain diagonal length.&lt;br /&gt;
**Merge Tolerance:Any gaps between yarns that are smaller than this tolerance will be merged together.  This can help to reduce the number of bad quality elements.&lt;br /&gt;
&lt;br /&gt;
After the Volume Mesh Options dialog is accepted the Save Mesh File dialog will be dispayed.  The default type for output is an ABAQUS .inp file.  This will create the requested boundary conditions and also associated .ele and .ori files containing yarn orientation and volume fraction information.&lt;br /&gt;
Alternatively a VTK unstructured grid file (.vtu) can be selected which will just output the mesh.&lt;br /&gt;
&lt;br /&gt;
====Tetgen Mesh====&lt;br /&gt;
[[file:TetgenOptions.png|right]]&lt;br /&gt;
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.&lt;br /&gt;
:*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. Use the o2 parameter to generate second order elements.&lt;br /&gt;
:*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.&lt;br /&gt;
:*The Periodic check box should be unchecked for non-periodic textiles.  In this case the the domain faces will not be triangulated prior to calling the Tetgen tetrahedralization.&lt;br /&gt;
:*The Set Resolution check box allows the textile resolution to be changed. This sets the resolution for the surface mesh which is used as input for the Tetgen meshing&lt;br /&gt;
&lt;br /&gt;
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.  &amp;#039;&amp;#039;It is strongly recommended that the textile is saved before using this option.&amp;#039;&amp;#039;  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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Voxel Mesh====&lt;br /&gt;
&lt;br /&gt;
Textiles can be exported in voxel mesh format, either as an ABAQUS file including periodic boundary conditions or at a VTU file containing just the nodes and elements.&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS Voxel File=====&lt;br /&gt;
[[file:AbaqusVoxelDialog.png|300px|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; ABAQUS Voxel File&lt;br /&gt;
*The Abaqus Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Select whether to output yarns, matrix or both&lt;br /&gt;
**Select whether to use octree refinement and/or smoothing on the voxel mesh. The Octree Refinement dialog will be displayed when OK is selected.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
&lt;br /&gt;
=====Octree Refinement=====&lt;br /&gt;
[[file:OctreeRefinementDialog.png|300px|right]]&lt;br /&gt;
*Output Surfaces - generate sets of nodes for surfaces between yarns and matrix &lt;br /&gt;
*Output cohesive elements – define cohesive contact between yarns and matrix &lt;br /&gt;
**Only available if surfaces are output. Nodes on the surfaces between yarns and matrix will be duplicated to &amp;quot;decouple&amp;quot; the yarns and matrix. Cohesive contacts will be created&lt;br /&gt;
*Refinement level - Each level of refinement reduces the size of element by the factor of 2. Only elements on the interface between two materials or close to it will be refined to this level of refinement.&lt;br /&gt;
======Smoothing Options======&lt;br /&gt;
The smoothing algorithm will move the yarn surface nodes according to the [http://www.cs.jhu.edu/~misha/Fall07/Papers/Taubin00.pdf Laplacian smoothing algorithm]&lt;br /&gt;
*Smoothing&lt;br /&gt;
**None - no smoothing applied&lt;br /&gt;
**Laplacian - Apply Laplacian smoothing to nodes belonging to yarn-matrix surfaces. Each node will be moved by C1*sum(x_i) where x_i are coordinates of neighbouring nodes&lt;br /&gt;
**Non-shrinking - Apply two Laplacian smoothings consecutively with coefficients C1 and C1, where C1 &amp;lt; abs(-C2)&lt;br /&gt;
*Iterations - number of smoothing iterations&lt;br /&gt;
*Coefficient 1 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 1] &lt;br /&gt;
*Coefficient 2 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 2]&lt;br /&gt;
&lt;br /&gt;
=====VTU Voxel File=====&lt;br /&gt;
[[file:VoxelVTUDialog.png|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; VTU Voxel File&lt;br /&gt;
*The VTU Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Domain Type&lt;br /&gt;
***Box Domain: Default domain created by weave wizards consisting of 6 orthogonal planes&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ABAQUS Dry Fibre File====&lt;br /&gt;
[[file:DryFibreDialog.png|right]]&lt;br /&gt;
&lt;br /&gt;
This will create a mesh of just the yarns in the same form as shown by the Rendering-&amp;gt;Render Textile Volume option.&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; ABAQUS File -&amp;gt; ABAQUS Dry Fibre File..&lt;br /&gt;
*The Abaqus Options dialog will be displayed&lt;br /&gt;
**X, Y and Z Scale:From the scales entered displacements are calculated and applied to the centre node of each yarn, effectively providing the loading for the Abaqus simulation&lt;br /&gt;
**Checking the Compression Plates box will add a pair of plates at the top and bottom surface of the domain.&lt;br /&gt;
**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.&lt;br /&gt;
**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.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Contact Surfaces: This option allows contact surfaces to be generated for either the whole yarns or for the upper and lower surfaces. For woven textiles select Upper and Lower. For textiles where there is not a clearly defined upper and lower surface, eg knitted fabric, choose Whole Yarn&lt;br /&gt;
&lt;br /&gt;
==Modeller==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Textile===&lt;br /&gt;
To invoke the modeller either:&lt;br /&gt;
# Select Controls -&amp;gt; Textile -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Add Yarns===&lt;br /&gt;
&lt;br /&gt;
To add a single yarn either:&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Create Yarn...&lt;br /&gt;
&lt;br /&gt;
In the Create Yarn dialog:&lt;br /&gt;
* Enter start and end coordinates for the yarn&lt;br /&gt;
* Enter number of nodes&lt;br /&gt;
** The yarn will always initially be created as a straight line with equispaced nodes.&lt;br /&gt;
** Once the yarn has been placed it will be visible on screen in wire frame mode.&lt;br /&gt;
&lt;br /&gt;
====Edit Yarn/Node Position====&lt;br /&gt;
&lt;br /&gt;
Select yarn/node using one of the following methods:&lt;br /&gt;
# Click on the yarn/node with the left mouse button&lt;br /&gt;
# Hold Shift while selecting yarn/node to select multiple yarns&lt;br /&gt;
# Click on the yarn/node in the Outliner tree control&lt;br /&gt;
# Hold Shift or Ctrl while clicking on yarns/nodes in outliner tree to select multiple yarns&lt;br /&gt;
&lt;br /&gt;
Nodes are displayed as spheres on the centreline of the yarns.&lt;br /&gt;
&lt;br /&gt;
When either yarn or nodes have been selected they will turn white.  X, Y and Z axes will be displayed.&lt;br /&gt;
&lt;br /&gt;
To move yarn/node once it has been selected either:&lt;br /&gt;
* Click and drag one of the axes displayed.  The yarn/node will be moved in the corresponding direction.&lt;br /&gt;
** Precise positioning can be achieved by enabling snapping using Controls -&amp;gt; Modeller -&amp;gt; Snapping&lt;br /&gt;
* Edit the coordinates in the Controls -&amp;gt; Modeller -&amp;gt; Position boxes.&lt;br /&gt;
&lt;br /&gt;
====Add Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select node&lt;br /&gt;
# Click Outliner -&amp;gt; Insert Node, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Duplicate Yarns====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Duplicate Yarn, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039; on the keyboard&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Delete Yarns/Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Delete Selected, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Path Interpolation===&lt;br /&gt;
&lt;br /&gt;
This specifies how the yarn path is interpolated between the nodes.&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Interpolation... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Interpolation&lt;br /&gt;
# Select interpolation type from drop-down menu&lt;br /&gt;
# Periodic - check to give continuity across yarn repeats as follows:&lt;br /&gt;
## Linear - continuity of cross-section&lt;br /&gt;
## Bezier - continuity of cross-section and tangent(first order continuity)&lt;br /&gt;
## Natural Cubic - continuity of cross-section and both first and second order continuity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Cross-Sections===&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Section... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Section&lt;br /&gt;
# Select from the drop-down menu how the cross-section will vary along the length of the yarn&lt;br /&gt;
## Constant&lt;br /&gt;
## Interpolate Between Nodes - see below&lt;br /&gt;
## Interpolate Between Sections - see below&lt;br /&gt;
# Select Edit Section to change section shape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Nodes====&lt;br /&gt;
** Highlight node to be edited&lt;br /&gt;
** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Smooth - check this box to give smooth interpolation between section&lt;br /&gt;
** Polar - check this box to give polar rather than linear interpolation between sections, useful if there are large rotations between sections&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Sections====&lt;br /&gt;
** Sections can be specified at specific positions along the length of the yarn&lt;br /&gt;
** To add a section:&lt;br /&gt;
*** Click on Insert Section&lt;br /&gt;
*** Highlight the section which appears in the text box&lt;br /&gt;
*** Select the position along the yarn by using the slider or typing into the text box at the bottom of the dialog&lt;br /&gt;
** To remove a section:&lt;br /&gt;
*** Highlight the section to be removed&lt;br /&gt;
*** Click on Remove Section&lt;br /&gt;
*** Smooth and Polar - check as required, see Interpolate Between Nodes&lt;br /&gt;
*** Highlight node to be edited&lt;br /&gt;
*** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Specify Cross-sections====&lt;br /&gt;
&lt;br /&gt;
After selecting the Edit Section button the Select Cross-section Shape dialog will be displayed.&lt;br /&gt;
&lt;br /&gt;
The shape at the top of the dialog gives a preview of the shape currently specified.&lt;br /&gt;
&lt;br /&gt;
* Select Cross-section from drop-down list and enter parameters as follows:&lt;br /&gt;
** Ellipse - Width and height&lt;br /&gt;
** 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.&lt;br /&gt;
** Power Ellipse - A modified ellipse.  Power = 1 gives an ellipse. Power &amp;lt; 1 gives a rectangle with rounded corners (power = 0 gives a rectangle). Power &amp;gt; 1 gives a shape similar to lenticular with rounded ends.&lt;br /&gt;
** 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 ).&lt;br /&gt;
** Hybrid - This allows a complex section to be created by combining two or more of the above cross-section shapes.&lt;br /&gt;
[[file:HybridSection.png|frame|left]]&lt;br /&gt;
[[file:HybridSectionDialog3.png|right|frame]]&lt;br /&gt;
::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.&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
::The example shows: &lt;br /&gt;
:::Red section   - ellipse, width = 1.0, height = 0.5&lt;br /&gt;
:::Blue section  - lenticular, width = 1.0, height = 0.5, distortion = 0&lt;br /&gt;
:::Green section - ellipse, width = 0.75, height = 0.75&lt;br /&gt;
&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rotate - if this is checked then input an angle by which the shape should be rotated.&lt;br /&gt;
* Scale - if this is checked then input scale factors for the x and y directions.&lt;br /&gt;
&lt;br /&gt;
===Repeats===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Repeats... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Repeats&lt;br /&gt;
# Select yarn or multiple yarns as described in Edit Yarn/Node Position&lt;br /&gt;
# 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties===&lt;br /&gt;
Properties can be set for yarns, either individually or for the whole textile, and matrix.&lt;br /&gt;
&lt;br /&gt;
For all properties both the value and the units can be set in the dialog box.  Units are set by entering a string, eg kg/m^3&lt;br /&gt;
&lt;br /&gt;
[[file:YarnProperties.png|right]]&lt;br /&gt;
To set yarn properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Yarn Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the whole textile:&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Areal Density, or...&lt;br /&gt;
# To set properties for individual yarns select one or more yarns (use Shift+Mouse Click to select multiple yarns) and enter values and units in the Properties dialog:&lt;br /&gt;
[[file:TextilePropetiesDialog.png|right]]&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Young&amp;#039;s Modulus X&lt;br /&gt;
## Young&amp;#039;s Modulus Y&lt;br /&gt;
## Young&amp;#039;s Modulus Z&lt;br /&gt;
## Shear Modulus XY&lt;br /&gt;
## Shear Modulus XZ&lt;br /&gt;
## Shear Modulus YZ&lt;br /&gt;
## Poisson&amp;#039;s Ratio X&lt;br /&gt;
## Poisson&amp;#039;s Ratio Y&lt;br /&gt;
## Poisson&amp;#039;s Ratio Z&lt;br /&gt;
## Alpha X&lt;br /&gt;
## Alpha Y&lt;br /&gt;
## Alpha Z&lt;br /&gt;
[[file:MatrixProperties.png|right]]&lt;br /&gt;
To set the matrix properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Matrix Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Matrix Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the matrix:&lt;br /&gt;
## Matrix Young&amp;#039;s Modulus&lt;br /&gt;
## Matrix Poisson&amp;#039;s Ratio&lt;br /&gt;
## Matrix Alpha&lt;br /&gt;
&lt;br /&gt;
==Domain==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The domain is specified by planes where the space on the negative side of the plane is&lt;br /&gt;
considered to be outside of the domain. Each plane is defined as:&lt;br /&gt;
Ax + By + Cz + D = 0&lt;br /&gt;
&lt;br /&gt;
The vector (A, B, C) represents the unit normal to the plane, and D represents the distance&lt;br /&gt;
from the plane to the origin. In order to specify an axis aligned bounding box&lt;br /&gt;
with minimum of (x1, y1, z1) and maximum of (x2, y2, z2), six planes P need to be defined&lt;br /&gt;
as shown in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! A !! B !! C !! D&lt;br /&gt;
|-&lt;br /&gt;
! P0&lt;br /&gt;
| 1 || 0 || 0 || x1&lt;br /&gt;
|-&lt;br /&gt;
! P1&lt;br /&gt;
| -1 || 0 || 0 || -x2&lt;br /&gt;
|-&lt;br /&gt;
! P2&lt;br /&gt;
| 0 || 1 || 0 || y1&lt;br /&gt;
|-&lt;br /&gt;
! P3&lt;br /&gt;
| 0 || -1 || 0 || -y2&lt;br /&gt;
|-&lt;br /&gt;
! P4&lt;br /&gt;
| 0 || 0 || 1 || z1&lt;br /&gt;
|-&lt;br /&gt;
! P5&lt;br /&gt;
| 0 || 0 || -1 || -z2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The user interface gives two methods of specifying the domain:&lt;br /&gt;
# Specify a bounding box with minimum and maximum x, y and z values&lt;br /&gt;
# Specify the planes as described above&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Bounding Box===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Box... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Box&lt;br /&gt;
# In the Box Domain dialog enter the minimum and maximum x, y and z coordinates&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Planes===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Planes... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Planes&lt;br /&gt;
# Enter planes using the Domain Editor dialog:&lt;br /&gt;
## Enter x, y, z and d values for a plane as specified above&lt;br /&gt;
## Select Add Plane&lt;br /&gt;
## Repeat for each plane required&lt;br /&gt;
# To edit a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Alter the values as required&lt;br /&gt;
## Select Replace Plane&lt;br /&gt;
# To delete a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Select Delete Plane&lt;br /&gt;
&lt;br /&gt;
===Edit Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Edit Domain... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Edit&lt;br /&gt;
# The Domain Editor dialog will be displayed and is used as described in the previous section&lt;br /&gt;
&lt;br /&gt;
===Delete Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Delete or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Delete&lt;br /&gt;
&lt;br /&gt;
Both of these actions will completely delete the domain&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
&lt;br /&gt;
===Render Fibre Orientation===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Refresh View===&lt;br /&gt;
&lt;br /&gt;
Forces the textile to be re-rendered so that any updates (eg made using Python commands) are shown.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Create Pattern Draft===&lt;br /&gt;
&lt;br /&gt;
This function will create a pattern draft for textiles created using the 2D and 3D textile weave types. It is not currently implemented for 3D angle interlock textiles.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Select Pattern Draft&lt;br /&gt;
** A dialog will be displayed showing the pattern draft for the current textile as shown below:&lt;br /&gt;
[[Image:Pattern4x4.png|400px]]    [[Image:2dWeavePatternDraft.png|200px]]&lt;br /&gt;
&lt;br /&gt;
* Select Print to print in the format shown in the dialog&lt;br /&gt;
* Select Save to create a text file with a binary version of the pattern as shown below:&lt;br /&gt;
&lt;br /&gt;
 1000	0001&lt;br /&gt;
 0100	0010&lt;br /&gt;
 0010	0100&lt;br /&gt;
 0001	1000&lt;br /&gt;
 &lt;br /&gt;
 0111	1110&lt;br /&gt;
 1101	1011&lt;br /&gt;
 1011	1101&lt;br /&gt;
 1110	0111&lt;br /&gt;
&lt;br /&gt;
* For 3d textiles the ordering of weft yarn insertion is selected using the dialog below:&lt;br /&gt;
[[Image:WeftOrderingDialog.png]]&lt;br /&gt;
* The pattern draft will then be displayed and may be printed and saved as before.&lt;br /&gt;
[[Image:LayerToLayerTextile.png|400px]]    [[Image:LayerToLayerPattern.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Quick Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Quick Calculate Domain Volume Fraction&lt;br /&gt;
** The volume fraction will be calculated using the volume fraction for the whole yarn. This may introduce inaccuracies if the domain does not correlate to the size of the yarn and the yarn cross-section changes along its length.  The Calculate Domain Volume Fraction gives a more accurate value but is slower.  This option is useful where a quick approximation is acceptable.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:QuickVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Calculate Domain Volume Fraction&lt;br /&gt;
** This calculates the volume fraction for the domain based on the localised volume fractions for each element of a volume mesh.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:DomainVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Yarn Fibre Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Yarn Fibre Volume Fraction&lt;br /&gt;
** Select yarn using the left mouse button. (Shift + left button to select more than one yarn)&lt;br /&gt;
** The volume fraction for each yarn is displayed in a dialog as shown:&lt;br /&gt;
[[File:YarnVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Correct Small Intersections===&lt;br /&gt;
&lt;br /&gt;
*Select Main Menu-&amp;gt;Tools-&amp;gt;Correct Small Intersections&lt;br /&gt;
**Adjusts small interferences in the fibre volume mesh&lt;br /&gt;
**Takes the individual yarn meshes and corrects intersections based on Textile.DetectInterference()&lt;br /&gt;
**Only intended to be used for minor adjustments so will abort if intersections are greater than one volume element in depth&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
&lt;br /&gt;
===Switch Off Messages===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Options -&amp;gt; Output Messages to switch on/off&lt;br /&gt;
** The option will be marked with a tick if messages are switched on&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
===Zoom===&lt;br /&gt;
&lt;br /&gt;
Press and hold right mouse button.  Drag in an upwards direction to zoom in, downwards to zoom out.&lt;br /&gt;
&lt;br /&gt;
===Pan===&lt;br /&gt;
&lt;br /&gt;
Press and hold middle mouse button at point to be moved, then drag to required position.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Download TexGen</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2024-06-25T09:07:18Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Citing TexGen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All versions can be downloaded from [https://sourceforge.net/projects/texgen/ Sourceforge]. For Linux please download and build the code from https://github.com/louisepb/TexGen.&lt;br /&gt;
From version 3.6.0 the default Windows download is the 64-bit version. Select the &amp;quot;Files&amp;quot; tab on the download page to see all download options.&lt;br /&gt;
&lt;br /&gt;
==Which version?==&lt;br /&gt;
There are two versions versions of the executable available: &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; and &amp;#039;&amp;#039;texgen-bundle-3.x.x.exe&amp;#039;&amp;#039;. TexGen requires the Python interpreter to be installed in order to run. The standard installation package named &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; does not include Python and the Python interpreter must be preinstalled manually. The bundle installation package comes with the Python interpreter which means that no separate Python installation is required.&lt;br /&gt;
&lt;br /&gt;
From version 3.13.0 TexGen has been built with Python39. &lt;br /&gt;
&lt;br /&gt;
From version 3.8.1 TexGen has been built with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issuses  with the bundled versions on some machines and therefore version 3.8.2 has been released with bundled versions for both Python26 and Python27.  If Python27 is required and the bundled version does not run this can be rectified by installing Python27 from here: https://www.python.org/downloads/&lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t know what Python is or you won&amp;#039;t be using it for anything other than TexGen then the bundle package is recommended. For experienced users, the standard installation package is preferable since it will integrate itself with an existing python installation giving existing Python scripts access to TexGen.&lt;br /&gt;
&lt;br /&gt;
==Citing TexGen==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;We would also be grateful if you could acknowledge use of TexGen where appropriate (this includes using TexGen to generate illustrations), using one of the following references:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
L P Brown and A C Long. &amp;quot;Modelling the geometry of textile reinforcements for composites: TexGen&amp;quot;, Chapter 8 in &amp;quot;Composite reinforcements for optimum performance (Second Edition)&amp;quot;, ed. P Boisse, Woodhead Publishing Ltd, 2021, ISBN: 978-0-12-819005-0.&lt;br /&gt;
https://doi.org/10.1016/B978-0-12-819005-0.00008-3&lt;br /&gt;
&lt;br /&gt;
[http://www.scientific.net/AMR.331.44 Lin, H., Brown, L. P. &amp;amp; Long, A. C. 2011. Modelling and Simulating Textile Structures using TexGen. Advanced Materials Research, 331, 44-47.]&lt;br /&gt;
&lt;br /&gt;
To reference version 3.13.1 please use:&lt;br /&gt;
Louise Brown, mike-matveev, &amp;amp; georgespackman. (2023). louisepb/TexGen: TexGen v3.13.1 (v3.13.1). Zenodo. https://doi.org/10.5281/zenodo.8221491&lt;br /&gt;
&lt;br /&gt;
To reference version 3.13.0 please use: &lt;br /&gt;
Louise Brown, mike-matveev, &amp;amp; georgespackman. (2023). louisepb/TexGen: TexGen v3.13.0 (v3.13.0). Zenodo. https://doi.org/10.5281/zenodo.8189683&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.2 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, March 11). louisepb/TexGen: TexGen v3.12.2 (Version v3.12.2). Zenodo. http://doi.org/10.5281/zenodo.4598477&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.1 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, February 12). louisepb/TexGen: TexGen v3.12.1 (Version v3.12.1). Zenodo. http://doi.org/10.5281/zenodo.4537855&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.0 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev &amp;amp; George Spackman. (2020, March 11). louisepb/TexGen: TexGen v3.12.0 (Version v3.12.0). Zenodo. http://doi.org/10.5281/zenodo.3706478&lt;br /&gt;
&lt;br /&gt;
To reference version 3.11.0 please use:&lt;br /&gt;
Brown, Louise P, &amp;amp; Sherburn, Martin. (2019, June 7). louisepb/TexGen: TexGen v3.11.0 (Version v3.11.0). Zenodo. http://doi.org/10.5281/zenodo.3241493&lt;br /&gt;
&lt;br /&gt;
To reference version 3.10.0 please use:&lt;br /&gt;
&amp;quot;Brown, Louise P, &amp;amp; Sherburn, Martin. (2017, December 13). louisepb/TexGen: TexGen v3.10.0 (Version v3.10.0). Zenodo. http://doi.org/10.5281/zenodo.1115604 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Script Library==&lt;br /&gt;
A selection of sample TexGen scripts for different types of textiles can be found on GitHub [https://github.com/louisepb/TexGenScripts TexGenScripts].  If you have scripts which you have written which you think would be of use to other users, and are willing to share, please send them to Louise Brown (louise.brown@nottingham.ac.uk) and we will add them to the library.&lt;br /&gt;
&lt;br /&gt;
==Feedback and help==&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.  Please note that if you join the forum there may be a slight delay before your membership is approved.  We will try to do this as quickly as possible but it is unfortunately necessary due to recent problems with spammers.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [http://sourceforge.net/tracker/?group_id=181000 sourceforge trackers].&lt;br /&gt;
&lt;br /&gt;
If you make use of TexGen in your work and publications please could you make it known on the forum.  This will both help other users and publicise your work.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Download TexGen</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2024-06-25T09:05:15Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Citing TexGen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All versions can be downloaded from [https://sourceforge.net/projects/texgen/ Sourceforge]. For Linux please download and build the code from https://github.com/louisepb/TexGen.&lt;br /&gt;
From version 3.6.0 the default Windows download is the 64-bit version. Select the &amp;quot;Files&amp;quot; tab on the download page to see all download options.&lt;br /&gt;
&lt;br /&gt;
==Which version?==&lt;br /&gt;
There are two versions versions of the executable available: &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; and &amp;#039;&amp;#039;texgen-bundle-3.x.x.exe&amp;#039;&amp;#039;. TexGen requires the Python interpreter to be installed in order to run. The standard installation package named &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; does not include Python and the Python interpreter must be preinstalled manually. The bundle installation package comes with the Python interpreter which means that no separate Python installation is required.&lt;br /&gt;
&lt;br /&gt;
From version 3.13.0 TexGen has been built with Python39. &lt;br /&gt;
&lt;br /&gt;
From version 3.8.1 TexGen has been built with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issuses  with the bundled versions on some machines and therefore version 3.8.2 has been released with bundled versions for both Python26 and Python27.  If Python27 is required and the bundled version does not run this can be rectified by installing Python27 from here: https://www.python.org/downloads/&lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t know what Python is or you won&amp;#039;t be using it for anything other than TexGen then the bundle package is recommended. For experienced users, the standard installation package is preferable since it will integrate itself with an existing python installation giving existing Python scripts access to TexGen.&lt;br /&gt;
&lt;br /&gt;
==Citing TexGen==&lt;br /&gt;
We would also be grateful if you could acknowledge use of TexGen where appropriate (this includes using TexGen to generate illustrations), using one of the following references:&lt;br /&gt;
&lt;br /&gt;
L P Brown and A C Long. &amp;quot;Modelling the geometry of textile reinforcements for composites: TexGen&amp;quot;, Chapter 8 in &amp;quot;Composite reinforcements for optimum performance (Second Edition)&amp;quot;, ed. P Boisse, Woodhead Publishing Ltd, 2021, ISBN: 978-0-12-819005-0.&lt;br /&gt;
https://doi.org/10.1016/B978-0-12-819005-0.00008-3&lt;br /&gt;
&lt;br /&gt;
[http://www.scientific.net/AMR.331.44 Lin, H., Brown, L. P. &amp;amp; Long, A. C. 2011. Modelling and Simulating Textile Structures using TexGen. Advanced Materials Research, 331, 44-47.]&lt;br /&gt;
&lt;br /&gt;
To reference version 3.13.1 please use:&lt;br /&gt;
Louise Brown, mike-matveev, &amp;amp; georgespackman. (2023). louisepb/TexGen: TexGen v3.13.1 (v3.13.1). Zenodo. https://doi.org/10.5281/zenodo.8221491&lt;br /&gt;
&lt;br /&gt;
To reference version 3.13.0 please use: &lt;br /&gt;
Louise Brown, mike-matveev, &amp;amp; georgespackman. (2023). louisepb/TexGen: TexGen v3.13.0 (v3.13.0). Zenodo. https://doi.org/10.5281/zenodo.8189683&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.2 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, March 11). louisepb/TexGen: TexGen v3.12.2 (Version v3.12.2). Zenodo. http://doi.org/10.5281/zenodo.4598477&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.1 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, February 12). louisepb/TexGen: TexGen v3.12.1 (Version v3.12.1). Zenodo. http://doi.org/10.5281/zenodo.4537855&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.0 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev &amp;amp; George Spackman. (2020, March 11). louisepb/TexGen: TexGen v3.12.0 (Version v3.12.0). Zenodo. http://doi.org/10.5281/zenodo.3706478&lt;br /&gt;
&lt;br /&gt;
To reference version 3.11.0 please use:&lt;br /&gt;
Brown, Louise P, &amp;amp; Sherburn, Martin. (2019, June 7). louisepb/TexGen: TexGen v3.11.0 (Version v3.11.0). Zenodo. http://doi.org/10.5281/zenodo.3241493&lt;br /&gt;
&lt;br /&gt;
To reference version 3.10.0 please use:&lt;br /&gt;
&amp;quot;Brown, Louise P, &amp;amp; Sherburn, Martin. (2017, December 13). louisepb/TexGen: TexGen v3.10.0 (Version v3.10.0). Zenodo. http://doi.org/10.5281/zenodo.1115604 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Script Library==&lt;br /&gt;
A selection of sample TexGen scripts for different types of textiles can be found on GitHub [https://github.com/louisepb/TexGenScripts TexGenScripts].  If you have scripts which you have written which you think would be of use to other users, and are willing to share, please send them to Louise Brown (louise.brown@nottingham.ac.uk) and we will add them to the library.&lt;br /&gt;
&lt;br /&gt;
==Feedback and help==&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.  Please note that if you join the forum there may be a slight delay before your membership is approved.  We will try to do this as quickly as possible but it is unfortunately necessary due to recent problems with spammers.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [http://sourceforge.net/tracker/?group_id=181000 sourceforge trackers].&lt;br /&gt;
&lt;br /&gt;
If you make use of TexGen in your work and publications please could you make it known on the forum.  This will both help other users and publicise your work.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>User Guide</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2024-06-20T13:36:37Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Weave Pattern File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This user guide gives instructions for using TexGen via the graphical user interface (GUI). A practical introduction to using TexGen with worked examples and exercises can be found in the [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6 TexGen chapter] in the book Advanced Weaving Technology, DOI https://doi.org/10.1007/978-3-030-91515-5.&lt;br /&gt;
&lt;br /&gt;
==Layout==&lt;br /&gt;
[[Image:layout.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There are several other windows which can be switched on and off via the drop-down menu at the top in the &amp;quot;Window&amp;quot; section. By default the controls and logs windows will be visible.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The log windows at the bottom contains an interactive &amp;#039;&amp;#039;Python Console&amp;#039;&amp;#039; along with &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; and &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Textiles Menu==&lt;br /&gt;
&lt;br /&gt;
===Create Empty Textile===&lt;br /&gt;
This option creates an empty textile ready to have yarns added using the Modeller options.&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
A Textile Name dialog will then be displayed for entering a name for the textile.  Leave blank for a default name of Textile, Textile-2 etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Weave===&lt;br /&gt;
&lt;br /&gt;
[[Image:WeavewizardShear.png]]&lt;br /&gt;
&lt;br /&gt;
To use the weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Weave...&lt;br /&gt;
&lt;br /&gt;
====Create 2D Weave====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
* Warp Yarns, Weft Yarns - select number of yarns required&lt;br /&gt;
* Yarn Spacing - by default this is the same for both warp and weft yarns&lt;br /&gt;
* Yarn Width - by default this is the same for both warp and weft yarns&lt;br /&gt;
* 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&lt;br /&gt;
* Create 3D Weave - leave unchecked for 2D weave&lt;br /&gt;
* Create Layered Textile - when checked the Number of Weave Layers control is enabled for selection of the number of layers of the 2D textile.&lt;br /&gt;
* Create Default Domain - the default domain is the same as the unit cell, producing a box shaped domain with orthogonal faces.&lt;br /&gt;
* Create Sheared Domain - enabled when the Shear textile option is selected.  Generates a unit cell domain which lines up with the angle of the sheared yarns in the &amp;#039;&amp;#039;x&amp;#039;&amp;#039;-&amp;#039;&amp;#039;y&amp;#039;&amp;#039; plane.&lt;br /&gt;
* 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&lt;br /&gt;
** Gap Size - Specify the gap between yarns when Refine Model is selected&lt;br /&gt;
* Shear textile - if selected this will generate a textile with the weft yarns sheared at the shear angle specified.&lt;br /&gt;
** Shear angle - Specify the shear angle in degrees when Shear Textile is selected&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:2DWeavePatternDialog.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
* Click on yarn cross-over to switch the vertical order of the crossing yarns and thus define the weave pattern.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** 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.&lt;br /&gt;
&lt;br /&gt;
====Create 3D Weave====&lt;br /&gt;
&lt;br /&gt;
* Create 3D Weave - check this box&lt;br /&gt;
* Refine Model/Gap size - these options will now be greyed&lt;br /&gt;
* Fill in the rest of the textile data on the Weave Wizard as described for a 2D weave above &lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:weavepattern.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Add/remove layers&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and Click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu.&lt;br /&gt;
*** Select Add Layers/Remove Layers to add/remove one yarn to each set of yarns chosen&lt;br /&gt;
* Set yarn spacing, width and height as for 2D Weave described above&lt;br /&gt;
&lt;br /&gt;
===Create 3D Weave===&lt;br /&gt;
&lt;br /&gt;
To use the 3D weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; 3D Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create 3D Weave...&lt;br /&gt;
&lt;br /&gt;
First select the weave type to be created and then select Next to continue to the next page.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardPage1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardWeftPage.png]]&lt;br /&gt;
&lt;br /&gt;
* Yarns - select number of yarns required&lt;br /&gt;
* Number of Yarn Layers - select the number of weft yarn layers&lt;br /&gt;
** 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.&lt;br /&gt;
* Yarn Spacing - this is the spacing allowed for the yarn, the yarn being positioned centrally within the space assigned.&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to warp yarn input dialog.  Enter data as for the weft yarns.&lt;br /&gt;
[[Image:3DWizardWarpPage.png]]&lt;br /&gt;
*Total number of yarns in warp direction: This is the total of both straight warp yarns and through thickness binder yarns.&lt;br /&gt;
* Ratio of Binder Yarns to Warp Yarns: Specifies the order of binder/warp yarns.  If the warp ratio is 0 then all yarns in the warp direction are binder yarns.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the binder yarn input dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardBinderPage.png]]&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Yarn Spacing - specify the yarn spacing&lt;br /&gt;
* Gap size - where possible this forces a gap of the given size between yarns&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* Number of Binder Yarn Layers - this is only enabled for layer-to-layer weaves&lt;br /&gt;
* Refine - this option is only available for orthogonal weaves. Check the box to refine the textile.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the Weave Pattern dialog or to the Yarn Properties dialogs if the Refine option is selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:3dWizardWeaveControl.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
Binder yarns are green, warp yarns blue.&lt;br /&gt;
* Orthogonal weave - click on binder yarn crossover point on top view to toggle the binder yarn between top and bottom of the weave.&lt;br /&gt;
* Angle interlock - click on binder yarn crossover point on top view to assign top point of binder yarn pattern.&lt;br /&gt;
* Layer-to-layer&lt;br /&gt;
** 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** Changes will be applied to all selected yarns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardYarnProperties.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Layered===&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Layered, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Layered...&lt;br /&gt;
&lt;br /&gt;
[[Image:SelectLayersDialog.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The Select Textile Layers dialog will be displayed.  On the left hand side this lists all of the textiles currently loaded in the GUI. These can be selected and then the Add Layer button used to add them to the Layers window on the right hand side.  The textiles listed in the Layers window can then be selected and the Remove Layer, Move Layer Up and Move Layer Down buttons used to select the order required.  The layered textile will be created with the textiles in the order shown in the dialog as shown below.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredTextile.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Set Layer Offsets===&lt;br /&gt;
[[Image:Layer Offsets Dialog.png|right]]&lt;br /&gt;
Select Main Menu -&amp;gt; Textiles -&amp;gt; Set Layer Offsets&lt;br /&gt;
&lt;br /&gt;
The Layer Offsets dialog will be displayed.&lt;br /&gt;
* Constant - enter an x and y offset. This offset will be applied from the bottom of the stack to each layer, relative to the one below.&lt;br /&gt;
* Random - random offsets are allocated and are displayed in the table on the dialog.&lt;br /&gt;
* Edit Offsets - the table can be edited and the offsets entered.&lt;br /&gt;
[[Image:4LayeredOffset.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Nest Layers===&lt;br /&gt;
Two nesting options are available, either maintaining the layer offsets already set or moving the layers relative to each other in order to achieve the maximum nesting.&lt;br /&gt;
&lt;br /&gt;
* Maintaining offset&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Keep Offsets&lt;br /&gt;
**The layers will be moved together, in the z direction, as much as possible without causing intersections.  The current x,y offsets between layers is maintained.&lt;br /&gt;
&lt;br /&gt;
* Maximum nesting&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Maximum nesting&lt;br /&gt;
**The layers will be moved together adjusting the x and y offset between the layers in order to achieve the maximum z movement without causing intersections.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredNested.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Edit Textile===&lt;br /&gt;
&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Edit Textile..&lt;br /&gt;
or&lt;br /&gt;
* Select Edit from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Note: If the textile has been edited (eg. nodes have been moved) this will not be reflected in the regenerated textile.&lt;br /&gt;
&lt;br /&gt;
===Rotate Textile===&lt;br /&gt;
[[Image:RotateTextileDialog.png|right]]&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Rotate Textile&lt;br /&gt;
or&lt;br /&gt;
* Select Rotate from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
The Rotate Textile dialog will be displayed&lt;br /&gt;
* Rotation Axis - select the axis of rotation. For in plane rotation select the z-axis&lt;br /&gt;
* Angle - rotation angle in degrees&lt;br /&gt;
* Rotate Domain - Check to rotate the domain with the yarns. This will result in the section of yarns contained in the domain remaining unchanged (left below). If unchecked the domain will be unchanged and just the yarns rotated (right below).&lt;br /&gt;
&lt;br /&gt;
[[Image:RotateTextileAndDomain.png|400px]]           [[Image:RotateTextile.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==File Menu==&lt;br /&gt;
===Import===&lt;br /&gt;
====Weave Pattern File====&lt;br /&gt;
This option generates a TexGen model from a weave pattern file in the format specified below.&lt;br /&gt;
*Select File-&amp;gt;Import-&amp;gt;Weave Pattern File...&lt;br /&gt;
*The Open Weave Pattern File dialog is displayed, from which a file for import may be selected.&lt;br /&gt;
** Weave Pattern File Format&lt;br /&gt;
2D Satin Weave:&lt;br /&gt;
&lt;br /&gt;
 1 1 1 1                         &amp;#039;&amp;#039;First line is layer data, space delimited&amp;#039;&amp;#039;&lt;br /&gt;
 1000                            &amp;#039;&amp;#039;Weave pattern: 1 = warp lifted&amp;#039;&amp;#039;&lt;br /&gt;
 0010                                           &amp;#039;&amp;#039;0 = warp lowered&amp;#039;&amp;#039;&lt;br /&gt;
 0100		          &lt;br /&gt;
 0001                            &amp;#039;&amp;#039;No spacing between entries&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
 WEFT_REPEAT                     &amp;#039;&amp;#039;Use this keyword to generate pattern repeat&amp;#039;&amp;#039;&lt;br /&gt;
 WIDTH	6		mm       &amp;#039;&amp;#039;Yarn data. Row order is unimportant&amp;#039;&amp;#039;&lt;br /&gt;
 TOW_AREA	0.2    mm^2      &amp;#039;&amp;#039;Width, tow area and weft density must all be&amp;#039;&amp;#039;&lt;br /&gt;
 WEFT_DENSITY	8	/cm      &amp;#039;&amp;#039;specified otherwise default values will be used&amp;#039;&amp;#039; &lt;br /&gt;
                          	 &amp;#039;&amp;#039;to generate the TexGen model&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Additional yarn data. This is optional and will be saved in the yarn properties in the TexGen model&lt;br /&gt;
 LINEAR_DENSITY	800	tex&lt;br /&gt;
 FIBRE_DIAMETER	7	um&lt;br /&gt;
 FIBRE_DENSITY	1.8	g/cm^3&lt;br /&gt;
 FIBRE_COUNT	12000&lt;br /&gt;
&lt;br /&gt;
The TexGen model is generated using the tow area specified to calculate the width and height of the yarns, assuming a width to height ratio of 6:1 and an elliptical cross-section.  Warp and weft spacings are calculated using the width and weft density information. The data above will generate the model shown below:&lt;br /&gt;
&lt;br /&gt;
[[file:SatinFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
3D Weave:&lt;br /&gt;
&lt;br /&gt;
 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4  &amp;#039;&amp;#039;Warp layer data, numbered from bottom. Single &amp;#039;1&amp;#039; gives binder yarn&amp;#039;&amp;#039;&lt;br /&gt;
 11001111110000001100&lt;br /&gt;
 00001100000011000000&lt;br /&gt;
 10001100100011001000&lt;br /&gt;
 11001000110010001100&lt;br /&gt;
 10000000100000001000&lt;br /&gt;
 00001000000010000000&lt;br /&gt;
 WIDTH	7.5		mm&lt;br /&gt;
 TOW_AREA	0.2    mm^2&lt;br /&gt;
 WEFT_DENSITY	8	/cm&lt;br /&gt;
 FIBRE_COUNT	12000&lt;br /&gt;
 LINEAR_DENSITY	800	tex&lt;br /&gt;
 FIBRE_DIAMETER	7	um&lt;br /&gt;
 FIBRE_DENSITY	1.8	g/cm^3&lt;br /&gt;
 WEFT_REPEAT&lt;br /&gt;
&lt;br /&gt;
3D Orthogonal Weave:&lt;br /&gt;
 1 1 2 3 4 1 1 2 3 4            &amp;#039;&amp;#039;Warp layer data, numbered from bottom. Single &amp;#039;1&amp;#039; gives binder yarn&amp;#039;&amp;#039;&lt;br /&gt;
 1000000000&lt;br /&gt;
 1100001000&lt;br /&gt;
 1110001100&lt;br /&gt;
 1111001110&lt;br /&gt;
 1111101111&lt;br /&gt;
 0000010000&lt;br /&gt;
 0100011000&lt;br /&gt;
 0110011100&lt;br /&gt;
 0111011110&lt;br /&gt;
 0111111111&lt;br /&gt;
 &lt;br /&gt;
 ORTHOGONAL                     &amp;#039;&amp;#039;Use orthogonal keyword to automatically stack weft insertions&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[file:OrthogonalFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Export===&lt;br /&gt;
====Surface Mesh====&lt;br /&gt;
This option creates a surface mesh corresponding to the mesh shown when using the Rendering -&amp;gt; X-Ray option.&lt;br /&gt;
&lt;br /&gt;
=====VTU and STL File=====&lt;br /&gt;
[[file:SurfaceVTUDialog.png|right]]&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;STL, VTU File...&lt;br /&gt;
*The Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Export Yarns: Select to create a mesh of the yarn surfaces&lt;br /&gt;
**Trim Surface to Domain: Select to create yarn meshes conforming to domain bounds&lt;br /&gt;
**Export Domain: Select to create a triangulated mesh of the domain surfaces&lt;br /&gt;
***Mesh Yarn Ends: Select to create a triangulated mesh across the yarn ends&lt;br /&gt;
***Seed size: Used to adjust size of triangulation&lt;br /&gt;
*The Save Mesh file menu will be displayed&lt;br /&gt;
**Save as type: Use the drop-down menu to select the file type - VTU, STL (ASCII or binary, or SciRun format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS File=====&lt;br /&gt;
[[file:SurfaceAbaqusDialog.png|right]]&lt;br /&gt;
This option will export the surface mesh of the yarns only&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;ABAQUS File...&lt;br /&gt;
*The ABAQUS Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Trim Surface to Domain: Select to output mesh of the yarns bounded by the domain, otherwise the yarns will be output as specified, without repeats&lt;br /&gt;
**Contact Surfaces: Outputs element sets for the contact surfaces, either for the upper and lower surfaces separately, or for the whole yarn. Choose Whole Yarn where surfaces are not clearly defined, for example in knitted textiles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Volume Mesh====&lt;br /&gt;
[[file:VolumeMeshDialog.png|right]]&lt;br /&gt;
This option creates a tetrahedral mesh of both the yarns and matrix (ie of the whole domain).  Please note that this algorithm does not work well with textiles with vertical or near-vertical yarns.&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Volume Mesh&lt;br /&gt;
*The Volume Mesh Options dialog will be displayed&lt;br /&gt;
**Element Order: Linear creates 4 noded tetrahedra, Quadratic creates 10 noded tetrahedra&lt;br /&gt;
**Periodic Meshing: Select to create matching elements on opposite boundaries&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates tetrahedra which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
**Seed size: Controls the mesh density and corresponds to the approximates edge length of the elements.  The default value is 1/20th of the domain diagonal length.&lt;br /&gt;
**Merge Tolerance:Any gaps between yarns that are smaller than this tolerance will be merged together.  This can help to reduce the number of bad quality elements.&lt;br /&gt;
&lt;br /&gt;
After the Volume Mesh Options dialog is accepted the Save Mesh File dialog will be dispayed.  The default type for output is an ABAQUS .inp file.  This will create the requested boundary conditions and also associated .ele and .ori files containing yarn orientation and volume fraction information.&lt;br /&gt;
Alternatively a VTK unstructured grid file (.vtu) can be selected which will just output the mesh.&lt;br /&gt;
&lt;br /&gt;
====Tetgen Mesh====&lt;br /&gt;
[[file:TetgenOptions.png|right]]&lt;br /&gt;
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.&lt;br /&gt;
:*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. Use the o2 parameter to generate second order elements.&lt;br /&gt;
:*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.&lt;br /&gt;
:*The Periodic check box should be unchecked for non-periodic textiles.  In this case the the domain faces will not be triangulated prior to calling the Tetgen tetrahedralization.&lt;br /&gt;
:*The Set Resolution check box allows the textile resolution to be changed. This sets the resolution for the surface mesh which is used as input for the Tetgen meshing&lt;br /&gt;
&lt;br /&gt;
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.  &amp;#039;&amp;#039;It is strongly recommended that the textile is saved before using this option.&amp;#039;&amp;#039;  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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Voxel Mesh====&lt;br /&gt;
&lt;br /&gt;
Textiles can be exported in voxel mesh format, either as an ABAQUS file including periodic boundary conditions or at a VTU file containing just the nodes and elements.&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS Voxel File=====&lt;br /&gt;
[[file:AbaqusVoxelDialog.png|300px|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; ABAQUS Voxel File&lt;br /&gt;
*The Abaqus Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Select whether to output yarns, matrix or both&lt;br /&gt;
**Select whether to use octree refinement and/or smoothing on the voxel mesh. The Octree Refinement dialog will be displayed when OK is selected.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
&lt;br /&gt;
=====Octree Refinement=====&lt;br /&gt;
[[file:OctreeRefinementDialog.png|300px|right]]&lt;br /&gt;
*Output Surfaces - generate sets of nodes for surfaces between yarns and matrix &lt;br /&gt;
*Output cohesive elements – define cohesive contact between yarns and matrix &lt;br /&gt;
**Only available if surfaces are output. Nodes on the surfaces between yarns and matrix will be duplicated to &amp;quot;decouple&amp;quot; the yarns and matrix. Cohesive contacts will be created&lt;br /&gt;
*Refinement level - Each level of refinement reduces the size of element by the factor of 2. Only elements on the interface between two materials or close to it will be refined to this level of refinement.&lt;br /&gt;
======Smoothing Options======&lt;br /&gt;
The smoothing algorithm will move the yarn surface nodes according to the [http://www.cs.jhu.edu/~misha/Fall07/Papers/Taubin00.pdf Laplacian smoothing algorithm]&lt;br /&gt;
*Smoothing&lt;br /&gt;
**None - no smoothing applied&lt;br /&gt;
**Laplacian - Apply Laplacian smoothing to nodes belonging to yarn-matrix surfaces. Each node will be moved by C1*sum(x_i) where x_i are coordinates of neighbouring nodes&lt;br /&gt;
**Non-shrinking - Apply two Laplacian smoothings consecutively with coefficients C1 and C1, where C1 &amp;lt; abs(-C2)&lt;br /&gt;
*Iterations - number of smoothing iterations&lt;br /&gt;
*Coefficient 1 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 1] &lt;br /&gt;
*Coefficient 2 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 2]&lt;br /&gt;
&lt;br /&gt;
=====VTU Voxel File=====&lt;br /&gt;
[[file:VoxelVTUDialog.png|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; VTU Voxel File&lt;br /&gt;
*The VTU Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Domain Type&lt;br /&gt;
***Box Domain: Default domain created by weave wizards consisting of 6 orthogonal planes&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ABAQUS Dry Fibre File====&lt;br /&gt;
[[file:DryFibreDialog.png|right]]&lt;br /&gt;
&lt;br /&gt;
This will create a mesh of just the yarns in the same form as shown by the Rendering-&amp;gt;Render Textile Volume option.&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; ABAQUS File -&amp;gt; ABAQUS Dry Fibre File..&lt;br /&gt;
*The Abaqus Options dialog will be displayed&lt;br /&gt;
**X, Y and Z Scale:From the scales entered displacements are calculated and applied to the centre node of each yarn, effectively providing the loading for the Abaqus simulation&lt;br /&gt;
**Checking the Compression Plates box will add a pair of plates at the top and bottom surface of the domain.&lt;br /&gt;
**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.&lt;br /&gt;
**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.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Contact Surfaces: This option allows contact surfaces to be generated for either the whole yarns or for the upper and lower surfaces. For woven textiles select Upper and Lower. For textiles where there is not a clearly defined upper and lower surface, eg knitted fabric, choose Whole Yarn&lt;br /&gt;
&lt;br /&gt;
==Modeller==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Textile===&lt;br /&gt;
To invoke the modeller either:&lt;br /&gt;
# Select Controls -&amp;gt; Textile -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Add Yarns===&lt;br /&gt;
&lt;br /&gt;
To add a single yarn either:&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Create Yarn...&lt;br /&gt;
&lt;br /&gt;
In the Create Yarn dialog:&lt;br /&gt;
* Enter start and end coordinates for the yarn&lt;br /&gt;
* Enter number of nodes&lt;br /&gt;
** The yarn will always initially be created as a straight line with equispaced nodes.&lt;br /&gt;
** Once the yarn has been placed it will be visible on screen in wire frame mode.&lt;br /&gt;
&lt;br /&gt;
====Edit Yarn/Node Position====&lt;br /&gt;
&lt;br /&gt;
Select yarn/node using one of the following methods:&lt;br /&gt;
# Click on the yarn/node with the left mouse button&lt;br /&gt;
# Hold Shift while selecting yarn/node to select multiple yarns&lt;br /&gt;
# Click on the yarn/node in the Outliner tree control&lt;br /&gt;
# Hold Shift or Ctrl while clicking on yarns/nodes in outliner tree to select multiple yarns&lt;br /&gt;
&lt;br /&gt;
Nodes are displayed as spheres on the centreline of the yarns.&lt;br /&gt;
&lt;br /&gt;
When either yarn or nodes have been selected they will turn white.  X, Y and Z axes will be displayed.&lt;br /&gt;
&lt;br /&gt;
To move yarn/node once it has been selected either:&lt;br /&gt;
* Click and drag one of the axes displayed.  The yarn/node will be moved in the corresponding direction.&lt;br /&gt;
** Precise positioning can be achieved by enabling snapping using Controls -&amp;gt; Modeller -&amp;gt; Snapping&lt;br /&gt;
* Edit the coordinates in the Controls -&amp;gt; Modeller -&amp;gt; Position boxes.&lt;br /&gt;
&lt;br /&gt;
====Add Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select node&lt;br /&gt;
# Click Outliner -&amp;gt; Insert Node, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Duplicate Yarns====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Duplicate Yarn, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039; on the keyboard&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Delete Yarns/Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Delete Selected, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Path Interpolation===&lt;br /&gt;
&lt;br /&gt;
This specifies how the yarn path is interpolated between the nodes.&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Interpolation... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Interpolation&lt;br /&gt;
# Select interpolation type from drop-down menu&lt;br /&gt;
# Periodic - check to give continuity across yarn repeats as follows:&lt;br /&gt;
## Linear - continuity of cross-section&lt;br /&gt;
## Bezier - continuity of cross-section and tangent(first order continuity)&lt;br /&gt;
## Natural Cubic - continuity of cross-section and both first and second order continuity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Cross-Sections===&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Section... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Section&lt;br /&gt;
# Select from the drop-down menu how the cross-section will vary along the length of the yarn&lt;br /&gt;
## Constant&lt;br /&gt;
## Interpolate Between Nodes - see below&lt;br /&gt;
## Interpolate Between Sections - see below&lt;br /&gt;
# Select Edit Section to change section shape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Nodes====&lt;br /&gt;
** Highlight node to be edited&lt;br /&gt;
** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Smooth - check this box to give smooth interpolation between section&lt;br /&gt;
** Polar - check this box to give polar rather than linear interpolation between sections, useful if there are large rotations between sections&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Sections====&lt;br /&gt;
** Sections can be specified at specific positions along the length of the yarn&lt;br /&gt;
** To add a section:&lt;br /&gt;
*** Click on Insert Section&lt;br /&gt;
*** Highlight the section which appears in the text box&lt;br /&gt;
*** Select the position along the yarn by using the slider or typing into the text box at the bottom of the dialog&lt;br /&gt;
** To remove a section:&lt;br /&gt;
*** Highlight the section to be removed&lt;br /&gt;
*** Click on Remove Section&lt;br /&gt;
*** Smooth and Polar - check as required, see Interpolate Between Nodes&lt;br /&gt;
*** Highlight node to be edited&lt;br /&gt;
*** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Specify Cross-sections====&lt;br /&gt;
&lt;br /&gt;
After selecting the Edit Section button the Select Cross-section Shape dialog will be displayed.&lt;br /&gt;
&lt;br /&gt;
The shape at the top of the dialog gives a preview of the shape currently specified.&lt;br /&gt;
&lt;br /&gt;
* Select Cross-section from drop-down list and enter parameters as follows:&lt;br /&gt;
** Ellipse - Width and height&lt;br /&gt;
** 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.&lt;br /&gt;
** Power Ellipse - A modified ellipse.  Power = 1 gives an ellipse. Power &amp;lt; 1 gives a rectangle with rounded corners (power = 0 gives a rectangle). Power &amp;gt; 1 gives a shape similar to lenticular with rounded ends.&lt;br /&gt;
** 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 ).&lt;br /&gt;
** Hybrid - This allows a complex section to be created by combining two or more of the above cross-section shapes.&lt;br /&gt;
[[file:HybridSection.png|frame|left]]&lt;br /&gt;
[[file:HybridSectionDialog3.png|right|frame]]&lt;br /&gt;
::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.&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
::The example shows: &lt;br /&gt;
:::Red section   - ellipse, width = 1.0, height = 0.5&lt;br /&gt;
:::Blue section  - lenticular, width = 1.0, height = 0.5, distortion = 0&lt;br /&gt;
:::Green section - ellipse, width = 0.75, height = 0.75&lt;br /&gt;
&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rotate - if this is checked then input an angle by which the shape should be rotated.&lt;br /&gt;
* Scale - if this is checked then input scale factors for the x and y directions.&lt;br /&gt;
&lt;br /&gt;
===Repeats===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Repeats... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Repeats&lt;br /&gt;
# Select yarn or multiple yarns as described in Edit Yarn/Node Position&lt;br /&gt;
# 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties===&lt;br /&gt;
Properties can be set for yarns, either individually or for the whole textile, and matrix.&lt;br /&gt;
&lt;br /&gt;
For all properties both the value and the units can be set in the dialog box.  Units are set by entering a string, eg kg/m^3&lt;br /&gt;
&lt;br /&gt;
[[file:YarnProperties.png|right]]&lt;br /&gt;
To set yarn properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Yarn Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the whole textile:&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Areal Density, or...&lt;br /&gt;
# To set properties for individual yarns select one or more yarns (use Shift+Mouse Click to select multiple yarns) and enter values and units in the Properties dialog:&lt;br /&gt;
[[file:TextilePropetiesDialog.png|right]]&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Young&amp;#039;s Modulus X&lt;br /&gt;
## Young&amp;#039;s Modulus Y&lt;br /&gt;
## Young&amp;#039;s Modulus Z&lt;br /&gt;
## Shear Modulus XY&lt;br /&gt;
## Shear Modulus XZ&lt;br /&gt;
## Shear Modulus YZ&lt;br /&gt;
## Poisson&amp;#039;s Ratio X&lt;br /&gt;
## Poisson&amp;#039;s Ratio Y&lt;br /&gt;
## Poisson&amp;#039;s Ratio Z&lt;br /&gt;
## Alpha X&lt;br /&gt;
## Alpha Y&lt;br /&gt;
## Alpha Z&lt;br /&gt;
[[file:MatrixProperties.png|right]]&lt;br /&gt;
To set the matrix properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Matrix Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Matrix Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the matrix:&lt;br /&gt;
## Matrix Young&amp;#039;s Modulus&lt;br /&gt;
## Matrix Poisson&amp;#039;s Ratio&lt;br /&gt;
## Matrix Alpha&lt;br /&gt;
&lt;br /&gt;
==Domain==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The domain is specified by planes where the space on the negative side of the plane is&lt;br /&gt;
considered to be outside of the domain. Each plane is defined as:&lt;br /&gt;
Ax + By + Cz + D = 0&lt;br /&gt;
&lt;br /&gt;
The vector (A, B, C) represents the unit normal to the plane, and D represents the distance&lt;br /&gt;
from the plane to the origin. In order to specify an axis aligned bounding box&lt;br /&gt;
with minimum of (x1, y1, z1) and maximum of (x2, y2, z2), six planes P need to be defined&lt;br /&gt;
as shown in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! A !! B !! C !! D&lt;br /&gt;
|-&lt;br /&gt;
! P0&lt;br /&gt;
| 1 || 0 || 0 || x1&lt;br /&gt;
|-&lt;br /&gt;
! P1&lt;br /&gt;
| -1 || 0 || 0 || -x2&lt;br /&gt;
|-&lt;br /&gt;
! P2&lt;br /&gt;
| 0 || 1 || 0 || y1&lt;br /&gt;
|-&lt;br /&gt;
! P3&lt;br /&gt;
| 0 || -1 || 0 || -y2&lt;br /&gt;
|-&lt;br /&gt;
! P4&lt;br /&gt;
| 0 || 0 || 1 || z1&lt;br /&gt;
|-&lt;br /&gt;
! P5&lt;br /&gt;
| 0 || 0 || -1 || -z2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The user interface gives two methods of specifying the domain:&lt;br /&gt;
# Specify a bounding box with minimum and maximum x, y and z values&lt;br /&gt;
# Specify the planes as described above&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Bounding Box===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Box... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Box&lt;br /&gt;
# In the Box Domain dialog enter the minimum and maximum x, y and z coordinates&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Planes===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Planes... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Planes&lt;br /&gt;
# Enter planes using the Domain Editor dialog:&lt;br /&gt;
## Enter x, y, z and d values for a plane as specified above&lt;br /&gt;
## Select Add Plane&lt;br /&gt;
## Repeat for each plane required&lt;br /&gt;
# To edit a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Alter the values as required&lt;br /&gt;
## Select Replace Plane&lt;br /&gt;
# To delete a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Select Delete Plane&lt;br /&gt;
&lt;br /&gt;
===Edit Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Edit Domain... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Edit&lt;br /&gt;
# The Domain Editor dialog will be displayed and is used as described in the previous section&lt;br /&gt;
&lt;br /&gt;
===Delete Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Delete or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Delete&lt;br /&gt;
&lt;br /&gt;
Both of these actions will completely delete the domain&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
&lt;br /&gt;
===Render Fibre Orientation===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Refresh View===&lt;br /&gt;
&lt;br /&gt;
Forces the textile to be re-rendered so that any updates (eg made using Python commands) are shown.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Create Pattern Draft===&lt;br /&gt;
&lt;br /&gt;
This function will create a pattern draft for textiles created using the 2D and 3D textile weave types. It is not currently implemented for 3D angle interlock textiles.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Select Pattern Draft&lt;br /&gt;
** A dialog will be displayed showing the pattern draft for the current textile as shown below:&lt;br /&gt;
[[Image:Pattern4x4.png|400px]]    [[Image:2dWeavePatternDraft.png|200px]]&lt;br /&gt;
&lt;br /&gt;
* Select Print to print in the format shown in the dialog&lt;br /&gt;
* Select Save to create a text file with a binary version of the pattern as shown below:&lt;br /&gt;
&lt;br /&gt;
 1000	0001&lt;br /&gt;
 0100	0010&lt;br /&gt;
 0010	0100&lt;br /&gt;
 0001	1000&lt;br /&gt;
 &lt;br /&gt;
 0111	1110&lt;br /&gt;
 1101	1011&lt;br /&gt;
 1011	1101&lt;br /&gt;
 1110	0111&lt;br /&gt;
&lt;br /&gt;
* For 3d textiles the ordering of weft yarn insertion is selected using the dialog below:&lt;br /&gt;
[[Image:WeftOrderingDialog.png]]&lt;br /&gt;
* The pattern draft will then be displayed and may be printed and saved as before.&lt;br /&gt;
[[Image:LayerToLayerTextile.png|400px]]    [[Image:LayerToLayerPattern.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Quick Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Quick Calculate Domain Volume Fraction&lt;br /&gt;
** The volume fraction will be calculated using the volume fraction for the whole yarn. This may introduce inaccuracies if the domain does not correlate to the size of the yarn and the yarn cross-section changes along its length.  The Calculate Domain Volume Fraction gives a more accurate value but is slower.  This option is useful where a quick approximation is acceptable.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:QuickVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Calculate Domain Volume Fraction&lt;br /&gt;
** This calculates the volume fraction for the domain based on the localised volume fractions for each element of a volume mesh.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:DomainVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Yarn Fibre Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Yarn Fibre Volume Fraction&lt;br /&gt;
** Select yarn using the left mouse button. (Shift + left button to select more than one yarn)&lt;br /&gt;
** The volume fraction for each yarn is displayed in a dialog as shown:&lt;br /&gt;
[[File:YarnVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Correct Small Intersections===&lt;br /&gt;
&lt;br /&gt;
*Select Main Menu-&amp;gt;Tools-&amp;gt;Correct Small Intersections&lt;br /&gt;
**Adjusts small interferences in the fibre volume mesh&lt;br /&gt;
**Takes the individual yarn meshes and corrects intersections based on Textile.DetectInterference()&lt;br /&gt;
**Only intended to be used for minor adjustments so will abort if intersections are greater than one volume element in depth&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
&lt;br /&gt;
===Switch Off Messages===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Options -&amp;gt; Output Messages to switch on/off&lt;br /&gt;
** The option will be marked with a tick if messages are switched on&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
===Zoom===&lt;br /&gt;
&lt;br /&gt;
Press and hold right mouse button.  Drag in an upwards direction to zoom in, downwards to zoom out.&lt;br /&gt;
&lt;br /&gt;
===Pan===&lt;br /&gt;
&lt;br /&gt;
Press and hold middle mouse button at point to be moved, then drag to required position.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>User Guide</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2024-06-20T13:23:37Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Weave Pattern File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This user guide gives instructions for using TexGen via the graphical user interface (GUI). A practical introduction to using TexGen with worked examples and exercises can be found in the [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6 TexGen chapter] in the book Advanced Weaving Technology, DOI https://doi.org/10.1007/978-3-030-91515-5.&lt;br /&gt;
&lt;br /&gt;
==Layout==&lt;br /&gt;
[[Image:layout.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There are several other windows which can be switched on and off via the drop-down menu at the top in the &amp;quot;Window&amp;quot; section. By default the controls and logs windows will be visible.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The log windows at the bottom contains an interactive &amp;#039;&amp;#039;Python Console&amp;#039;&amp;#039; along with &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; and &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Textiles Menu==&lt;br /&gt;
&lt;br /&gt;
===Create Empty Textile===&lt;br /&gt;
This option creates an empty textile ready to have yarns added using the Modeller options.&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
A Textile Name dialog will then be displayed for entering a name for the textile.  Leave blank for a default name of Textile, Textile-2 etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Weave===&lt;br /&gt;
&lt;br /&gt;
[[Image:WeavewizardShear.png]]&lt;br /&gt;
&lt;br /&gt;
To use the weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Weave...&lt;br /&gt;
&lt;br /&gt;
====Create 2D Weave====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
* Warp Yarns, Weft Yarns - select number of yarns required&lt;br /&gt;
* Yarn Spacing - by default this is the same for both warp and weft yarns&lt;br /&gt;
* Yarn Width - by default this is the same for both warp and weft yarns&lt;br /&gt;
* 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&lt;br /&gt;
* Create 3D Weave - leave unchecked for 2D weave&lt;br /&gt;
* Create Layered Textile - when checked the Number of Weave Layers control is enabled for selection of the number of layers of the 2D textile.&lt;br /&gt;
* Create Default Domain - the default domain is the same as the unit cell, producing a box shaped domain with orthogonal faces.&lt;br /&gt;
* Create Sheared Domain - enabled when the Shear textile option is selected.  Generates a unit cell domain which lines up with the angle of the sheared yarns in the &amp;#039;&amp;#039;x&amp;#039;&amp;#039;-&amp;#039;&amp;#039;y&amp;#039;&amp;#039; plane.&lt;br /&gt;
* 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&lt;br /&gt;
** Gap Size - Specify the gap between yarns when Refine Model is selected&lt;br /&gt;
* Shear textile - if selected this will generate a textile with the weft yarns sheared at the shear angle specified.&lt;br /&gt;
** Shear angle - Specify the shear angle in degrees when Shear Textile is selected&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:2DWeavePatternDialog.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
* Click on yarn cross-over to switch the vertical order of the crossing yarns and thus define the weave pattern.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** 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.&lt;br /&gt;
&lt;br /&gt;
====Create 3D Weave====&lt;br /&gt;
&lt;br /&gt;
* Create 3D Weave - check this box&lt;br /&gt;
* Refine Model/Gap size - these options will now be greyed&lt;br /&gt;
* Fill in the rest of the textile data on the Weave Wizard as described for a 2D weave above &lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:weavepattern.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Add/remove layers&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and Click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu.&lt;br /&gt;
*** Select Add Layers/Remove Layers to add/remove one yarn to each set of yarns chosen&lt;br /&gt;
* Set yarn spacing, width and height as for 2D Weave described above&lt;br /&gt;
&lt;br /&gt;
===Create 3D Weave===&lt;br /&gt;
&lt;br /&gt;
To use the 3D weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; 3D Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create 3D Weave...&lt;br /&gt;
&lt;br /&gt;
First select the weave type to be created and then select Next to continue to the next page.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardPage1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardWeftPage.png]]&lt;br /&gt;
&lt;br /&gt;
* Yarns - select number of yarns required&lt;br /&gt;
* Number of Yarn Layers - select the number of weft yarn layers&lt;br /&gt;
** 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.&lt;br /&gt;
* Yarn Spacing - this is the spacing allowed for the yarn, the yarn being positioned centrally within the space assigned.&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to warp yarn input dialog.  Enter data as for the weft yarns.&lt;br /&gt;
[[Image:3DWizardWarpPage.png]]&lt;br /&gt;
*Total number of yarns in warp direction: This is the total of both straight warp yarns and through thickness binder yarns.&lt;br /&gt;
* Ratio of Binder Yarns to Warp Yarns: Specifies the order of binder/warp yarns.  If the warp ratio is 0 then all yarns in the warp direction are binder yarns.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the binder yarn input dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardBinderPage.png]]&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Yarn Spacing - specify the yarn spacing&lt;br /&gt;
* Gap size - where possible this forces a gap of the given size between yarns&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* Number of Binder Yarn Layers - this is only enabled for layer-to-layer weaves&lt;br /&gt;
* Refine - this option is only available for orthogonal weaves. Check the box to refine the textile.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the Weave Pattern dialog or to the Yarn Properties dialogs if the Refine option is selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:3dWizardWeaveControl.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
Binder yarns are green, warp yarns blue.&lt;br /&gt;
* Orthogonal weave - click on binder yarn crossover point on top view to toggle the binder yarn between top and bottom of the weave.&lt;br /&gt;
* Angle interlock - click on binder yarn crossover point on top view to assign top point of binder yarn pattern.&lt;br /&gt;
* Layer-to-layer&lt;br /&gt;
** 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** Changes will be applied to all selected yarns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardYarnProperties.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Layered===&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Layered, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Layered...&lt;br /&gt;
&lt;br /&gt;
[[Image:SelectLayersDialog.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The Select Textile Layers dialog will be displayed.  On the left hand side this lists all of the textiles currently loaded in the GUI. These can be selected and then the Add Layer button used to add them to the Layers window on the right hand side.  The textiles listed in the Layers window can then be selected and the Remove Layer, Move Layer Up and Move Layer Down buttons used to select the order required.  The layered textile will be created with the textiles in the order shown in the dialog as shown below.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredTextile.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Set Layer Offsets===&lt;br /&gt;
[[Image:Layer Offsets Dialog.png|right]]&lt;br /&gt;
Select Main Menu -&amp;gt; Textiles -&amp;gt; Set Layer Offsets&lt;br /&gt;
&lt;br /&gt;
The Layer Offsets dialog will be displayed.&lt;br /&gt;
* Constant - enter an x and y offset. This offset will be applied from the bottom of the stack to each layer, relative to the one below.&lt;br /&gt;
* Random - random offsets are allocated and are displayed in the table on the dialog.&lt;br /&gt;
* Edit Offsets - the table can be edited and the offsets entered.&lt;br /&gt;
[[Image:4LayeredOffset.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Nest Layers===&lt;br /&gt;
Two nesting options are available, either maintaining the layer offsets already set or moving the layers relative to each other in order to achieve the maximum nesting.&lt;br /&gt;
&lt;br /&gt;
* Maintaining offset&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Keep Offsets&lt;br /&gt;
**The layers will be moved together, in the z direction, as much as possible without causing intersections.  The current x,y offsets between layers is maintained.&lt;br /&gt;
&lt;br /&gt;
* Maximum nesting&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Maximum nesting&lt;br /&gt;
**The layers will be moved together adjusting the x and y offset between the layers in order to achieve the maximum z movement without causing intersections.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredNested.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Edit Textile===&lt;br /&gt;
&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Edit Textile..&lt;br /&gt;
or&lt;br /&gt;
* Select Edit from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Note: If the textile has been edited (eg. nodes have been moved) this will not be reflected in the regenerated textile.&lt;br /&gt;
&lt;br /&gt;
===Rotate Textile===&lt;br /&gt;
[[Image:RotateTextileDialog.png|right]]&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Rotate Textile&lt;br /&gt;
or&lt;br /&gt;
* Select Rotate from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
The Rotate Textile dialog will be displayed&lt;br /&gt;
* Rotation Axis - select the axis of rotation. For in plane rotation select the z-axis&lt;br /&gt;
* Angle - rotation angle in degrees&lt;br /&gt;
* Rotate Domain - Check to rotate the domain with the yarns. This will result in the section of yarns contained in the domain remaining unchanged (left below). If unchecked the domain will be unchanged and just the yarns rotated (right below).&lt;br /&gt;
&lt;br /&gt;
[[Image:RotateTextileAndDomain.png|400px]]           [[Image:RotateTextile.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==File Menu==&lt;br /&gt;
===Import===&lt;br /&gt;
====Weave Pattern File====&lt;br /&gt;
This option generates a TexGen model from a weave pattern file in the format specified below.&lt;br /&gt;
*Select File-&amp;gt;Import-&amp;gt;Weave Pattern File...&lt;br /&gt;
*The Open Weave Pattern File dialog is displayed, from which a file for import may be selected.&lt;br /&gt;
** Weave Pattern File Format&lt;br /&gt;
2D Satin Weave:&lt;br /&gt;
&lt;br /&gt;
 1 1 1 1                         &amp;#039;&amp;#039;First line is layer data, space delimited&amp;#039;&amp;#039;&lt;br /&gt;
 1000                            &amp;#039;&amp;#039;Weave pattern: 1 = warp lifted&amp;#039;&amp;#039;&lt;br /&gt;
 0010                                           &amp;#039;&amp;#039;0 = warp lowered&amp;#039;&amp;#039;&lt;br /&gt;
 0100		          &lt;br /&gt;
 0001                            &amp;#039;&amp;#039;No spacing between entries&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
 WEFT_REPEAT                     &amp;#039;&amp;#039;Use this keyword to generate pattern repeat&amp;#039;&amp;#039;&lt;br /&gt;
 WIDTH	6		mm       &amp;#039;&amp;#039;Yarn data. Row order is unimportant&amp;#039;&amp;#039;&lt;br /&gt;
 TOW_AREA	0.2    mm^2      &amp;#039;&amp;#039;Width, tow area and weft density must all be&amp;#039;&amp;#039;&lt;br /&gt;
 WEFT_DENSITY	8	/cm      &amp;#039;&amp;#039;specified otherwise default values will be used&amp;#039;&amp;#039; &lt;br /&gt;
                          	 &amp;#039;&amp;#039;to generate the TexGen model&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Additional yarn data. This is optional and will be saved in the yarn properties in the TexGen model&lt;br /&gt;
 LINEAR_DENSITY	800	tex&lt;br /&gt;
 FIBRE_DIAMETER	7	um&lt;br /&gt;
 FIBRE_DENSITY	1.8	g/cm^3&lt;br /&gt;
 FIBRE_COUNT	12000&lt;br /&gt;
&lt;br /&gt;
The TexGen model is generated using the tow area specified to calculate the width and height of the yarns, assuming a width to height ratio of 6:1 and an elliptical cross-section.  Warp and weft spacings are calculated using the width and weft density information. The data above will generate the model shown below:&lt;br /&gt;
&lt;br /&gt;
[[file:SatinFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
3D Orthogonal Weave:&lt;br /&gt;
 1 1 2 3 4 1 1 2 3 4            &amp;#039;&amp;#039;Warp layer data, numbered from bottom. Single &amp;#039;1&amp;#039; gives binder yarn&amp;#039;&amp;#039;&lt;br /&gt;
 1000000000&lt;br /&gt;
 1100001000&lt;br /&gt;
 1110001100&lt;br /&gt;
 1111001110&lt;br /&gt;
 1111101111&lt;br /&gt;
 0000010000&lt;br /&gt;
 0100011000&lt;br /&gt;
 0110011100&lt;br /&gt;
 0111011110&lt;br /&gt;
 0111111111&lt;br /&gt;
 &lt;br /&gt;
 ORTHOGONAL                     &amp;#039;&amp;#039;Use orthogonal keyword to automatically stack weft insertions&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[file:OrthogonalFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Export===&lt;br /&gt;
====Surface Mesh====&lt;br /&gt;
This option creates a surface mesh corresponding to the mesh shown when using the Rendering -&amp;gt; X-Ray option.&lt;br /&gt;
&lt;br /&gt;
=====VTU and STL File=====&lt;br /&gt;
[[file:SurfaceVTUDialog.png|right]]&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;STL, VTU File...&lt;br /&gt;
*The Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Export Yarns: Select to create a mesh of the yarn surfaces&lt;br /&gt;
**Trim Surface to Domain: Select to create yarn meshes conforming to domain bounds&lt;br /&gt;
**Export Domain: Select to create a triangulated mesh of the domain surfaces&lt;br /&gt;
***Mesh Yarn Ends: Select to create a triangulated mesh across the yarn ends&lt;br /&gt;
***Seed size: Used to adjust size of triangulation&lt;br /&gt;
*The Save Mesh file menu will be displayed&lt;br /&gt;
**Save as type: Use the drop-down menu to select the file type - VTU, STL (ASCII or binary, or SciRun format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS File=====&lt;br /&gt;
[[file:SurfaceAbaqusDialog.png|right]]&lt;br /&gt;
This option will export the surface mesh of the yarns only&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;ABAQUS File...&lt;br /&gt;
*The ABAQUS Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Trim Surface to Domain: Select to output mesh of the yarns bounded by the domain, otherwise the yarns will be output as specified, without repeats&lt;br /&gt;
**Contact Surfaces: Outputs element sets for the contact surfaces, either for the upper and lower surfaces separately, or for the whole yarn. Choose Whole Yarn where surfaces are not clearly defined, for example in knitted textiles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Volume Mesh====&lt;br /&gt;
[[file:VolumeMeshDialog.png|right]]&lt;br /&gt;
This option creates a tetrahedral mesh of both the yarns and matrix (ie of the whole domain).  Please note that this algorithm does not work well with textiles with vertical or near-vertical yarns.&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Volume Mesh&lt;br /&gt;
*The Volume Mesh Options dialog will be displayed&lt;br /&gt;
**Element Order: Linear creates 4 noded tetrahedra, Quadratic creates 10 noded tetrahedra&lt;br /&gt;
**Periodic Meshing: Select to create matching elements on opposite boundaries&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates tetrahedra which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
**Seed size: Controls the mesh density and corresponds to the approximates edge length of the elements.  The default value is 1/20th of the domain diagonal length.&lt;br /&gt;
**Merge Tolerance:Any gaps between yarns that are smaller than this tolerance will be merged together.  This can help to reduce the number of bad quality elements.&lt;br /&gt;
&lt;br /&gt;
After the Volume Mesh Options dialog is accepted the Save Mesh File dialog will be dispayed.  The default type for output is an ABAQUS .inp file.  This will create the requested boundary conditions and also associated .ele and .ori files containing yarn orientation and volume fraction information.&lt;br /&gt;
Alternatively a VTK unstructured grid file (.vtu) can be selected which will just output the mesh.&lt;br /&gt;
&lt;br /&gt;
====Tetgen Mesh====&lt;br /&gt;
[[file:TetgenOptions.png|right]]&lt;br /&gt;
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.&lt;br /&gt;
:*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. Use the o2 parameter to generate second order elements.&lt;br /&gt;
:*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.&lt;br /&gt;
:*The Periodic check box should be unchecked for non-periodic textiles.  In this case the the domain faces will not be triangulated prior to calling the Tetgen tetrahedralization.&lt;br /&gt;
:*The Set Resolution check box allows the textile resolution to be changed. This sets the resolution for the surface mesh which is used as input for the Tetgen meshing&lt;br /&gt;
&lt;br /&gt;
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.  &amp;#039;&amp;#039;It is strongly recommended that the textile is saved before using this option.&amp;#039;&amp;#039;  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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Voxel Mesh====&lt;br /&gt;
&lt;br /&gt;
Textiles can be exported in voxel mesh format, either as an ABAQUS file including periodic boundary conditions or at a VTU file containing just the nodes and elements.&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS Voxel File=====&lt;br /&gt;
[[file:AbaqusVoxelDialog.png|300px|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; ABAQUS Voxel File&lt;br /&gt;
*The Abaqus Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Select whether to output yarns, matrix or both&lt;br /&gt;
**Select whether to use octree refinement and/or smoothing on the voxel mesh. The Octree Refinement dialog will be displayed when OK is selected.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
&lt;br /&gt;
=====Octree Refinement=====&lt;br /&gt;
[[file:OctreeRefinementDialog.png|300px|right]]&lt;br /&gt;
*Output Surfaces - generate sets of nodes for surfaces between yarns and matrix &lt;br /&gt;
*Output cohesive elements – define cohesive contact between yarns and matrix &lt;br /&gt;
**Only available if surfaces are output. Nodes on the surfaces between yarns and matrix will be duplicated to &amp;quot;decouple&amp;quot; the yarns and matrix. Cohesive contacts will be created&lt;br /&gt;
*Refinement level - Each level of refinement reduces the size of element by the factor of 2. Only elements on the interface between two materials or close to it will be refined to this level of refinement.&lt;br /&gt;
======Smoothing Options======&lt;br /&gt;
The smoothing algorithm will move the yarn surface nodes according to the [http://www.cs.jhu.edu/~misha/Fall07/Papers/Taubin00.pdf Laplacian smoothing algorithm]&lt;br /&gt;
*Smoothing&lt;br /&gt;
**None - no smoothing applied&lt;br /&gt;
**Laplacian - Apply Laplacian smoothing to nodes belonging to yarn-matrix surfaces. Each node will be moved by C1*sum(x_i) where x_i are coordinates of neighbouring nodes&lt;br /&gt;
**Non-shrinking - Apply two Laplacian smoothings consecutively with coefficients C1 and C1, where C1 &amp;lt; abs(-C2)&lt;br /&gt;
*Iterations - number of smoothing iterations&lt;br /&gt;
*Coefficient 1 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 1] &lt;br /&gt;
*Coefficient 2 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 2]&lt;br /&gt;
&lt;br /&gt;
=====VTU Voxel File=====&lt;br /&gt;
[[file:VoxelVTUDialog.png|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; VTU Voxel File&lt;br /&gt;
*The VTU Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Domain Type&lt;br /&gt;
***Box Domain: Default domain created by weave wizards consisting of 6 orthogonal planes&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ABAQUS Dry Fibre File====&lt;br /&gt;
[[file:DryFibreDialog.png|right]]&lt;br /&gt;
&lt;br /&gt;
This will create a mesh of just the yarns in the same form as shown by the Rendering-&amp;gt;Render Textile Volume option.&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; ABAQUS File -&amp;gt; ABAQUS Dry Fibre File..&lt;br /&gt;
*The Abaqus Options dialog will be displayed&lt;br /&gt;
**X, Y and Z Scale:From the scales entered displacements are calculated and applied to the centre node of each yarn, effectively providing the loading for the Abaqus simulation&lt;br /&gt;
**Checking the Compression Plates box will add a pair of plates at the top and bottom surface of the domain.&lt;br /&gt;
**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.&lt;br /&gt;
**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.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Contact Surfaces: This option allows contact surfaces to be generated for either the whole yarns or for the upper and lower surfaces. For woven textiles select Upper and Lower. For textiles where there is not a clearly defined upper and lower surface, eg knitted fabric, choose Whole Yarn&lt;br /&gt;
&lt;br /&gt;
==Modeller==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Textile===&lt;br /&gt;
To invoke the modeller either:&lt;br /&gt;
# Select Controls -&amp;gt; Textile -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Add Yarns===&lt;br /&gt;
&lt;br /&gt;
To add a single yarn either:&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Create Yarn...&lt;br /&gt;
&lt;br /&gt;
In the Create Yarn dialog:&lt;br /&gt;
* Enter start and end coordinates for the yarn&lt;br /&gt;
* Enter number of nodes&lt;br /&gt;
** The yarn will always initially be created as a straight line with equispaced nodes.&lt;br /&gt;
** Once the yarn has been placed it will be visible on screen in wire frame mode.&lt;br /&gt;
&lt;br /&gt;
====Edit Yarn/Node Position====&lt;br /&gt;
&lt;br /&gt;
Select yarn/node using one of the following methods:&lt;br /&gt;
# Click on the yarn/node with the left mouse button&lt;br /&gt;
# Hold Shift while selecting yarn/node to select multiple yarns&lt;br /&gt;
# Click on the yarn/node in the Outliner tree control&lt;br /&gt;
# Hold Shift or Ctrl while clicking on yarns/nodes in outliner tree to select multiple yarns&lt;br /&gt;
&lt;br /&gt;
Nodes are displayed as spheres on the centreline of the yarns.&lt;br /&gt;
&lt;br /&gt;
When either yarn or nodes have been selected they will turn white.  X, Y and Z axes will be displayed.&lt;br /&gt;
&lt;br /&gt;
To move yarn/node once it has been selected either:&lt;br /&gt;
* Click and drag one of the axes displayed.  The yarn/node will be moved in the corresponding direction.&lt;br /&gt;
** Precise positioning can be achieved by enabling snapping using Controls -&amp;gt; Modeller -&amp;gt; Snapping&lt;br /&gt;
* Edit the coordinates in the Controls -&amp;gt; Modeller -&amp;gt; Position boxes.&lt;br /&gt;
&lt;br /&gt;
====Add Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select node&lt;br /&gt;
# Click Outliner -&amp;gt; Insert Node, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Duplicate Yarns====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Duplicate Yarn, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039; on the keyboard&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Delete Yarns/Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Delete Selected, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Path Interpolation===&lt;br /&gt;
&lt;br /&gt;
This specifies how the yarn path is interpolated between the nodes.&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Interpolation... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Interpolation&lt;br /&gt;
# Select interpolation type from drop-down menu&lt;br /&gt;
# Periodic - check to give continuity across yarn repeats as follows:&lt;br /&gt;
## Linear - continuity of cross-section&lt;br /&gt;
## Bezier - continuity of cross-section and tangent(first order continuity)&lt;br /&gt;
## Natural Cubic - continuity of cross-section and both first and second order continuity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Cross-Sections===&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Section... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Section&lt;br /&gt;
# Select from the drop-down menu how the cross-section will vary along the length of the yarn&lt;br /&gt;
## Constant&lt;br /&gt;
## Interpolate Between Nodes - see below&lt;br /&gt;
## Interpolate Between Sections - see below&lt;br /&gt;
# Select Edit Section to change section shape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Nodes====&lt;br /&gt;
** Highlight node to be edited&lt;br /&gt;
** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Smooth - check this box to give smooth interpolation between section&lt;br /&gt;
** Polar - check this box to give polar rather than linear interpolation between sections, useful if there are large rotations between sections&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Sections====&lt;br /&gt;
** Sections can be specified at specific positions along the length of the yarn&lt;br /&gt;
** To add a section:&lt;br /&gt;
*** Click on Insert Section&lt;br /&gt;
*** Highlight the section which appears in the text box&lt;br /&gt;
*** Select the position along the yarn by using the slider or typing into the text box at the bottom of the dialog&lt;br /&gt;
** To remove a section:&lt;br /&gt;
*** Highlight the section to be removed&lt;br /&gt;
*** Click on Remove Section&lt;br /&gt;
*** Smooth and Polar - check as required, see Interpolate Between Nodes&lt;br /&gt;
*** Highlight node to be edited&lt;br /&gt;
*** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Specify Cross-sections====&lt;br /&gt;
&lt;br /&gt;
After selecting the Edit Section button the Select Cross-section Shape dialog will be displayed.&lt;br /&gt;
&lt;br /&gt;
The shape at the top of the dialog gives a preview of the shape currently specified.&lt;br /&gt;
&lt;br /&gt;
* Select Cross-section from drop-down list and enter parameters as follows:&lt;br /&gt;
** Ellipse - Width and height&lt;br /&gt;
** 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.&lt;br /&gt;
** Power Ellipse - A modified ellipse.  Power = 1 gives an ellipse. Power &amp;lt; 1 gives a rectangle with rounded corners (power = 0 gives a rectangle). Power &amp;gt; 1 gives a shape similar to lenticular with rounded ends.&lt;br /&gt;
** 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 ).&lt;br /&gt;
** Hybrid - This allows a complex section to be created by combining two or more of the above cross-section shapes.&lt;br /&gt;
[[file:HybridSection.png|frame|left]]&lt;br /&gt;
[[file:HybridSectionDialog3.png|right|frame]]&lt;br /&gt;
::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.&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
::The example shows: &lt;br /&gt;
:::Red section   - ellipse, width = 1.0, height = 0.5&lt;br /&gt;
:::Blue section  - lenticular, width = 1.0, height = 0.5, distortion = 0&lt;br /&gt;
:::Green section - ellipse, width = 0.75, height = 0.75&lt;br /&gt;
&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rotate - if this is checked then input an angle by which the shape should be rotated.&lt;br /&gt;
* Scale - if this is checked then input scale factors for the x and y directions.&lt;br /&gt;
&lt;br /&gt;
===Repeats===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Repeats... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Repeats&lt;br /&gt;
# Select yarn or multiple yarns as described in Edit Yarn/Node Position&lt;br /&gt;
# 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties===&lt;br /&gt;
Properties can be set for yarns, either individually or for the whole textile, and matrix.&lt;br /&gt;
&lt;br /&gt;
For all properties both the value and the units can be set in the dialog box.  Units are set by entering a string, eg kg/m^3&lt;br /&gt;
&lt;br /&gt;
[[file:YarnProperties.png|right]]&lt;br /&gt;
To set yarn properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Yarn Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the whole textile:&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Areal Density, or...&lt;br /&gt;
# To set properties for individual yarns select one or more yarns (use Shift+Mouse Click to select multiple yarns) and enter values and units in the Properties dialog:&lt;br /&gt;
[[file:TextilePropetiesDialog.png|right]]&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Young&amp;#039;s Modulus X&lt;br /&gt;
## Young&amp;#039;s Modulus Y&lt;br /&gt;
## Young&amp;#039;s Modulus Z&lt;br /&gt;
## Shear Modulus XY&lt;br /&gt;
## Shear Modulus XZ&lt;br /&gt;
## Shear Modulus YZ&lt;br /&gt;
## Poisson&amp;#039;s Ratio X&lt;br /&gt;
## Poisson&amp;#039;s Ratio Y&lt;br /&gt;
## Poisson&amp;#039;s Ratio Z&lt;br /&gt;
## Alpha X&lt;br /&gt;
## Alpha Y&lt;br /&gt;
## Alpha Z&lt;br /&gt;
[[file:MatrixProperties.png|right]]&lt;br /&gt;
To set the matrix properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Matrix Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Matrix Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the matrix:&lt;br /&gt;
## Matrix Young&amp;#039;s Modulus&lt;br /&gt;
## Matrix Poisson&amp;#039;s Ratio&lt;br /&gt;
## Matrix Alpha&lt;br /&gt;
&lt;br /&gt;
==Domain==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The domain is specified by planes where the space on the negative side of the plane is&lt;br /&gt;
considered to be outside of the domain. Each plane is defined as:&lt;br /&gt;
Ax + By + Cz + D = 0&lt;br /&gt;
&lt;br /&gt;
The vector (A, B, C) represents the unit normal to the plane, and D represents the distance&lt;br /&gt;
from the plane to the origin. In order to specify an axis aligned bounding box&lt;br /&gt;
with minimum of (x1, y1, z1) and maximum of (x2, y2, z2), six planes P need to be defined&lt;br /&gt;
as shown in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! A !! B !! C !! D&lt;br /&gt;
|-&lt;br /&gt;
! P0&lt;br /&gt;
| 1 || 0 || 0 || x1&lt;br /&gt;
|-&lt;br /&gt;
! P1&lt;br /&gt;
| -1 || 0 || 0 || -x2&lt;br /&gt;
|-&lt;br /&gt;
! P2&lt;br /&gt;
| 0 || 1 || 0 || y1&lt;br /&gt;
|-&lt;br /&gt;
! P3&lt;br /&gt;
| 0 || -1 || 0 || -y2&lt;br /&gt;
|-&lt;br /&gt;
! P4&lt;br /&gt;
| 0 || 0 || 1 || z1&lt;br /&gt;
|-&lt;br /&gt;
! P5&lt;br /&gt;
| 0 || 0 || -1 || -z2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The user interface gives two methods of specifying the domain:&lt;br /&gt;
# Specify a bounding box with minimum and maximum x, y and z values&lt;br /&gt;
# Specify the planes as described above&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Bounding Box===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Box... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Box&lt;br /&gt;
# In the Box Domain dialog enter the minimum and maximum x, y and z coordinates&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Planes===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Planes... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Planes&lt;br /&gt;
# Enter planes using the Domain Editor dialog:&lt;br /&gt;
## Enter x, y, z and d values for a plane as specified above&lt;br /&gt;
## Select Add Plane&lt;br /&gt;
## Repeat for each plane required&lt;br /&gt;
# To edit a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Alter the values as required&lt;br /&gt;
## Select Replace Plane&lt;br /&gt;
# To delete a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Select Delete Plane&lt;br /&gt;
&lt;br /&gt;
===Edit Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Edit Domain... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Edit&lt;br /&gt;
# The Domain Editor dialog will be displayed and is used as described in the previous section&lt;br /&gt;
&lt;br /&gt;
===Delete Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Delete or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Delete&lt;br /&gt;
&lt;br /&gt;
Both of these actions will completely delete the domain&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
&lt;br /&gt;
===Render Fibre Orientation===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Refresh View===&lt;br /&gt;
&lt;br /&gt;
Forces the textile to be re-rendered so that any updates (eg made using Python commands) are shown.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Create Pattern Draft===&lt;br /&gt;
&lt;br /&gt;
This function will create a pattern draft for textiles created using the 2D and 3D textile weave types. It is not currently implemented for 3D angle interlock textiles.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Select Pattern Draft&lt;br /&gt;
** A dialog will be displayed showing the pattern draft for the current textile as shown below:&lt;br /&gt;
[[Image:Pattern4x4.png|400px]]    [[Image:2dWeavePatternDraft.png|200px]]&lt;br /&gt;
&lt;br /&gt;
* Select Print to print in the format shown in the dialog&lt;br /&gt;
* Select Save to create a text file with a binary version of the pattern as shown below:&lt;br /&gt;
&lt;br /&gt;
 1000	0001&lt;br /&gt;
 0100	0010&lt;br /&gt;
 0010	0100&lt;br /&gt;
 0001	1000&lt;br /&gt;
 &lt;br /&gt;
 0111	1110&lt;br /&gt;
 1101	1011&lt;br /&gt;
 1011	1101&lt;br /&gt;
 1110	0111&lt;br /&gt;
&lt;br /&gt;
* For 3d textiles the ordering of weft yarn insertion is selected using the dialog below:&lt;br /&gt;
[[Image:WeftOrderingDialog.png]]&lt;br /&gt;
* The pattern draft will then be displayed and may be printed and saved as before.&lt;br /&gt;
[[Image:LayerToLayerTextile.png|400px]]    [[Image:LayerToLayerPattern.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Quick Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Quick Calculate Domain Volume Fraction&lt;br /&gt;
** The volume fraction will be calculated using the volume fraction for the whole yarn. This may introduce inaccuracies if the domain does not correlate to the size of the yarn and the yarn cross-section changes along its length.  The Calculate Domain Volume Fraction gives a more accurate value but is slower.  This option is useful where a quick approximation is acceptable.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:QuickVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Calculate Domain Volume Fraction&lt;br /&gt;
** This calculates the volume fraction for the domain based on the localised volume fractions for each element of a volume mesh.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:DomainVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Yarn Fibre Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Yarn Fibre Volume Fraction&lt;br /&gt;
** Select yarn using the left mouse button. (Shift + left button to select more than one yarn)&lt;br /&gt;
** The volume fraction for each yarn is displayed in a dialog as shown:&lt;br /&gt;
[[File:YarnVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Correct Small Intersections===&lt;br /&gt;
&lt;br /&gt;
*Select Main Menu-&amp;gt;Tools-&amp;gt;Correct Small Intersections&lt;br /&gt;
**Adjusts small interferences in the fibre volume mesh&lt;br /&gt;
**Takes the individual yarn meshes and corrects intersections based on Textile.DetectInterference()&lt;br /&gt;
**Only intended to be used for minor adjustments so will abort if intersections are greater than one volume element in depth&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
&lt;br /&gt;
===Switch Off Messages===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Options -&amp;gt; Output Messages to switch on/off&lt;br /&gt;
** The option will be marked with a tick if messages are switched on&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
===Zoom===&lt;br /&gt;
&lt;br /&gt;
Press and hold right mouse button.  Drag in an upwards direction to zoom in, downwards to zoom out.&lt;br /&gt;
&lt;br /&gt;
===Pan===&lt;br /&gt;
&lt;br /&gt;
Press and hold middle mouse button at point to be moved, then drag to required position.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-09-13T14:05:12Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:3Tex Vf 0.55.png|thumb|3d orthogonal woven fabric]]&lt;br /&gt;
[[Image:2DWeave.png|thumb|2d woven fabric]]&lt;br /&gt;
[[Image:Ncf.png|thumb|Non-crimp fabric]]&lt;br /&gt;
[[Image:Tufted laminate.png|thumb|Tufted laminate]]&lt;br /&gt;
[[Image:Triaxialbraid.png|thumb|Triaxial braid fabric]]&lt;br /&gt;
[[Image:Weftknit.png|thumb|Weft knit fabric]]&lt;br /&gt;
&lt;br /&gt;
TexGen is open source software licensed under the General Public License developed at the University of Nottingham for modelling the geometry of textile structures. TexGen has been used by the Nottingham team as the basis of models for a variety of properties, including textile mechanics, permeability and composite mechanical behaviour.&lt;br /&gt;
&lt;br /&gt;
A summary of our work involving TexGen can be found on the [[TexGen Applications]] page and a list of publications using TexGen can be found on the [[Publications]] page. Please also visit the [http://www.nottingham.ac.uk/research/groups/composites-research-group/research/textile-composites/textile-composites.aspx University of Nottingham Textile Composites Research] website for more details about our research group.&lt;br /&gt;
&lt;br /&gt;
A User Guide can be found here [[User_Guide]]. Also on this website you will find all the information necessary to get started with TexGen by using the sidebar for navigation. &lt;br /&gt;
&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [https://github.com/louisepb/TexGen GitHub issue tracker].&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.13.1 Released! ===&lt;br /&gt;
This is a minor release to correct a bug when exporting a voxel mesh to Abaqus with no boundary conditions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:30, 7th August 2023 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.13.0 Released! ===&lt;br /&gt;
Version 3.13.0 has been released. From this release TexGen will be built with Python 3. Existing scripts should continue to run using the Run Script option in the GUI after the addition of a line to import the TexGen core library (from TexGen.Core import *).&lt;br /&gt;
&lt;br /&gt;
A new class CDomainPrism has been implemented which allows concave sets of domain planes to be specified, e.g. T-shaped or arcs. This is only accessible via scripting. It&amp;#039;s use is described in the scripting guide with a sample script.&lt;br /&gt;
&lt;br /&gt;
Layer to layer 3D woven textiles can be created with binder layers following different paths (rather than all binder layers moving together through the layers) using the new CTextileDecoupledLToL class. This is accessible via Python scripting.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.13.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:30, 27th July 2023 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen Chapter in new book: Advanced Weaving Technology ===&lt;br /&gt;
Published on 3rd April 2022 this book provides state-of-the-art information on weaving technology and 3D fabrics. It examines weaving preparation, mechanics and limits of the weaving processes, pattern design and applications. The TexGen chapter gives a practical overview and introduction to the use of TexGen and the modelling theory used in the software. There is a guide to creating automatically generated textile models using the built-in weave wizards and a detailed example of the method for creating a textile model using the functionality within the graphical user interface (GUI). An overview of the Python application programming interface (API) is given, illustrated by an example script, as well as information on how to use the Python functions to edit existing textiles. Finally there is an overview of the options for different meshing and export options used to prepare models as input for simulations.&lt;br /&gt;
&lt;br /&gt;
The TexGen chapter is available [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6 here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:17, 14 April 2022 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== TexGen Webinar: Exporting TexGen Models for Simulation===&lt;br /&gt;
====27th April 2021, 2pm (BST) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will describe the use of TexGen as a preprocessor for simulations using textile models and will cover:&lt;br /&gt;
*The different export options available, including file formats and meshing options&lt;br /&gt;
*Examples of different types of simulations using TexGen models, e.g. prediction of mechanical properties and permeability&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/BVME9evj0kc Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/webinar2_TexGenExport.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
=== TexGen Webinar: Introduction to Creating Textile Models Using TexGen===&lt;br /&gt;
==== 23rd March 2021, 2pm (GMT) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will give an introduction to TexGen and will cover:&lt;br /&gt;
*The use of the TexGen graphical user interface (GUI) to create and edit 2D woven structures.&lt;br /&gt;
*An outline of the modelling theory used in the TexGen software which will enable users to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/xDYRhVvwd2E Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/Webinar1_IntroductionToTexGen.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.2 Released! ===&lt;br /&gt;
Version 3.12.2 has been released. This contains a bugfix to octree refinement when starting with a number of voxels other than 1x1x1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:15, 15 March 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.1 Released! ===&lt;br /&gt;
Version 3.12.1 has been released. This contains extension of the ABAQUS Voxel File export to provide access to the octree refinement with Laplacian smoothing from the GUI. The octree refinement can now be started with a user-specified number of voxels.&lt;br /&gt;
&lt;br /&gt;
Correct Small Intersections tool has been added to the Tools menu (previously only accessible via the ABAQUS Dry Fibre export option).&lt;br /&gt;
&lt;br /&gt;
Tetgen export has been updated to include the o2 option allowing export of quadratic tet element.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.1/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17:00, 12 February 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.0 Released! ===&lt;br /&gt;
Version 3.12.0 has been released. This contains functions for octree refinement of voxel meshes with Laplacian smoothing. These are available using Python commands and instructions for their use are given here: [[Using Octree Refinement and Mesh Smoothing]]&lt;br /&gt;
&lt;br /&gt;
There are new options to create surface meshes in ABAQUS inp format and voxel meshes in vtu format.&lt;br /&gt;
&lt;br /&gt;
There is a bugfix to the correct reversal of G13 and G23 when calculating material properies using periodic boundary conditions as set up inthe voxel mesh export (issue 22 on GitHub).&lt;br /&gt;
&lt;br /&gt;
A Refresh View option has been added.&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:12, 11 March 2020 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Workshop: A Practical Introduction to Creating Textile Models===&lt;br /&gt;
====15th November 2019, CMSC, Purdue University, USA====&lt;br /&gt;
•	This interactive workshop will demonstrate the use of the TexGen graphical user interface (GUI) to create and edit 2D and 3D woven structures.  An outline of the modelling theory used in the TexGen software will be given which will enable the user to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
•	Python scripting for TexGen will be introduced and will be demonstrated both for editing models within the GUI and for creating custom scripts for maximum control over the textile structures created.&lt;br /&gt;
&lt;br /&gt;
•	An overview will be given of the use of TexGen as a pre-processor for generating textile models and its use in the multiscale modelling process, including export options which allow TexGen models to be easily exported to third-party software such as ABAQUS which can then be used in simulations for prediction of material properties.&lt;br /&gt;
&lt;br /&gt;
The workshop will be held at the [http://www.Purdue.edu/cmsc Composites Manufacturing and Simulation Centre], Purdue University and is free to attend but places are limited, so booking is essential. Participants will be required to bring their own laptops in order to follow the exercises. &lt;br /&gt;
&lt;br /&gt;
To book a place please register via [https://www.eventbrite.com/e/texgen-workshop-a-practical-introduction-to-creating-textile-models-tickets-73971830737 Eventbrite]&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.11.0 Released! ===&lt;br /&gt;
Version 3.11.0 has been released. This contains upgrades to the VTK, wxWidgets, triangle and OpenCASCADE libraries to address issues with the Python 27 version running on Windows 10.&lt;br /&gt;
&lt;br /&gt;
Periodic boundary conditions have been added for rotated textiles in the voxel mesh export.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.11.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:15, 7 June 2019 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.10.0 Released! ===&lt;br /&gt;
Version 3.10.0 has been released. This contains a Rotate Textile option which can be used in conjunction with the Layer Textile option to create laminates with different textile orientations.&lt;br /&gt;
&lt;br /&gt;
There are new options to import weave patterns and then create pattern drafts from certain types of weave patterns.&lt;br /&gt;
&lt;br /&gt;
There has been some code optimisation to speed up the functions which calculate volume fraction and yarn orientations in the export functions.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.10.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;18:00, 13 December 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Survey ===&lt;br /&gt;
The latest version of TexGen (3.9.0) included an invitation to complete a survey on exit from the program. This takes just a few minutes and can be found [https://nottingham.limequery.com/728617?lang=en here].  If you are a TexGen user we would be grateful if you could find the time to complete this.&lt;br /&gt;
&lt;br /&gt;
The information in the survey is crucial to us as it will help us to put together the case for continued funding of the TexGen project which, for the most part, is supported by UK Research Council funding.&lt;br /&gt;
&lt;br /&gt;
Many thanks for your help!&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.9.0 Released! ===&lt;br /&gt;
Version 3.9.0 has been released.  This contains functions to create a mesh of the centre plane of yarns using quad elements and functions to find the point on a yarn surface which is closest to a specified point.&lt;br /&gt;
&lt;br /&gt;
On exit from the program a dialog is triggered which points the user to an online survey.  This is entirely optional but information about usage and benefit from using the software will help us to make the case with research councils to continue funding the project.  This will enable us to continue its development and to keep it as free software.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.9.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:15, 14 February 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.2 Released! ===&lt;br /&gt;
Version 3.8.2 has been released. This contains functions to calculate fibre volume fractions of specified domains (unit cells if these correspond) and yarns. Functionality has been added to allow an angle to be specified at a node so that a cross-section can be angled relative to the yarn tangent.  Creation of pattern draft for layer-to-layer textiles. Added option to wizards to select whether or not 10% is added to height of default domain.&lt;br /&gt;
&lt;br /&gt;
Windows installation files are available with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issues on some machines with the Python27 bundled versions. If Python27 is required install Python from here https://www.python.org/downloads/ and then use any of the Python27 files.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.2/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:11, 19 January 2016 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.0 Released! ===&lt;br /&gt;
Version 3.8.0 has been released. This contains the addition of a maximum nesting function to layered textiles.  Changes to the 2D weave refine options have been implemented to allow more flexibility as to which functions are called when using the API. These have also been changed to allow refinement of non-periodic textiles. Option to select non-periodic mesh when using Tetgen meshing has been implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:08, 16 March 2015 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.7.0 Released! ===&lt;br /&gt;
Version 3.7.0 has been released. This contains the addition of layered textiles.  These can be created from the 2D weave wizard where a number of layers can be specified or from an option in the Textiles menu where different textiles can be stacked by making a selection from those loaded in the GUI.  Offsets can be set between the layers and simple nesting is implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.7.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:36, 7 August 2014 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.1 Released! ===&lt;br /&gt;
Version 3.6.1 has been released.  This contains changes to the Volume Mesh export to give matching nodes and elements on opposite faces of the unit cell.  ABAQUS input files can then be generated with periodic boundary conditions. (Note that this meshing method is not suitable for 3D weaves with vertical or near-vertical yarns).  Changes have been made to the 3D Weave Wizard to allow all warp yarns to be binder yarns.  The Window installation files now use Python 2.6 thus giving compatibility with recent versions of ABAQUS.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:19, 27 January 2014 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.0 Released! ===&lt;br /&gt;
Version 3.6.0 has been released.  This contains the addition of a sheared textile option to the 2D weave wizard.  This will automatically generate sheared 2D textiles and includes a refine option to minimise yarn intersections.  Associated sheared domain, sheared voxels and periodic boundary conditions may also be created. An option to create staggered periodic boundary conditions has been added for textiles which include an offset repeat, so as to minimise unit cell size.  There are various other small changes and bugfixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:41, 8 August 2013 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.3 Released! ===&lt;br /&gt;
Version 3.5.3 has been released.  This contains modification of the PointInsideYarn function to give correct solutions for yarns with both convex and concave yarn sections.  There are improvements to the 3D orthogonal weave refine option.  Scripts have been made available to give automatic extraction of material properties following simulations using the Abaqus voxel mesh option.  There are various optimisation changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.3/README/view here].&lt;br /&gt;
&amp;lt;small&amp;gt;13.56, 12 November 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.2 Released! ===&lt;br /&gt;
Version 3.5.2 has been released.  This contains the addition of a refine option to the 3D orthogonal weave.  The geometry is adjusted to achieve a given overall fabric thickness.  Fibre orientation calculations have been improved to reflect the variations in yarn cross-sections and a render fibre orientation functions has been added to the user interface.  A rectangular yarn section has been added.  There are also various bug fixes. Windows 32 and 64 bit installers are now available.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.2/README/view here].&lt;br /&gt;
&lt;br /&gt;
===Workshop Presentations===&lt;br /&gt;
The presentations from the TexGen workshop held at the East Midlands Conference Centre on 2nd May 2012 are now available to view on the Documentation page [http://texgen.sourceforge.net/index.php/Documentation here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:09, 8 May 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.1 Released! ===&lt;br /&gt;
Version 3.5.1 has been released.  This contains the addition of offset angle interlock weaves and specification of power ellipse power in the 3d weave wizard.  An export function has been added which uses the open source software Tetgen to generate tetrahedral meshes.  It also contains the addition of an x offset to the power ellipse section and various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:20, 1 March 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.0 Released! ===&lt;br /&gt;
Version 3.5.0 has been released.  This contains a new wizard for automatic creation of idealised orthogonal, angle interlock and layer-to-layer 3d textile weaves. It also contains various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:00, 13 October 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.1 Released! ===&lt;br /&gt;
Version 3.4.1 has been released. This contains minor changes to ABAQUS voxel mesh output and some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:09, 22 June 2011 &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.0 Released! ===&lt;br /&gt;
Version 3.4.0 has been released. It contains the addition of periodic boundary conditions to the Abaqus voxel mesh output.  The dry fibre volume mesh intersection correction has been improved and an additional option added to regenerate the textile model using the adapted mesh following correction.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.0/ReleaseNotes3.4.0.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:49, 16 March 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.3 Released! ===&lt;br /&gt;
Version 3.3.3 has been released.  It contains new features to save fibre and/or matrix as a voxel mesh in Abaqus format, to assign fibre properties to individual yarns and to adjust for small intersections in dry fibre volume mesh when outputting to Abaqus format.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.3.3/ReleaseNotes3.3.3.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;4 November 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.2 Released! ===&lt;br /&gt;
Version 3.3.2 has been released.  It contains new features to save fibre models to Abaqus output, render fibre volume mesh and render interference depth.  There are also some bug fixes, in particular a couple to get the GUI working in the Linux version.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.2/Release%20notes3-3-2.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15 June 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.3.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.1 has been released (currently only Windows versions). It contains a couple of bug fixes and an option to switch output of messages on and off.  A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.1/Release%20notes3-3-1.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17 March 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.0 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.0 has been released, it has various bug fixes most notably to the volume mesher and a few new algorithms dealing with geometry prediction based on mechanical behaviour of yarns. A list of changes can be found [https://sourceforge.net/project/shownotes.php?group_id=181000&amp;amp;release_id=591019 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:52, 9 April 2008 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.2.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.2.1 has been released, this is mainly a bug fix release however there are a few new features. A list of changes can be found [http://sourceforge.net/project/shownotes.php?release_id=553663&amp;amp;group_id=181000 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;04:12, 13 November 2007 (PST)&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-09-13T14:04:33Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:3Tex Vf 0.55.png|thumb|3d orthogonal woven fabric]]&lt;br /&gt;
[[Image:2DWeave.png|thumb|2d woven fabric]]&lt;br /&gt;
[[Image:Ncf.png|Non-crimp fabric]]&lt;br /&gt;
[[Image:Tufted laminate.png|thumb|Tufted laminate]]&lt;br /&gt;
[[Image:Triaxialbraid.png|thumb|Triaxial braid fabric]]&lt;br /&gt;
[[Image:Weftknit.png|thumb|Weft knit fabric]]&lt;br /&gt;
&lt;br /&gt;
TexGen is open source software licensed under the General Public License developed at the University of Nottingham for modelling the geometry of textile structures. TexGen has been used by the Nottingham team as the basis of models for a variety of properties, including textile mechanics, permeability and composite mechanical behaviour.&lt;br /&gt;
&lt;br /&gt;
A summary of our work involving TexGen can be found on the [[TexGen Applications]] page and a list of publications using TexGen can be found on the [[Publications]] page. Please also visit the [http://www.nottingham.ac.uk/research/groups/composites-research-group/research/textile-composites/textile-composites.aspx University of Nottingham Textile Composites Research] website for more details about our research group.&lt;br /&gt;
&lt;br /&gt;
A User Guide can be found here [[User_Guide]]. Also on this website you will find all the information necessary to get started with TexGen by using the sidebar for navigation. &lt;br /&gt;
&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [https://github.com/louisepb/TexGen GitHub issue tracker].&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.13.1 Released! ===&lt;br /&gt;
This is a minor release to correct a bug when exporting a voxel mesh to Abaqus with no boundary conditions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:30, 7th August 2023 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.13.0 Released! ===&lt;br /&gt;
Version 3.13.0 has been released. From this release TexGen will be built with Python 3. Existing scripts should continue to run using the Run Script option in the GUI after the addition of a line to import the TexGen core library (from TexGen.Core import *).&lt;br /&gt;
&lt;br /&gt;
A new class CDomainPrism has been implemented which allows concave sets of domain planes to be specified, e.g. T-shaped or arcs. This is only accessible via scripting. It&amp;#039;s use is described in the scripting guide with a sample script.&lt;br /&gt;
&lt;br /&gt;
Layer to layer 3D woven textiles can be created with binder layers following different paths (rather than all binder layers moving together through the layers) using the new CTextileDecoupledLToL class. This is accessible via Python scripting.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.13.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:30, 27th July 2023 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen Chapter in new book: Advanced Weaving Technology ===&lt;br /&gt;
Published on 3rd April 2022 this book provides state-of-the-art information on weaving technology and 3D fabrics. It examines weaving preparation, mechanics and limits of the weaving processes, pattern design and applications. The TexGen chapter gives a practical overview and introduction to the use of TexGen and the modelling theory used in the software. There is a guide to creating automatically generated textile models using the built-in weave wizards and a detailed example of the method for creating a textile model using the functionality within the graphical user interface (GUI). An overview of the Python application programming interface (API) is given, illustrated by an example script, as well as information on how to use the Python functions to edit existing textiles. Finally there is an overview of the options for different meshing and export options used to prepare models as input for simulations.&lt;br /&gt;
&lt;br /&gt;
The TexGen chapter is available [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6 here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:17, 14 April 2022 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== TexGen Webinar: Exporting TexGen Models for Simulation===&lt;br /&gt;
====27th April 2021, 2pm (BST) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will describe the use of TexGen as a preprocessor for simulations using textile models and will cover:&lt;br /&gt;
*The different export options available, including file formats and meshing options&lt;br /&gt;
*Examples of different types of simulations using TexGen models, e.g. prediction of mechanical properties and permeability&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/BVME9evj0kc Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/webinar2_TexGenExport.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
=== TexGen Webinar: Introduction to Creating Textile Models Using TexGen===&lt;br /&gt;
==== 23rd March 2021, 2pm (GMT) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will give an introduction to TexGen and will cover:&lt;br /&gt;
*The use of the TexGen graphical user interface (GUI) to create and edit 2D woven structures.&lt;br /&gt;
*An outline of the modelling theory used in the TexGen software which will enable users to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/xDYRhVvwd2E Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/Webinar1_IntroductionToTexGen.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.2 Released! ===&lt;br /&gt;
Version 3.12.2 has been released. This contains a bugfix to octree refinement when starting with a number of voxels other than 1x1x1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:15, 15 March 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.1 Released! ===&lt;br /&gt;
Version 3.12.1 has been released. This contains extension of the ABAQUS Voxel File export to provide access to the octree refinement with Laplacian smoothing from the GUI. The octree refinement can now be started with a user-specified number of voxels.&lt;br /&gt;
&lt;br /&gt;
Correct Small Intersections tool has been added to the Tools menu (previously only accessible via the ABAQUS Dry Fibre export option).&lt;br /&gt;
&lt;br /&gt;
Tetgen export has been updated to include the o2 option allowing export of quadratic tet element.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.1/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17:00, 12 February 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.0 Released! ===&lt;br /&gt;
Version 3.12.0 has been released. This contains functions for octree refinement of voxel meshes with Laplacian smoothing. These are available using Python commands and instructions for their use are given here: [[Using Octree Refinement and Mesh Smoothing]]&lt;br /&gt;
&lt;br /&gt;
There are new options to create surface meshes in ABAQUS inp format and voxel meshes in vtu format.&lt;br /&gt;
&lt;br /&gt;
There is a bugfix to the correct reversal of G13 and G23 when calculating material properies using periodic boundary conditions as set up inthe voxel mesh export (issue 22 on GitHub).&lt;br /&gt;
&lt;br /&gt;
A Refresh View option has been added.&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:12, 11 March 2020 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Workshop: A Practical Introduction to Creating Textile Models===&lt;br /&gt;
====15th November 2019, CMSC, Purdue University, USA====&lt;br /&gt;
•	This interactive workshop will demonstrate the use of the TexGen graphical user interface (GUI) to create and edit 2D and 3D woven structures.  An outline of the modelling theory used in the TexGen software will be given which will enable the user to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
•	Python scripting for TexGen will be introduced and will be demonstrated both for editing models within the GUI and for creating custom scripts for maximum control over the textile structures created.&lt;br /&gt;
&lt;br /&gt;
•	An overview will be given of the use of TexGen as a pre-processor for generating textile models and its use in the multiscale modelling process, including export options which allow TexGen models to be easily exported to third-party software such as ABAQUS which can then be used in simulations for prediction of material properties.&lt;br /&gt;
&lt;br /&gt;
The workshop will be held at the [http://www.Purdue.edu/cmsc Composites Manufacturing and Simulation Centre], Purdue University and is free to attend but places are limited, so booking is essential. Participants will be required to bring their own laptops in order to follow the exercises. &lt;br /&gt;
&lt;br /&gt;
To book a place please register via [https://www.eventbrite.com/e/texgen-workshop-a-practical-introduction-to-creating-textile-models-tickets-73971830737 Eventbrite]&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.11.0 Released! ===&lt;br /&gt;
Version 3.11.0 has been released. This contains upgrades to the VTK, wxWidgets, triangle and OpenCASCADE libraries to address issues with the Python 27 version running on Windows 10.&lt;br /&gt;
&lt;br /&gt;
Periodic boundary conditions have been added for rotated textiles in the voxel mesh export.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.11.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:15, 7 June 2019 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.10.0 Released! ===&lt;br /&gt;
Version 3.10.0 has been released. This contains a Rotate Textile option which can be used in conjunction with the Layer Textile option to create laminates with different textile orientations.&lt;br /&gt;
&lt;br /&gt;
There are new options to import weave patterns and then create pattern drafts from certain types of weave patterns.&lt;br /&gt;
&lt;br /&gt;
There has been some code optimisation to speed up the functions which calculate volume fraction and yarn orientations in the export functions.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.10.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;18:00, 13 December 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Survey ===&lt;br /&gt;
The latest version of TexGen (3.9.0) included an invitation to complete a survey on exit from the program. This takes just a few minutes and can be found [https://nottingham.limequery.com/728617?lang=en here].  If you are a TexGen user we would be grateful if you could find the time to complete this.&lt;br /&gt;
&lt;br /&gt;
The information in the survey is crucial to us as it will help us to put together the case for continued funding of the TexGen project which, for the most part, is supported by UK Research Council funding.&lt;br /&gt;
&lt;br /&gt;
Many thanks for your help!&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.9.0 Released! ===&lt;br /&gt;
Version 3.9.0 has been released.  This contains functions to create a mesh of the centre plane of yarns using quad elements and functions to find the point on a yarn surface which is closest to a specified point.&lt;br /&gt;
&lt;br /&gt;
On exit from the program a dialog is triggered which points the user to an online survey.  This is entirely optional but information about usage and benefit from using the software will help us to make the case with research councils to continue funding the project.  This will enable us to continue its development and to keep it as free software.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.9.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:15, 14 February 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.2 Released! ===&lt;br /&gt;
Version 3.8.2 has been released. This contains functions to calculate fibre volume fractions of specified domains (unit cells if these correspond) and yarns. Functionality has been added to allow an angle to be specified at a node so that a cross-section can be angled relative to the yarn tangent.  Creation of pattern draft for layer-to-layer textiles. Added option to wizards to select whether or not 10% is added to height of default domain.&lt;br /&gt;
&lt;br /&gt;
Windows installation files are available with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issues on some machines with the Python27 bundled versions. If Python27 is required install Python from here https://www.python.org/downloads/ and then use any of the Python27 files.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.2/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:11, 19 January 2016 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.0 Released! ===&lt;br /&gt;
Version 3.8.0 has been released. This contains the addition of a maximum nesting function to layered textiles.  Changes to the 2D weave refine options have been implemented to allow more flexibility as to which functions are called when using the API. These have also been changed to allow refinement of non-periodic textiles. Option to select non-periodic mesh when using Tetgen meshing has been implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:08, 16 March 2015 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.7.0 Released! ===&lt;br /&gt;
Version 3.7.0 has been released. This contains the addition of layered textiles.  These can be created from the 2D weave wizard where a number of layers can be specified or from an option in the Textiles menu where different textiles can be stacked by making a selection from those loaded in the GUI.  Offsets can be set between the layers and simple nesting is implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.7.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:36, 7 August 2014 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.1 Released! ===&lt;br /&gt;
Version 3.6.1 has been released.  This contains changes to the Volume Mesh export to give matching nodes and elements on opposite faces of the unit cell.  ABAQUS input files can then be generated with periodic boundary conditions. (Note that this meshing method is not suitable for 3D weaves with vertical or near-vertical yarns).  Changes have been made to the 3D Weave Wizard to allow all warp yarns to be binder yarns.  The Window installation files now use Python 2.6 thus giving compatibility with recent versions of ABAQUS.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:19, 27 January 2014 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.0 Released! ===&lt;br /&gt;
Version 3.6.0 has been released.  This contains the addition of a sheared textile option to the 2D weave wizard.  This will automatically generate sheared 2D textiles and includes a refine option to minimise yarn intersections.  Associated sheared domain, sheared voxels and periodic boundary conditions may also be created. An option to create staggered periodic boundary conditions has been added for textiles which include an offset repeat, so as to minimise unit cell size.  There are various other small changes and bugfixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:41, 8 August 2013 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.3 Released! ===&lt;br /&gt;
Version 3.5.3 has been released.  This contains modification of the PointInsideYarn function to give correct solutions for yarns with both convex and concave yarn sections.  There are improvements to the 3D orthogonal weave refine option.  Scripts have been made available to give automatic extraction of material properties following simulations using the Abaqus voxel mesh option.  There are various optimisation changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.3/README/view here].&lt;br /&gt;
&amp;lt;small&amp;gt;13.56, 12 November 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.2 Released! ===&lt;br /&gt;
Version 3.5.2 has been released.  This contains the addition of a refine option to the 3D orthogonal weave.  The geometry is adjusted to achieve a given overall fabric thickness.  Fibre orientation calculations have been improved to reflect the variations in yarn cross-sections and a render fibre orientation functions has been added to the user interface.  A rectangular yarn section has been added.  There are also various bug fixes. Windows 32 and 64 bit installers are now available.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.2/README/view here].&lt;br /&gt;
&lt;br /&gt;
===Workshop Presentations===&lt;br /&gt;
The presentations from the TexGen workshop held at the East Midlands Conference Centre on 2nd May 2012 are now available to view on the Documentation page [http://texgen.sourceforge.net/index.php/Documentation here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:09, 8 May 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.1 Released! ===&lt;br /&gt;
Version 3.5.1 has been released.  This contains the addition of offset angle interlock weaves and specification of power ellipse power in the 3d weave wizard.  An export function has been added which uses the open source software Tetgen to generate tetrahedral meshes.  It also contains the addition of an x offset to the power ellipse section and various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:20, 1 March 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.0 Released! ===&lt;br /&gt;
Version 3.5.0 has been released.  This contains a new wizard for automatic creation of idealised orthogonal, angle interlock and layer-to-layer 3d textile weaves. It also contains various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:00, 13 October 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.1 Released! ===&lt;br /&gt;
Version 3.4.1 has been released. This contains minor changes to ABAQUS voxel mesh output and some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:09, 22 June 2011 &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.0 Released! ===&lt;br /&gt;
Version 3.4.0 has been released. It contains the addition of periodic boundary conditions to the Abaqus voxel mesh output.  The dry fibre volume mesh intersection correction has been improved and an additional option added to regenerate the textile model using the adapted mesh following correction.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.0/ReleaseNotes3.4.0.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:49, 16 March 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.3 Released! ===&lt;br /&gt;
Version 3.3.3 has been released.  It contains new features to save fibre and/or matrix as a voxel mesh in Abaqus format, to assign fibre properties to individual yarns and to adjust for small intersections in dry fibre volume mesh when outputting to Abaqus format.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.3.3/ReleaseNotes3.3.3.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;4 November 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.2 Released! ===&lt;br /&gt;
Version 3.3.2 has been released.  It contains new features to save fibre models to Abaqus output, render fibre volume mesh and render interference depth.  There are also some bug fixes, in particular a couple to get the GUI working in the Linux version.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.2/Release%20notes3-3-2.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15 June 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.3.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.1 has been released (currently only Windows versions). It contains a couple of bug fixes and an option to switch output of messages on and off.  A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.1/Release%20notes3-3-1.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17 March 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.0 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.0 has been released, it has various bug fixes most notably to the volume mesher and a few new algorithms dealing with geometry prediction based on mechanical behaviour of yarns. A list of changes can be found [https://sourceforge.net/project/shownotes.php?group_id=181000&amp;amp;release_id=591019 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:52, 9 April 2008 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.2.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.2.1 has been released, this is mainly a bug fix release however there are a few new features. A list of changes can be found [http://sourceforge.net/project/shownotes.php?release_id=553663&amp;amp;group_id=181000 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;04:12, 13 November 2007 (PST)&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Compiling from Source</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-09-12T15:24:06Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Windows (Microsoft Visual Studio C++, recommended method) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to compile TexGen and &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; of its modules, the following software is required:&lt;br /&gt;
&lt;br /&gt;
The following programs are needed to build TexGen:&lt;br /&gt;
* [http://www.cmake.org/ CMake]&lt;br /&gt;
* [http://www.swig.org/ SWIG]&lt;br /&gt;
&lt;br /&gt;
The following libraries are needed to link to TexGen:&lt;br /&gt;
* [http://www.vtk.org/ VTK]&lt;br /&gt;
* [http://www.wxwidgets.org/ wxWidgets]&lt;br /&gt;
* [http://www.opencascade.org/ OpenCascade]&lt;br /&gt;
* [http://www.python.org/ Python]&lt;br /&gt;
&lt;br /&gt;
However to perform a minimum build of TexGen with none of the additional modules you only require CMake and a C++ compiler. It is recommended to begin with a minimum build, once that is working try adding modules one at a time. A list of modules along with dependencies is shown below:&lt;br /&gt;
&lt;br /&gt;
* Python interface: Python, SWIG&lt;br /&gt;
* Renderer: VTK&lt;br /&gt;
* Export: OpenCascade&lt;br /&gt;
* GUI: wxWidgets, Renderer, Python interface&lt;br /&gt;
* Unit tests: CPPUnit&lt;br /&gt;
&lt;br /&gt;
A graphical representation of the modules and their dependencies can also be found in the [http://texgen.sourceforge.net/api/ TexGen API].&lt;br /&gt;
&lt;br /&gt;
If you want to get the source code from GitHub you will need to install [https://git-scm.com/downloads Git] by following the instructions below. Note that this is the very latest development source and so may it contain some bugs and unfinished features. However it is very easy to keep up to date with the latest version of TexGen using this method and will allow you to keep any modifications you have made to the source when updating. If you find a bug or implement new features that may be useful to the rest of the community please send a pull request and they will be incorporated into TexGen following review.&lt;br /&gt;
&lt;br /&gt;
Alternatively the stable source code can be downloaded as a [http://sourceforge.net/project/showfiles.php?group_id=181000 tarball]. Download the latest file release named &amp;#039;&amp;#039;texgen-3.x.x.tar.gz&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Windows (Microsoft Visual Studio C++, recommended method) ==&lt;br /&gt;
&lt;br /&gt;
[http://texgen.sourceforge.net/documents/HowToBuildTexGen.pdf Presentation giving a walkthrough for building TexGen from source] (Python 3 builds only)&lt;br /&gt;
 &lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
It is assumed that Microsoft Visual Studio is already installed.  If it isn&amp;#039;t and you plan to use it, then install it.  It may be possible to use the free [http://www.microsoft.com/express/ Visual Studio Express]; if anyone tries this and finds out one way or the other, please post the information either here or in the [http://texgen.sourceforge.net/phpBB2/index.php forum]. Brief instructions on how to install the various 3rd party libraries under windows are given below. Note that you do not need to install all of these in order to perform the minimal build. Only CMake is absolutely required.&lt;br /&gt;
&lt;br /&gt;
TexGen versions 3.11.0 onwards have been built with VS2017. All of the libraries used can be built with this version of Visual Studio.&lt;br /&gt;
&lt;br /&gt;
==== CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and install, selecting &amp;#039;Add CMake to the system PATH for all users&amp;#039; (select current user if this is not permissible on your system).&lt;br /&gt;
&lt;br /&gt;
==== Git ====&lt;br /&gt;
&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and install it.&lt;br /&gt;
&lt;br /&gt;
==== SWIG ====&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/ Download] the windows .zip files and extract to a suitable location (e.g. c:\Program Files\swigwin-4.0.2).  The current version of TexGen is built with version 4.0.2&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/ Download Python] and install.  Note that TexGen version 3.13 is built with Python 3.9. Versions prior to that were built with Python 2.7.&lt;br /&gt;
&lt;br /&gt;
For a Release build the include files and python39.lib provided with the standard installation can be used. &lt;br /&gt;
&lt;br /&gt;
For a Debug build it is necessary to build a debug version of Python. Download the latest [https://www.python.org/downloads/source/ source release] and follow the instructions in the README for building for your environment. For Visual Studio use the VS solution in the PCBuild folder. Version 3.13 was built with Python 3.9.9.&lt;br /&gt;
Note that for newer VS versions it is necessary to apply this [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/issues/161 patch] in order for the build to be successful.&lt;br /&gt;
&lt;br /&gt;
==== OpenCascade ====&lt;br /&gt;
&lt;br /&gt;
[https://dev.opencascade.org/release Download OpenCascade] and install; this extracts the files to a directory. If the installation doesn&amp;#039;t start automatically, run the &amp;#039;install.bat&amp;#039; file located the directory where the files where extracted (read &amp;#039;readme.htm&amp;#039; file in the same directory for more information).  Choose &amp;#039;complete installation&amp;#039; and tick the box to set the environment variables.  The current version of TexGen is built with OpenCascade version 7.0.0.&lt;br /&gt;
&lt;br /&gt;
==== VTK ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/louisepb/VTK-6.3 Download] version 6.3.0 of the source files and extract them. Instructions for building VTK using CMake are given on the [https://vtk.org/Wiki/VTK/Configure_and_Build VTK webpage] The following CMake settings should be set:&lt;br /&gt;
&lt;br /&gt;
 BUILD_EXAMPLES           OFF&lt;br /&gt;
 BUILD_SHARED_LIBS        OFF&lt;br /&gt;
 VTK_USE_MPEG2_ENCODER    OFF&lt;br /&gt;
 VTK_USE_PARALLEL         OFF&lt;br /&gt;
 VTK_USE_RENDERING        ON&lt;br /&gt;
 VTK_WRAP_JAVA            OFF&lt;br /&gt;
 VTK_WRAP_PYTHON          OFF&lt;br /&gt;
 VTK_WRAP_TCL             OFF&lt;br /&gt;
&lt;br /&gt;
(Version 6.3 is no longer available on the VTK webpage so the link above makes this available until TexGen has been modified to work with more recent VTK versions).&lt;br /&gt;
You may be able to get things working with different settings, however these are the settings I use and are known to work.&lt;br /&gt;
&lt;br /&gt;
==== wxWidgets ====&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/downloads/ Download] and install the windows version 3.0.5 of wxWidgets (wxMSW). It is then necessary to compile wxWidgets from source, detailed instructions on how to do this can be found in &amp;#039;install.txt&amp;#039; located in the &amp;#039;docs\msw&amp;#039; subfolder. The main steps are to open &amp;#039;wx.dsw&amp;#039; with MSVC located in the &amp;#039;build\msw&amp;#039; subfolder and compile both Release and Debug configurations (The configuration can be selected from the drop down box on the main toolbar in Visual Studio. Universal and DLL versions need not be compiled).&lt;br /&gt;
&lt;br /&gt;
==== CppUnit ====&lt;br /&gt;
To build the test module download [https://www.freedesktop.org/wiki/Software/cppunit/ cppunit]&lt;br /&gt;
&lt;br /&gt;
The VS solution is in the Examples folder. When this is run, accept the option to upgrade to your version of VS and then build. The resulting cppunit.lib file can then be found in the /lib folder.&lt;br /&gt;
&lt;br /&gt;
=== Checkout TexGen source code from GitHub ===&lt;br /&gt;
* Create a directory where you would like to store the TexGen source code in Windows Explorer. &lt;br /&gt;
* Open a Git Bash shell within that folder.&lt;br /&gt;
* Type &lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
A new TexGen folder will have been created which contains a downloaded copy of the TexGen repository.&lt;br /&gt;
&lt;br /&gt;
=== Configuring the build system with CMake ===&lt;br /&gt;
Run CMake from its shortcut on the Start menu. There are some general instructions on using CMake on the [https://cmake.org/cmake-tutorial/ CMake website] which are worth reading. You will need to fill in the source code location, this should point to where you checked out out the latest TexGen GitHub code or where you extracted the source code from the zip file. Also set where to place the binary files once they are compiled, this can be the same as the source directory, a subdirectory within the source directory or any other location.&lt;br /&gt;
&lt;br /&gt;
Once that is entered click &amp;#039;Configure&amp;#039; and choose the Visual Studio version which you have installed and click ok. You will initially get a number of error messages such as:&lt;br /&gt;
&lt;br /&gt;
 CMake Error: Swig was not found on the system. Please specify the location of Swig. (click OK)&lt;br /&gt;
 CMake Error: Error in configuration process, project files may be invalid. (click OK)&lt;br /&gt;
&lt;br /&gt;
This is normal, in order to get rid of the errors you will need to tell CMake where the various libraries you have installed can be found. This is done in the Cache Values sections.&lt;br /&gt;
&lt;br /&gt;
It is recommended to begin with a minimal build, this is achieved by setting the cache values as follows:&lt;br /&gt;
&lt;br /&gt;
 BUILD_CASCADE_EXPORT           OFF&lt;br /&gt;
 BUILD_DOCUMENTATION            OFF&lt;br /&gt;
 BUILD_EXAMPLES                 OFF&lt;br /&gt;
 BUILD_GUI                      OFF&lt;br /&gt;
 BUILD_PYTHON_INTERFACE         OFF&lt;br /&gt;
 BUILD_RENDERER                 OFF&lt;br /&gt;
 BUILD_SHARED                   ON&lt;br /&gt;
 BUILD_UNIT_TESTS               OFF&lt;br /&gt;
&lt;br /&gt;
Once these are set press configure again and you shouldn&amp;#039;t have any more errors/warnings. Press &amp;#039;OK&amp;#039; to generate the MSVC solution and project files. Configuring the various optional modules is explained in [[#Configuring optional modules]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring optional modules ===&lt;br /&gt;
&lt;br /&gt;
Once the minimal build is working you may want to switch on the optional modules. To do this open up CMake again and switch the modules you want to ON in the Cache Values then click Configure. You will most likely see some errors telling you it is unable to automatically find certain directories. You will need to specify these manually. An explanation of the different locations is listed below:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039;&amp;#039;&amp;#039; - This should be the folder where the TexGen python modules will be placed. Usually located in &amp;#039;C:\Python27\Lib\site-packages&amp;#039;, but this will depend on the version of Python installed and where you decided to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_DIR&amp;#039;&amp;#039;&amp;#039; -  This is the location where you extracted the SWIG executable. e.g. &amp;#039;C:\Program Files\swigwin-2.0.10&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_EXECUTABLE&amp;#039;&amp;#039;&amp;#039; - Same as root directory followed by &amp;#039;swig.exe&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_ROOT_DIR&amp;#039;&amp;#039;&amp;#039; - Location where you install wxWidgets. e.g. &amp;#039;C:/wxWidgets-3.0.4&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_LIB_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the wxWidgets libraries were compiled to, should be the same as the root directory followed by &amp;#039;lib/vc_lib&amp;#039; or &amp;#039;lib/vc_x64_lib&amp;#039; for 64-bit builds.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WX&amp;#039;&amp;#039;&amp;#039; - CMake may not automatically pick up the location of all libraries in which case these may need to be input manually. The image below shows the CMake GUI part way through specifying the library locations&lt;br /&gt;
[[Image:wxWidgetsCMake.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_INCLUDE_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade header files are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/inc&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/lib&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_DEBUG_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade debug libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/libd&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VTK_DIR&amp;#039;&amp;#039;&amp;#039; - Location of the VTK binary directory (note: not the source directory).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CPPUNIT_LIBRARY&amp;#039;&amp;#039;&amp;#039; - Location where the cppunit library file is located. e.g. &amp;#039;C:/cppunit-1.15.1/lib/cppunit.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After setting the directories manually, click on configure again. You may need to go through several iterations of changing parameters then pressing configure. Once you have finished changing parameters and have successfully pressed configure without error messages you can press the OK button to generate the build. Note: you can always come back to this at a later time to make changes.&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Find &amp;#039;TexGen.sln&amp;#039; which should be located in the directory where you told CMake to output the binary files to and open it with Microsoft Visual Studio.&lt;br /&gt;
&lt;br /&gt;
Set the configuration to &amp;#039;Release&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
If building the Graphical User Interface with Visual Studio 2008 or later open the properties page for the TexGenGUI project.  Select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Build the solution. Hopefully the project will have been compiled without errors.&lt;br /&gt;
&lt;br /&gt;
If you want to compile and execute the Graphical User Interface you will need to install it, you will not be able to execute it directly from the build directory. This is done by right click on the &amp;#039;INSTALL&amp;#039; project in the Solution Explorer and selecting Build. This will copy the Python modules into the Python site-packages directory so that they can be imported into scripts, and it will copy the executable along with other necessary files into &amp;#039;C:\Program Files\TexGen\&amp;#039; by default (this can be changed with the CMAKE_INSTALL_PREFIX cache value in CMake). TexGenGUI.exe should then be run from the installed location, if you attempt to run it directly from where it was compiled you will get some errors on launch.&lt;br /&gt;
&lt;br /&gt;
=== Building the documentation ===&lt;br /&gt;
&lt;br /&gt;
To build the documentation, [http://www.doxygen.nl/download.html Doxygen] and [https://graphviz.gitlab.io/download/ Graphviz] are required.  Open a command prompt in the &amp;#039;Docs&amp;#039; subdirectory of the source code and run &amp;#039;doxygen&amp;#039;. If the doxygen directory is not in your path, you must add it, or give the full path on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Integrating TexGen with ABAQUS ===&lt;br /&gt;
&lt;br /&gt;
If you are using ABAQUS and wish to use TexGen Python scripting from within the ABAQUS/CAE environment, there are a few extra steps to perform. This is because ABAQUS comes packaged with its own version of Python, so any modules added to your standalone python installation will not be accessible by ABAQUS. You must compile the TexGen Python modules with the same version of Python as ABAQUS uses. The following table shows which version of Python is used in specific ABAQUS versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ABAQUS Version !! Python Version&lt;br /&gt;
|-&lt;br /&gt;
| 6.6-1  || 2.3.3&lt;br /&gt;
|- &lt;br /&gt;
| 6.7-1  || 2.4.3 &lt;br /&gt;
|- &lt;br /&gt;
| 6.10-2 || 2.6.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.14-1 || 2.7.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If your version of ABAQUS is not listed in the table above you can type &amp;#039;abaqus python -V&amp;#039; to check what version of Python is used (then please edit this page to update the table). You can obtain specific versions of Python from https://www.python.org/downloads/source/ .&lt;br /&gt;
&lt;br /&gt;
Additionally you will need to place the TexGen python modules inside ABAQUS&amp;#039; version of python. There are a few ways to accomplish this, the easiest is perhaps to set the CMake cache variable &amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039; point to the ABAQUS&amp;#039; python directory, e.g.:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR     C:\Abaqus\6.14-1\Python\Lib\&lt;br /&gt;
&lt;br /&gt;
Then when you build the INSTALL project in MSVC++ it will automatically copy the TexGen python modules to the ABAQUS&amp;#039; Python. Alternatively you can simply copy the files manually or modify Python&amp;#039;s search path to include the TexGen python modules, e.g. In python:&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.path.append(&amp;#039;C:/Python27/Lib/site-packages/&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
There may also be a need to modify the file [source code location]/Installer/texgen.nsi.  The original version, lines 1-3 are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python25.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while on Jon&amp;#039;s version they are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python24.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error LNK1104: cannot open file &amp;#039;python25_d.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; The windows installation of Python doesn&amp;#039;t come with the debug library (&amp;#039;python25_d.lib&amp;#039;, the _d part means debug). You should be able to compile in release mode however. If you really want to compile in debug mode you will need to compile Python from source and link to that. Or you can try to link to the release library &amp;#039;python25.lib&amp;#039; instead, easiest way to do that is to copy &amp;#039;python25.lib&amp;#039; to &amp;#039;python25_d.lib&amp;#039; but this may cause problems during linking or execution.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error C1083: Cannot open include file: &amp;#039;wx/wxprec.h&amp;#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Make sure that you have compiled wxWidgets and that the wxWidgets_XXX cache variables are set correctly in CMake.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I do not have a &amp;#039;libd&amp;#039; folder in &amp;#039;ros/win32&amp;#039; for OpenCASCADE.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; If you do not compile OpenCASCADE yourself then this folder does not exist. However it can be ignored if you are only interested in building the release version of TexGen. If you really want to compile the debug version please refer to the OpenCASCADE documentation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; Why do I get the error message: &amp;quot;The parameter is incorrect.&amp;quot; when launching TexGenGUI.exe?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; In the TexGenGUI Property Pages select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I am getting error messages at the stage of building GUI:[ 86%] Building CXX object GUI/CMakeFiles/TexGenGUI.dir/PrecompiledHeaders.cpp.o&lt;br /&gt;
In file included from /usr/include/python2.4/pyconfig.h:6,&lt;br /&gt;
                 from /usr/include/python2.4/Python.h:8,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:30,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/usr/include/python2.4/pyconfig-64.h:823:1: warning: &amp;quot;_FILE_OFFSET_BITS&amp;quot; redefined&lt;br /&gt;
&amp;lt;command line&amp;gt;:1:1: warning: this is the location of the previous definition&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/wx.h:15,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/defs.h:42:13: error: #error &amp;quot;No Target! You should use wx-config program for compilation flags!&amp;quot;&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/cmndata.h:17,&lt;br /&gt;
                 from /data/include/wx-2.8/wx/wx.h:65,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/encinfo.h:64:6: error: #error &amp;quot;Unsupported toolkit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and lots of othe warnings and error messages afterwards.&lt;br /&gt;
&lt;br /&gt;
The location of wx-config is correct in cmake; wxWidgets installation appears to have been successful; the system is Red Hat Linux 64-bit&lt;br /&gt;
&lt;br /&gt;
== Windows (Cygwin and gcc, alternate method) ==&lt;br /&gt;
A limited build (without graphics) can be made under cygwin, this is a UNIX emulation environment available at [http://www.cygwin.com www.cygwin.com]. &lt;br /&gt;
This can exist peacefully next to the native windows version. &lt;br /&gt;
Cygwin creates a unix-style file system within your windows installation. If you choose c:/cygwin as your install directory, your HOME will be at c:/cygwin/home/&amp;lt;username&amp;gt;/. &lt;br /&gt;
&lt;br /&gt;
=== Download cygwin and install packages ===&lt;br /&gt;
Install gcc, g++, wget, make and cmake using the setup.exe program from the cygwin website. &lt;br /&gt;
For the mesh generator and python interface to work we currently need VTK and swig. &lt;br /&gt;
&lt;br /&gt;
This downloads and installs swig from source (when starting the cygwin shell you can paste this into the command line, otherwise write it to a file and run it with sh). &lt;br /&gt;
 mkdir progs&lt;br /&gt;
 cd progs &lt;br /&gt;
 SWIG=swig-1.3.31&lt;br /&gt;
 wget -nc http://kent.dl.sourceforge.net/sourceforge/swig/$SWIG.tar.gz&lt;br /&gt;
 tar xzvf $SWIG.tar.gz &lt;br /&gt;
 cd $SWIG&lt;br /&gt;
 ./configure &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This downloads and installs VTK from source, in the ccmake stage, use the cmake graphical commands to get a working install. &lt;br /&gt;
 VTK=vtk-6.3.0&lt;br /&gt;
 wget -nc https://vtk.org/download/&lt;br /&gt;
 tar xzvf $VTK.tar.gz&lt;br /&gt;
 mkdir vtkbin&lt;br /&gt;
 cd vtkbin&lt;br /&gt;
 ccmake ../VTK&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Install TexGen from source ===&lt;br /&gt;
Now we can proceed to install texgen, as an example we&amp;#039;ll work in ~/temp/texgen&lt;br /&gt;
 cd ~; mkdir temp; cd temp; mkdir texgen; cd texgen&lt;br /&gt;
 svn checkout svn//svn.code.sf.net/p/texgen/code/TexGen/trunk/ TexGen&lt;br /&gt;
 cd .. ; mkdir tbin; cd tbin&lt;br /&gt;
 ccmake ../texgen&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This should result in a working texgen install in ~/temp/texgen/tbin.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
=== Notes ===&lt;br /&gt;
If you are installing to a system where you don&amp;#039;t have root access (i.e. this computer does not belong to you) you won&amp;#039;t be able to install the software using the default configure script. This is because by default software is installed to the /usr/local directory. If you are not a systems administrator then you will quite rightly not have write access to this folder. All is not lost! You can still install software into your home directory. In order to do this you should always call the configure script with the following parameter: --prefix=$HOME. This goes for all the software to be installed below. All executables will then be placed in ~/bin, libraries in ~/lib, includes in ~/include, etc...&lt;br /&gt;
&lt;br /&gt;
In the guide below the parameter is included in italic. If you do in fact have root access then it is recommended to omit this parameter and install to the default directory so that other users will also have access to the software.&lt;br /&gt;
&lt;br /&gt;
=== Get TexGen from GitHub repository ===&lt;br /&gt;
&lt;br /&gt;
==== Install Git ====&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and unpack.&lt;br /&gt;
&lt;br /&gt;
==== Clone TexGen ====&lt;br /&gt;
Open a shell in folder you wish to place TexGen (e.g. ~/):&lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
&lt;br /&gt;
=== Compile source ===&lt;br /&gt;
&lt;br /&gt;
==== Install CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and unpack.&lt;br /&gt;
Open a shell in extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==== Compile TexGen core ====&lt;br /&gt;
Open a shell in the folder with the TexGen source code (e.g. ~/TexGen):&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 cd bin&lt;br /&gt;
 ccmake ../&lt;br /&gt;
Press &amp;#039;c&amp;#039; to configure. When a warning pops up telling you it can&amp;#039;t find such and such a file press &amp;#039;e&amp;#039; to close it. You will now need to specify which components of TexGen to build and where their dependencies can be found. Use the up and down arrows to move the caret and press enter to modify options. Do this to set BUILD_GUI, BUILD_PYTHON_INTERFACE and BUILD_RENDERER to OFF. You are basically telling CMake not to attempt to build these components, which means that you won&amp;#039;t need to have installed their dependencies.&lt;br /&gt;
&lt;br /&gt;
Similarly to the --prefix=$HOME parameter to the configure script, you can tell CMake to install TexGen to your home directory by changing CMAKE_INSTALL_PREFIX to ~/. Note that it won&amp;#039;t actually install anything until you get type make install.&lt;br /&gt;
&lt;br /&gt;
Now press &amp;#039;c&amp;#039; again to update the changes.&lt;br /&gt;
&lt;br /&gt;
Hopefully now that all the additional modules have been switched off no errors will be shown. Press &amp;#039;g&amp;#039; to generate the makefiles and exit. At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Note that at this point you have only built and installed the TexGen Core library which doesn&amp;#039;t actually do anything on its own. If you plan to incorporate TexGen into your own C++ program then this is enough, however if you would like to interface with TexGen from a Python script or Graphical User Interface then follow the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Compiling optional modules ===&lt;br /&gt;
==== Python interface ====&lt;br /&gt;
[http://www.python.org/download/ Download Python] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/download.html Download SWIG] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Open a shell in the folder where you called ccmake from for the first time (e.g. ~/TexGen/bin):&lt;br /&gt;
 ccmake ../&lt;br /&gt;
&lt;br /&gt;
Use the up and down arrows to reach BUILD_PYTHON_INTERFACE and press Enter to set it to ON. Then press &amp;#039;c&amp;#039; to configure. You will probably get a warning saying you need to specify the location of SWIG and/or Python, press &amp;#039;e&amp;#039; to close it.&lt;br /&gt;
&lt;br /&gt;
Set the PYTHON_INCLUDE_PATH, PYTHON_LIBRARY, PYTHON_SITEPACKAGES_DIR, SWIG_DIR and SWIG_EXECUTABLE parameters correctly where necessary. If you have installed packages to your home directory then they should look something like this:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_INCLUDE_PATH: ~/include/python2.7&lt;br /&gt;
 PYTHON_LIBRARY: ~/lib/python2.5/config/libpython2.7.a&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR: ~/lib/python2.7/site-packages&lt;br /&gt;
 SWIG_DIR: ~/bin&lt;br /&gt;
 SWIG_EXECUTABLE: ~/bin/swig&lt;br /&gt;
&lt;br /&gt;
Once that is done press &amp;#039;c&amp;#039; again. You may need perform this process over several iterations. When everything is set correctly press &amp;#039;g&amp;#039; to generate the makefiles.&lt;br /&gt;
&lt;br /&gt;
At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Assuming the build completed without errors you should now be able to access TexGen functions from within Python. In order to check everything worked as planned open Python in interactive mode by typing:&lt;br /&gt;
 python&lt;br /&gt;
&lt;br /&gt;
Then from within Python type:&lt;br /&gt;
 from TexGen.Core import *&lt;br /&gt;
 CTexGen.GetInstance().GetVersion()&lt;br /&gt;
&lt;br /&gt;
This should display the version of TexGen installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when linking _Core.so:&lt;br /&gt;
 libpython2.5.a(abstract.o): relocation R_X86_64_32 against `a local symbol&amp;#039;&lt;br /&gt;
 can not be used when making a shared object; recompile with -fPIC&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Try removing libpython2.5.a from the libraries to link to by setting PYTHON_LIBRARY to a bogus path, e.g.:&lt;br /&gt;
&lt;br /&gt;
PYTHON_LIBRARY: ~/&lt;br /&gt;
&lt;br /&gt;
By doing so you may receive a warning similar to this:&lt;br /&gt;
 Warning: Ignoring path found in link libraries for target: _Core, path is:&lt;br /&gt;
 /home/username. Expected a library name or a full path to a library name.&lt;br /&gt;
This warning may be ignored.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Compiling from Source</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-09-06T13:36:09Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* wxWidgets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to compile TexGen and &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; of its modules, the following software is required:&lt;br /&gt;
&lt;br /&gt;
The following programs are needed to build TexGen:&lt;br /&gt;
* [http://www.cmake.org/ CMake]&lt;br /&gt;
* [http://www.swig.org/ SWIG]&lt;br /&gt;
&lt;br /&gt;
The following libraries are needed to link to TexGen:&lt;br /&gt;
* [http://www.vtk.org/ VTK]&lt;br /&gt;
* [http://www.wxwidgets.org/ wxWidgets]&lt;br /&gt;
* [http://www.opencascade.org/ OpenCascade]&lt;br /&gt;
* [http://www.python.org/ Python]&lt;br /&gt;
&lt;br /&gt;
However to perform a minimum build of TexGen with none of the additional modules you only require CMake and a C++ compiler. It is recommended to begin with a minimum build, once that is working try adding modules one at a time. A list of modules along with dependencies is shown below:&lt;br /&gt;
&lt;br /&gt;
* Python interface: Python, SWIG&lt;br /&gt;
* Renderer: VTK&lt;br /&gt;
* Export: OpenCascade&lt;br /&gt;
* GUI: wxWidgets, Renderer, Python interface&lt;br /&gt;
* Unit tests: CPPUnit&lt;br /&gt;
&lt;br /&gt;
A graphical representation of the modules and their dependencies can also be found in the [http://texgen.sourceforge.net/api/ TexGen API].&lt;br /&gt;
&lt;br /&gt;
If you want to get the source code from GitHub you will need to install [https://git-scm.com/downloads Git] by following the instructions below. Note that this is the very latest development source and so may it contain some bugs and unfinished features. However it is very easy to keep up to date with the latest version of TexGen using this method and will allow you to keep any modifications you have made to the source when updating. If you find a bug or implement new features that may be useful to the rest of the community please send a pull request and they will be incorporated into TexGen following review.&lt;br /&gt;
&lt;br /&gt;
Alternatively the stable source code can be downloaded as a [http://sourceforge.net/project/showfiles.php?group_id=181000 tarball]. Download the latest file release named &amp;#039;&amp;#039;texgen-3.x.x.tar.gz&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Windows (Microsoft Visual Studio C++, recommended method) ==&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
It is assumed that Microsoft Visual Studio is already installed.  If it isn&amp;#039;t and you plan to use it, then install it.  It may be possible to use the free [http://www.microsoft.com/express/ Visual Studio Express]; if anyone tries this and finds out one way or the other, please post the information either here or in the [http://texgen.sourceforge.net/phpBB2/index.php forum]. Brief instructions on how to install the various 3rd party libraries under windows are given below. Note that you do not need to install all of these in order to perform the minimal build. Only CMake is absolutely required.&lt;br /&gt;
&lt;br /&gt;
TexGen versions 3.11.0 onwards have been built with VS2017. All of the libraries used can be built with this version of Visual Studio.&lt;br /&gt;
&lt;br /&gt;
==== CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and install, selecting &amp;#039;Add CMake to the system PATH for all users&amp;#039; (select current user if this is not permissible on your system).&lt;br /&gt;
&lt;br /&gt;
==== Git ====&lt;br /&gt;
&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and install it.&lt;br /&gt;
&lt;br /&gt;
==== SWIG ====&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/ Download] the windows .zip files and extract to a suitable location (e.g. c:\Program Files\swigwin-4.0.2).  The current version of TexGen is built with version 4.0.2&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/ Download Python] and install.  Note that TexGen version 3.13 is built with Python 3.9. Versions prior to that were built with Python 2.7.&lt;br /&gt;
&lt;br /&gt;
For a Release build the include files and python39.lib provided with the standard installation can be used. &lt;br /&gt;
&lt;br /&gt;
For a Debug build it is necessary to build a debug version of Python. Download the latest [https://www.python.org/downloads/source/ source release] and follow the instructions in the README for building for your environment. For Visual Studio use the VS solution in the PCBuild folder. Version 3.13 was built with Python 3.9.9.&lt;br /&gt;
Note that for newer VS versions it is necessary to apply this [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/issues/161 patch] in order for the build to be successful.&lt;br /&gt;
&lt;br /&gt;
==== OpenCascade ====&lt;br /&gt;
&lt;br /&gt;
[https://dev.opencascade.org/release Download OpenCascade] and install; this extracts the files to a directory. If the installation doesn&amp;#039;t start automatically, run the &amp;#039;install.bat&amp;#039; file located the directory where the files where extracted (read &amp;#039;readme.htm&amp;#039; file in the same directory for more information).  Choose &amp;#039;complete installation&amp;#039; and tick the box to set the environment variables.  The current version of TexGen is built with OpenCascade version 7.0.0.&lt;br /&gt;
&lt;br /&gt;
==== VTK ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/louisepb/VTK-6.3 Download] version 6.3.0 of the source files and extract them. Instructions for building VTK using CMake are given on the [https://vtk.org/Wiki/VTK/Configure_and_Build VTK webpage] The following CMake settings should be set:&lt;br /&gt;
&lt;br /&gt;
 BUILD_EXAMPLES           OFF&lt;br /&gt;
 BUILD_SHARED_LIBS        OFF&lt;br /&gt;
 VTK_USE_MPEG2_ENCODER    OFF&lt;br /&gt;
 VTK_USE_PARALLEL         OFF&lt;br /&gt;
 VTK_USE_RENDERING        ON&lt;br /&gt;
 VTK_WRAP_JAVA            OFF&lt;br /&gt;
 VTK_WRAP_PYTHON          OFF&lt;br /&gt;
 VTK_WRAP_TCL             OFF&lt;br /&gt;
&lt;br /&gt;
(Version 6.3 is no longer available on the VTK webpage so the link above makes this available until TexGen has been modified to work with more recent VTK versions).&lt;br /&gt;
You may be able to get things working with different settings, however these are the settings I use and are known to work.&lt;br /&gt;
&lt;br /&gt;
==== wxWidgets ====&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/downloads/ Download] and install the windows version 3.0.5 of wxWidgets (wxMSW). It is then necessary to compile wxWidgets from source, detailed instructions on how to do this can be found in &amp;#039;install.txt&amp;#039; located in the &amp;#039;docs\msw&amp;#039; subfolder. The main steps are to open &amp;#039;wx.dsw&amp;#039; with MSVC located in the &amp;#039;build\msw&amp;#039; subfolder and compile both Release and Debug configurations (The configuration can be selected from the drop down box on the main toolbar in Visual Studio. Universal and DLL versions need not be compiled).&lt;br /&gt;
&lt;br /&gt;
==== CppUnit ====&lt;br /&gt;
To build the test module download [https://www.freedesktop.org/wiki/Software/cppunit/ cppunit]&lt;br /&gt;
&lt;br /&gt;
The VS solution is in the Examples folder. When this is run, accept the option to upgrade to your version of VS and then build. The resulting cppunit.lib file can then be found in the /lib folder.&lt;br /&gt;
&lt;br /&gt;
=== Checkout TexGen source code from GitHub ===&lt;br /&gt;
* Create a directory where you would like to store the TexGen source code in Windows Explorer. &lt;br /&gt;
* Open a Git Bash shell within that folder.&lt;br /&gt;
* Type &lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
A new TexGen folder will have been created which contains a downloaded copy of the TexGen repository.&lt;br /&gt;
&lt;br /&gt;
=== Configuring the build system with CMake ===&lt;br /&gt;
Run CMake from its shortcut on the Start menu. There are some general instructions on using CMake on the [https://cmake.org/cmake-tutorial/ CMake website] which are worth reading. You will need to fill in the source code location, this should point to where you checked out out the latest TexGen GitHub code or where you extracted the source code from the zip file. Also set where to place the binary files once they are compiled, this can be the same as the source directory, a subdirectory within the source directory or any other location.&lt;br /&gt;
&lt;br /&gt;
Once that is entered click &amp;#039;Configure&amp;#039; and choose the Visual Studio version which you have installed and click ok. You will initially get a number of error messages such as:&lt;br /&gt;
&lt;br /&gt;
 CMake Error: Swig was not found on the system. Please specify the location of Swig. (click OK)&lt;br /&gt;
 CMake Error: Error in configuration process, project files may be invalid. (click OK)&lt;br /&gt;
&lt;br /&gt;
This is normal, in order to get rid of the errors you will need to tell CMake where the various libraries you have installed can be found. This is done in the Cache Values sections.&lt;br /&gt;
&lt;br /&gt;
It is recommended to begin with a minimal build, this is achieved by setting the cache values as follows:&lt;br /&gt;
&lt;br /&gt;
 BUILD_CASCADE_EXPORT           OFF&lt;br /&gt;
 BUILD_DOCUMENTATION            OFF&lt;br /&gt;
 BUILD_EXAMPLES                 OFF&lt;br /&gt;
 BUILD_GUI                      OFF&lt;br /&gt;
 BUILD_PYTHON_INTERFACE         OFF&lt;br /&gt;
 BUILD_RENDERER                 OFF&lt;br /&gt;
 BUILD_SHARED                   ON&lt;br /&gt;
 BUILD_UNIT_TESTS               OFF&lt;br /&gt;
&lt;br /&gt;
Once these are set press configure again and you shouldn&amp;#039;t have any more errors/warnings. Press &amp;#039;OK&amp;#039; to generate the MSVC solution and project files. Configuring the various optional modules is explained in [[#Configuring optional modules]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring optional modules ===&lt;br /&gt;
&lt;br /&gt;
Once the minimal build is working you may want to switch on the optional modules. To do this open up CMake again and switch the modules you want to ON in the Cache Values then click Configure. You will most likely see some errors telling you it is unable to automatically find certain directories. You will need to specify these manually. An explanation of the different locations is listed below:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039;&amp;#039;&amp;#039; - This should be the folder where the TexGen python modules will be placed. Usually located in &amp;#039;C:\Python27\Lib\site-packages&amp;#039;, but this will depend on the version of Python installed and where you decided to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_DIR&amp;#039;&amp;#039;&amp;#039; -  This is the location where you extracted the SWIG executable. e.g. &amp;#039;C:\Program Files\swigwin-2.0.10&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_EXECUTABLE&amp;#039;&amp;#039;&amp;#039; - Same as root directory followed by &amp;#039;swig.exe&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_ROOT_DIR&amp;#039;&amp;#039;&amp;#039; - Location where you install wxWidgets. e.g. &amp;#039;C:/wxWidgets-3.0.4&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_LIB_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the wxWidgets libraries were compiled to, should be the same as the root directory followed by &amp;#039;lib/vc_lib&amp;#039; or &amp;#039;lib/vc_x64_lib&amp;#039; for 64-bit builds.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WX&amp;#039;&amp;#039;&amp;#039; - CMake may not automatically pick up the location of all libraries in which case these may need to be input manually. The image below shows the CMake GUI part way through specifying the library locations&lt;br /&gt;
[[Image:wxWidgetsCMake.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_INCLUDE_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade header files are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/inc&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/lib&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_DEBUG_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade debug libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/libd&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VTK_DIR&amp;#039;&amp;#039;&amp;#039; - Location of the VTK binary directory (note: not the source directory).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CPPUNIT_LIBRARY&amp;#039;&amp;#039;&amp;#039; - Location where the cppunit library file is located. e.g. &amp;#039;C:/cppunit-1.15.1/lib/cppunit.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After setting the directories manually, click on configure again. You may need to go through several iterations of changing parameters then pressing configure. Once you have finished changing parameters and have successfully pressed configure without error messages you can press the OK button to generate the build. Note: you can always come back to this at a later time to make changes.&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Find &amp;#039;TexGen.sln&amp;#039; which should be located in the directory where you told CMake to output the binary files to and open it with Microsoft Visual Studio.&lt;br /&gt;
&lt;br /&gt;
Set the configuration to &amp;#039;Release&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
If building the Graphical User Interface with Visual Studio 2008 or later open the properties page for the TexGenGUI project.  Select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Build the solution. Hopefully the project will have been compiled without errors.&lt;br /&gt;
&lt;br /&gt;
If you want to compile and execute the Graphical User Interface you will need to install it, you will not be able to execute it directly from the build directory. This is done by right click on the &amp;#039;INSTALL&amp;#039; project in the Solution Explorer and selecting Build. This will copy the Python modules into the Python site-packages directory so that they can be imported into scripts, and it will copy the executable along with other necessary files into &amp;#039;C:\Program Files\TexGen\&amp;#039; by default (this can be changed with the CMAKE_INSTALL_PREFIX cache value in CMake). TexGenGUI.exe should then be run from the installed location, if you attempt to run it directly from where it was compiled you will get some errors on launch.&lt;br /&gt;
&lt;br /&gt;
=== Building the documentation ===&lt;br /&gt;
&lt;br /&gt;
To build the documentation, [http://www.doxygen.nl/download.html Doxygen] and [https://graphviz.gitlab.io/download/ Graphviz] are required.  Open a command prompt in the &amp;#039;Docs&amp;#039; subdirectory of the source code and run &amp;#039;doxygen&amp;#039;. If the doxygen directory is not in your path, you must add it, or give the full path on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Integrating TexGen with ABAQUS ===&lt;br /&gt;
&lt;br /&gt;
If you are using ABAQUS and wish to use TexGen Python scripting from within the ABAQUS/CAE environment, there are a few extra steps to perform. This is because ABAQUS comes packaged with its own version of Python, so any modules added to your standalone python installation will not be accessible by ABAQUS. You must compile the TexGen Python modules with the same version of Python as ABAQUS uses. The following table shows which version of Python is used in specific ABAQUS versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ABAQUS Version !! Python Version&lt;br /&gt;
|-&lt;br /&gt;
| 6.6-1  || 2.3.3&lt;br /&gt;
|- &lt;br /&gt;
| 6.7-1  || 2.4.3 &lt;br /&gt;
|- &lt;br /&gt;
| 6.10-2 || 2.6.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.14-1 || 2.7.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If your version of ABAQUS is not listed in the table above you can type &amp;#039;abaqus python -V&amp;#039; to check what version of Python is used (then please edit this page to update the table). You can obtain specific versions of Python from https://www.python.org/downloads/source/ .&lt;br /&gt;
&lt;br /&gt;
Additionally you will need to place the TexGen python modules inside ABAQUS&amp;#039; version of python. There are a few ways to accomplish this, the easiest is perhaps to set the CMake cache variable &amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039; point to the ABAQUS&amp;#039; python directory, e.g.:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR     C:\Abaqus\6.14-1\Python\Lib\&lt;br /&gt;
&lt;br /&gt;
Then when you build the INSTALL project in MSVC++ it will automatically copy the TexGen python modules to the ABAQUS&amp;#039; Python. Alternatively you can simply copy the files manually or modify Python&amp;#039;s search path to include the TexGen python modules, e.g. In python:&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.path.append(&amp;#039;C:/Python27/Lib/site-packages/&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
There may also be a need to modify the file [source code location]/Installer/texgen.nsi.  The original version, lines 1-3 are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python25.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while on Jon&amp;#039;s version they are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python24.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error LNK1104: cannot open file &amp;#039;python25_d.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; The windows installation of Python doesn&amp;#039;t come with the debug library (&amp;#039;python25_d.lib&amp;#039;, the _d part means debug). You should be able to compile in release mode however. If you really want to compile in debug mode you will need to compile Python from source and link to that. Or you can try to link to the release library &amp;#039;python25.lib&amp;#039; instead, easiest way to do that is to copy &amp;#039;python25.lib&amp;#039; to &amp;#039;python25_d.lib&amp;#039; but this may cause problems during linking or execution.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error C1083: Cannot open include file: &amp;#039;wx/wxprec.h&amp;#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Make sure that you have compiled wxWidgets and that the wxWidgets_XXX cache variables are set correctly in CMake.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I do not have a &amp;#039;libd&amp;#039; folder in &amp;#039;ros/win32&amp;#039; for OpenCASCADE.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; If you do not compile OpenCASCADE yourself then this folder does not exist. However it can be ignored if you are only interested in building the release version of TexGen. If you really want to compile the debug version please refer to the OpenCASCADE documentation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; Why do I get the error message: &amp;quot;The parameter is incorrect.&amp;quot; when launching TexGenGUI.exe?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; In the TexGenGUI Property Pages select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I am getting error messages at the stage of building GUI:[ 86%] Building CXX object GUI/CMakeFiles/TexGenGUI.dir/PrecompiledHeaders.cpp.o&lt;br /&gt;
In file included from /usr/include/python2.4/pyconfig.h:6,&lt;br /&gt;
                 from /usr/include/python2.4/Python.h:8,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:30,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/usr/include/python2.4/pyconfig-64.h:823:1: warning: &amp;quot;_FILE_OFFSET_BITS&amp;quot; redefined&lt;br /&gt;
&amp;lt;command line&amp;gt;:1:1: warning: this is the location of the previous definition&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/wx.h:15,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/defs.h:42:13: error: #error &amp;quot;No Target! You should use wx-config program for compilation flags!&amp;quot;&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/cmndata.h:17,&lt;br /&gt;
                 from /data/include/wx-2.8/wx/wx.h:65,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/encinfo.h:64:6: error: #error &amp;quot;Unsupported toolkit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and lots of othe warnings and error messages afterwards.&lt;br /&gt;
&lt;br /&gt;
The location of wx-config is correct in cmake; wxWidgets installation appears to have been successful; the system is Red Hat Linux 64-bit&lt;br /&gt;
&lt;br /&gt;
== Windows (Cygwin and gcc, alternate method) ==&lt;br /&gt;
A limited build (without graphics) can be made under cygwin, this is a UNIX emulation environment available at [http://www.cygwin.com www.cygwin.com]. &lt;br /&gt;
This can exist peacefully next to the native windows version. &lt;br /&gt;
Cygwin creates a unix-style file system within your windows installation. If you choose c:/cygwin as your install directory, your HOME will be at c:/cygwin/home/&amp;lt;username&amp;gt;/. &lt;br /&gt;
&lt;br /&gt;
=== Download cygwin and install packages ===&lt;br /&gt;
Install gcc, g++, wget, make and cmake using the setup.exe program from the cygwin website. &lt;br /&gt;
For the mesh generator and python interface to work we currently need VTK and swig. &lt;br /&gt;
&lt;br /&gt;
This downloads and installs swig from source (when starting the cygwin shell you can paste this into the command line, otherwise write it to a file and run it with sh). &lt;br /&gt;
 mkdir progs&lt;br /&gt;
 cd progs &lt;br /&gt;
 SWIG=swig-1.3.31&lt;br /&gt;
 wget -nc http://kent.dl.sourceforge.net/sourceforge/swig/$SWIG.tar.gz&lt;br /&gt;
 tar xzvf $SWIG.tar.gz &lt;br /&gt;
 cd $SWIG&lt;br /&gt;
 ./configure &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This downloads and installs VTK from source, in the ccmake stage, use the cmake graphical commands to get a working install. &lt;br /&gt;
 VTK=vtk-6.3.0&lt;br /&gt;
 wget -nc https://vtk.org/download/&lt;br /&gt;
 tar xzvf $VTK.tar.gz&lt;br /&gt;
 mkdir vtkbin&lt;br /&gt;
 cd vtkbin&lt;br /&gt;
 ccmake ../VTK&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Install TexGen from source ===&lt;br /&gt;
Now we can proceed to install texgen, as an example we&amp;#039;ll work in ~/temp/texgen&lt;br /&gt;
 cd ~; mkdir temp; cd temp; mkdir texgen; cd texgen&lt;br /&gt;
 svn checkout svn//svn.code.sf.net/p/texgen/code/TexGen/trunk/ TexGen&lt;br /&gt;
 cd .. ; mkdir tbin; cd tbin&lt;br /&gt;
 ccmake ../texgen&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This should result in a working texgen install in ~/temp/texgen/tbin.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
=== Notes ===&lt;br /&gt;
If you are installing to a system where you don&amp;#039;t have root access (i.e. this computer does not belong to you) you won&amp;#039;t be able to install the software using the default configure script. This is because by default software is installed to the /usr/local directory. If you are not a systems administrator then you will quite rightly not have write access to this folder. All is not lost! You can still install software into your home directory. In order to do this you should always call the configure script with the following parameter: --prefix=$HOME. This goes for all the software to be installed below. All executables will then be placed in ~/bin, libraries in ~/lib, includes in ~/include, etc...&lt;br /&gt;
&lt;br /&gt;
In the guide below the parameter is included in italic. If you do in fact have root access then it is recommended to omit this parameter and install to the default directory so that other users will also have access to the software.&lt;br /&gt;
&lt;br /&gt;
=== Get TexGen from GitHub repository ===&lt;br /&gt;
&lt;br /&gt;
==== Install Git ====&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and unpack.&lt;br /&gt;
&lt;br /&gt;
==== Clone TexGen ====&lt;br /&gt;
Open a shell in folder you wish to place TexGen (e.g. ~/):&lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
&lt;br /&gt;
=== Compile source ===&lt;br /&gt;
&lt;br /&gt;
==== Install CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and unpack.&lt;br /&gt;
Open a shell in extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==== Compile TexGen core ====&lt;br /&gt;
Open a shell in the folder with the TexGen source code (e.g. ~/TexGen):&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 cd bin&lt;br /&gt;
 ccmake ../&lt;br /&gt;
Press &amp;#039;c&amp;#039; to configure. When a warning pops up telling you it can&amp;#039;t find such and such a file press &amp;#039;e&amp;#039; to close it. You will now need to specify which components of TexGen to build and where their dependencies can be found. Use the up and down arrows to move the caret and press enter to modify options. Do this to set BUILD_GUI, BUILD_PYTHON_INTERFACE and BUILD_RENDERER to OFF. You are basically telling CMake not to attempt to build these components, which means that you won&amp;#039;t need to have installed their dependencies.&lt;br /&gt;
&lt;br /&gt;
Similarly to the --prefix=$HOME parameter to the configure script, you can tell CMake to install TexGen to your home directory by changing CMAKE_INSTALL_PREFIX to ~/. Note that it won&amp;#039;t actually install anything until you get type make install.&lt;br /&gt;
&lt;br /&gt;
Now press &amp;#039;c&amp;#039; again to update the changes.&lt;br /&gt;
&lt;br /&gt;
Hopefully now that all the additional modules have been switched off no errors will be shown. Press &amp;#039;g&amp;#039; to generate the makefiles and exit. At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Note that at this point you have only built and installed the TexGen Core library which doesn&amp;#039;t actually do anything on its own. If you plan to incorporate TexGen into your own C++ program then this is enough, however if you would like to interface with TexGen from a Python script or Graphical User Interface then follow the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Compiling optional modules ===&lt;br /&gt;
==== Python interface ====&lt;br /&gt;
[http://www.python.org/download/ Download Python] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/download.html Download SWIG] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Open a shell in the folder where you called ccmake from for the first time (e.g. ~/TexGen/bin):&lt;br /&gt;
 ccmake ../&lt;br /&gt;
&lt;br /&gt;
Use the up and down arrows to reach BUILD_PYTHON_INTERFACE and press Enter to set it to ON. Then press &amp;#039;c&amp;#039; to configure. You will probably get a warning saying you need to specify the location of SWIG and/or Python, press &amp;#039;e&amp;#039; to close it.&lt;br /&gt;
&lt;br /&gt;
Set the PYTHON_INCLUDE_PATH, PYTHON_LIBRARY, PYTHON_SITEPACKAGES_DIR, SWIG_DIR and SWIG_EXECUTABLE parameters correctly where necessary. If you have installed packages to your home directory then they should look something like this:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_INCLUDE_PATH: ~/include/python2.7&lt;br /&gt;
 PYTHON_LIBRARY: ~/lib/python2.5/config/libpython2.7.a&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR: ~/lib/python2.7/site-packages&lt;br /&gt;
 SWIG_DIR: ~/bin&lt;br /&gt;
 SWIG_EXECUTABLE: ~/bin/swig&lt;br /&gt;
&lt;br /&gt;
Once that is done press &amp;#039;c&amp;#039; again. You may need perform this process over several iterations. When everything is set correctly press &amp;#039;g&amp;#039; to generate the makefiles.&lt;br /&gt;
&lt;br /&gt;
At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Assuming the build completed without errors you should now be able to access TexGen functions from within Python. In order to check everything worked as planned open Python in interactive mode by typing:&lt;br /&gt;
 python&lt;br /&gt;
&lt;br /&gt;
Then from within Python type:&lt;br /&gt;
 from TexGen.Core import *&lt;br /&gt;
 CTexGen.GetInstance().GetVersion()&lt;br /&gt;
&lt;br /&gt;
This should display the version of TexGen installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when linking _Core.so:&lt;br /&gt;
 libpython2.5.a(abstract.o): relocation R_X86_64_32 against `a local symbol&amp;#039;&lt;br /&gt;
 can not be used when making a shared object; recompile with -fPIC&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Try removing libpython2.5.a from the libraries to link to by setting PYTHON_LIBRARY to a bogus path, e.g.:&lt;br /&gt;
&lt;br /&gt;
PYTHON_LIBRARY: ~/&lt;br /&gt;
&lt;br /&gt;
By doing so you may receive a warning similar to this:&lt;br /&gt;
 Warning: Ignoring path found in link libraries for target: _Core, path is:&lt;br /&gt;
 /home/username. Expected a library name or a full path to a library name.&lt;br /&gt;
This warning may be ignored.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Compiling from Source</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-09-06T13:30:59Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* OpenCascade */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to compile TexGen and &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; of its modules, the following software is required:&lt;br /&gt;
&lt;br /&gt;
The following programs are needed to build TexGen:&lt;br /&gt;
* [http://www.cmake.org/ CMake]&lt;br /&gt;
* [http://www.swig.org/ SWIG]&lt;br /&gt;
&lt;br /&gt;
The following libraries are needed to link to TexGen:&lt;br /&gt;
* [http://www.vtk.org/ VTK]&lt;br /&gt;
* [http://www.wxwidgets.org/ wxWidgets]&lt;br /&gt;
* [http://www.opencascade.org/ OpenCascade]&lt;br /&gt;
* [http://www.python.org/ Python]&lt;br /&gt;
&lt;br /&gt;
However to perform a minimum build of TexGen with none of the additional modules you only require CMake and a C++ compiler. It is recommended to begin with a minimum build, once that is working try adding modules one at a time. A list of modules along with dependencies is shown below:&lt;br /&gt;
&lt;br /&gt;
* Python interface: Python, SWIG&lt;br /&gt;
* Renderer: VTK&lt;br /&gt;
* Export: OpenCascade&lt;br /&gt;
* GUI: wxWidgets, Renderer, Python interface&lt;br /&gt;
* Unit tests: CPPUnit&lt;br /&gt;
&lt;br /&gt;
A graphical representation of the modules and their dependencies can also be found in the [http://texgen.sourceforge.net/api/ TexGen API].&lt;br /&gt;
&lt;br /&gt;
If you want to get the source code from GitHub you will need to install [https://git-scm.com/downloads Git] by following the instructions below. Note that this is the very latest development source and so may it contain some bugs and unfinished features. However it is very easy to keep up to date with the latest version of TexGen using this method and will allow you to keep any modifications you have made to the source when updating. If you find a bug or implement new features that may be useful to the rest of the community please send a pull request and they will be incorporated into TexGen following review.&lt;br /&gt;
&lt;br /&gt;
Alternatively the stable source code can be downloaded as a [http://sourceforge.net/project/showfiles.php?group_id=181000 tarball]. Download the latest file release named &amp;#039;&amp;#039;texgen-3.x.x.tar.gz&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Windows (Microsoft Visual Studio C++, recommended method) ==&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
It is assumed that Microsoft Visual Studio is already installed.  If it isn&amp;#039;t and you plan to use it, then install it.  It may be possible to use the free [http://www.microsoft.com/express/ Visual Studio Express]; if anyone tries this and finds out one way or the other, please post the information either here or in the [http://texgen.sourceforge.net/phpBB2/index.php forum]. Brief instructions on how to install the various 3rd party libraries under windows are given below. Note that you do not need to install all of these in order to perform the minimal build. Only CMake is absolutely required.&lt;br /&gt;
&lt;br /&gt;
TexGen versions 3.11.0 onwards have been built with VS2017. All of the libraries used can be built with this version of Visual Studio.&lt;br /&gt;
&lt;br /&gt;
==== CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and install, selecting &amp;#039;Add CMake to the system PATH for all users&amp;#039; (select current user if this is not permissible on your system).&lt;br /&gt;
&lt;br /&gt;
==== Git ====&lt;br /&gt;
&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and install it.&lt;br /&gt;
&lt;br /&gt;
==== SWIG ====&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/ Download] the windows .zip files and extract to a suitable location (e.g. c:\Program Files\swigwin-4.0.2).  The current version of TexGen is built with version 4.0.2&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/ Download Python] and install.  Note that TexGen version 3.13 is built with Python 3.9. Versions prior to that were built with Python 2.7.&lt;br /&gt;
&lt;br /&gt;
For a Release build the include files and python39.lib provided with the standard installation can be used. &lt;br /&gt;
&lt;br /&gt;
For a Debug build it is necessary to build a debug version of Python. Download the latest [https://www.python.org/downloads/source/ source release] and follow the instructions in the README for building for your environment. For Visual Studio use the VS solution in the PCBuild folder. Version 3.13 was built with Python 3.9.9.&lt;br /&gt;
Note that for newer VS versions it is necessary to apply this [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/issues/161 patch] in order for the build to be successful.&lt;br /&gt;
&lt;br /&gt;
==== OpenCascade ====&lt;br /&gt;
&lt;br /&gt;
[https://dev.opencascade.org/release Download OpenCascade] and install; this extracts the files to a directory. If the installation doesn&amp;#039;t start automatically, run the &amp;#039;install.bat&amp;#039; file located the directory where the files where extracted (read &amp;#039;readme.htm&amp;#039; file in the same directory for more information).  Choose &amp;#039;complete installation&amp;#039; and tick the box to set the environment variables.  The current version of TexGen is built with OpenCascade version 7.0.0.&lt;br /&gt;
&lt;br /&gt;
==== VTK ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/louisepb/VTK-6.3 Download] version 6.3.0 of the source files and extract them. Instructions for building VTK using CMake are given on the [https://vtk.org/Wiki/VTK/Configure_and_Build VTK webpage] The following CMake settings should be set:&lt;br /&gt;
&lt;br /&gt;
 BUILD_EXAMPLES           OFF&lt;br /&gt;
 BUILD_SHARED_LIBS        OFF&lt;br /&gt;
 VTK_USE_MPEG2_ENCODER    OFF&lt;br /&gt;
 VTK_USE_PARALLEL         OFF&lt;br /&gt;
 VTK_USE_RENDERING        ON&lt;br /&gt;
 VTK_WRAP_JAVA            OFF&lt;br /&gt;
 VTK_WRAP_PYTHON          OFF&lt;br /&gt;
 VTK_WRAP_TCL             OFF&lt;br /&gt;
&lt;br /&gt;
(Version 6.3 is no longer available on the VTK webpage so the link above makes this available until TexGen has been modified to work with more recent VTK versions).&lt;br /&gt;
You may be able to get things working with different settings, however these are the settings I use and are known to work.&lt;br /&gt;
&lt;br /&gt;
==== wxWidgets ====&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/downloads/ Download] and install the windows version 3.0.4 of wxWidgets (wxMSW). It is then necessary to compile wxWidgets from source, detailed instructions on how to do this can be found in &amp;#039;install.txt&amp;#039; located in the &amp;#039;docs\msw&amp;#039; subfolder. The main steps are to open &amp;#039;wx.dsw&amp;#039; with MSVC located in the &amp;#039;build\msw&amp;#039; subfolder and compile both Release and Debug configurations (The configuration can be selected from the drop down box on the main toolbar in Visual Studio. Universal and DLL versions need not be compiled).&lt;br /&gt;
&lt;br /&gt;
==== CppUnit ====&lt;br /&gt;
To build the test module download [https://www.freedesktop.org/wiki/Software/cppunit/ cppunit]&lt;br /&gt;
&lt;br /&gt;
The VS solution is in the Examples folder. When this is run, accept the option to upgrade to your version of VS and then build. The resulting cppunit.lib file can then be found in the /lib folder.&lt;br /&gt;
&lt;br /&gt;
=== Checkout TexGen source code from GitHub ===&lt;br /&gt;
* Create a directory where you would like to store the TexGen source code in Windows Explorer. &lt;br /&gt;
* Open a Git Bash shell within that folder.&lt;br /&gt;
* Type &lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
A new TexGen folder will have been created which contains a downloaded copy of the TexGen repository.&lt;br /&gt;
&lt;br /&gt;
=== Configuring the build system with CMake ===&lt;br /&gt;
Run CMake from its shortcut on the Start menu. There are some general instructions on using CMake on the [https://cmake.org/cmake-tutorial/ CMake website] which are worth reading. You will need to fill in the source code location, this should point to where you checked out out the latest TexGen GitHub code or where you extracted the source code from the zip file. Also set where to place the binary files once they are compiled, this can be the same as the source directory, a subdirectory within the source directory or any other location.&lt;br /&gt;
&lt;br /&gt;
Once that is entered click &amp;#039;Configure&amp;#039; and choose the Visual Studio version which you have installed and click ok. You will initially get a number of error messages such as:&lt;br /&gt;
&lt;br /&gt;
 CMake Error: Swig was not found on the system. Please specify the location of Swig. (click OK)&lt;br /&gt;
 CMake Error: Error in configuration process, project files may be invalid. (click OK)&lt;br /&gt;
&lt;br /&gt;
This is normal, in order to get rid of the errors you will need to tell CMake where the various libraries you have installed can be found. This is done in the Cache Values sections.&lt;br /&gt;
&lt;br /&gt;
It is recommended to begin with a minimal build, this is achieved by setting the cache values as follows:&lt;br /&gt;
&lt;br /&gt;
 BUILD_CASCADE_EXPORT           OFF&lt;br /&gt;
 BUILD_DOCUMENTATION            OFF&lt;br /&gt;
 BUILD_EXAMPLES                 OFF&lt;br /&gt;
 BUILD_GUI                      OFF&lt;br /&gt;
 BUILD_PYTHON_INTERFACE         OFF&lt;br /&gt;
 BUILD_RENDERER                 OFF&lt;br /&gt;
 BUILD_SHARED                   ON&lt;br /&gt;
 BUILD_UNIT_TESTS               OFF&lt;br /&gt;
&lt;br /&gt;
Once these are set press configure again and you shouldn&amp;#039;t have any more errors/warnings. Press &amp;#039;OK&amp;#039; to generate the MSVC solution and project files. Configuring the various optional modules is explained in [[#Configuring optional modules]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring optional modules ===&lt;br /&gt;
&lt;br /&gt;
Once the minimal build is working you may want to switch on the optional modules. To do this open up CMake again and switch the modules you want to ON in the Cache Values then click Configure. You will most likely see some errors telling you it is unable to automatically find certain directories. You will need to specify these manually. An explanation of the different locations is listed below:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039;&amp;#039;&amp;#039; - This should be the folder where the TexGen python modules will be placed. Usually located in &amp;#039;C:\Python27\Lib\site-packages&amp;#039;, but this will depend on the version of Python installed and where you decided to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_DIR&amp;#039;&amp;#039;&amp;#039; -  This is the location where you extracted the SWIG executable. e.g. &amp;#039;C:\Program Files\swigwin-2.0.10&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_EXECUTABLE&amp;#039;&amp;#039;&amp;#039; - Same as root directory followed by &amp;#039;swig.exe&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_ROOT_DIR&amp;#039;&amp;#039;&amp;#039; - Location where you install wxWidgets. e.g. &amp;#039;C:/wxWidgets-3.0.4&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_LIB_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the wxWidgets libraries were compiled to, should be the same as the root directory followed by &amp;#039;lib/vc_lib&amp;#039; or &amp;#039;lib/vc_x64_lib&amp;#039; for 64-bit builds.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WX&amp;#039;&amp;#039;&amp;#039; - CMake may not automatically pick up the location of all libraries in which case these may need to be input manually. The image below shows the CMake GUI part way through specifying the library locations&lt;br /&gt;
[[Image:wxWidgetsCMake.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_INCLUDE_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade header files are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/inc&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/lib&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_DEBUG_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade debug libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/libd&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VTK_DIR&amp;#039;&amp;#039;&amp;#039; - Location of the VTK binary directory (note: not the source directory).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CPPUNIT_LIBRARY&amp;#039;&amp;#039;&amp;#039; - Location where the cppunit library file is located. e.g. &amp;#039;C:/cppunit-1.15.1/lib/cppunit.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After setting the directories manually, click on configure again. You may need to go through several iterations of changing parameters then pressing configure. Once you have finished changing parameters and have successfully pressed configure without error messages you can press the OK button to generate the build. Note: you can always come back to this at a later time to make changes.&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Find &amp;#039;TexGen.sln&amp;#039; which should be located in the directory where you told CMake to output the binary files to and open it with Microsoft Visual Studio.&lt;br /&gt;
&lt;br /&gt;
Set the configuration to &amp;#039;Release&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
If building the Graphical User Interface with Visual Studio 2008 or later open the properties page for the TexGenGUI project.  Select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Build the solution. Hopefully the project will have been compiled without errors.&lt;br /&gt;
&lt;br /&gt;
If you want to compile and execute the Graphical User Interface you will need to install it, you will not be able to execute it directly from the build directory. This is done by right click on the &amp;#039;INSTALL&amp;#039; project in the Solution Explorer and selecting Build. This will copy the Python modules into the Python site-packages directory so that they can be imported into scripts, and it will copy the executable along with other necessary files into &amp;#039;C:\Program Files\TexGen\&amp;#039; by default (this can be changed with the CMAKE_INSTALL_PREFIX cache value in CMake). TexGenGUI.exe should then be run from the installed location, if you attempt to run it directly from where it was compiled you will get some errors on launch.&lt;br /&gt;
&lt;br /&gt;
=== Building the documentation ===&lt;br /&gt;
&lt;br /&gt;
To build the documentation, [http://www.doxygen.nl/download.html Doxygen] and [https://graphviz.gitlab.io/download/ Graphviz] are required.  Open a command prompt in the &amp;#039;Docs&amp;#039; subdirectory of the source code and run &amp;#039;doxygen&amp;#039;. If the doxygen directory is not in your path, you must add it, or give the full path on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Integrating TexGen with ABAQUS ===&lt;br /&gt;
&lt;br /&gt;
If you are using ABAQUS and wish to use TexGen Python scripting from within the ABAQUS/CAE environment, there are a few extra steps to perform. This is because ABAQUS comes packaged with its own version of Python, so any modules added to your standalone python installation will not be accessible by ABAQUS. You must compile the TexGen Python modules with the same version of Python as ABAQUS uses. The following table shows which version of Python is used in specific ABAQUS versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ABAQUS Version !! Python Version&lt;br /&gt;
|-&lt;br /&gt;
| 6.6-1  || 2.3.3&lt;br /&gt;
|- &lt;br /&gt;
| 6.7-1  || 2.4.3 &lt;br /&gt;
|- &lt;br /&gt;
| 6.10-2 || 2.6.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.14-1 || 2.7.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If your version of ABAQUS is not listed in the table above you can type &amp;#039;abaqus python -V&amp;#039; to check what version of Python is used (then please edit this page to update the table). You can obtain specific versions of Python from https://www.python.org/downloads/source/ .&lt;br /&gt;
&lt;br /&gt;
Additionally you will need to place the TexGen python modules inside ABAQUS&amp;#039; version of python. There are a few ways to accomplish this, the easiest is perhaps to set the CMake cache variable &amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039; point to the ABAQUS&amp;#039; python directory, e.g.:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR     C:\Abaqus\6.14-1\Python\Lib\&lt;br /&gt;
&lt;br /&gt;
Then when you build the INSTALL project in MSVC++ it will automatically copy the TexGen python modules to the ABAQUS&amp;#039; Python. Alternatively you can simply copy the files manually or modify Python&amp;#039;s search path to include the TexGen python modules, e.g. In python:&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.path.append(&amp;#039;C:/Python27/Lib/site-packages/&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
There may also be a need to modify the file [source code location]/Installer/texgen.nsi.  The original version, lines 1-3 are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python25.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while on Jon&amp;#039;s version they are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python24.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error LNK1104: cannot open file &amp;#039;python25_d.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; The windows installation of Python doesn&amp;#039;t come with the debug library (&amp;#039;python25_d.lib&amp;#039;, the _d part means debug). You should be able to compile in release mode however. If you really want to compile in debug mode you will need to compile Python from source and link to that. Or you can try to link to the release library &amp;#039;python25.lib&amp;#039; instead, easiest way to do that is to copy &amp;#039;python25.lib&amp;#039; to &amp;#039;python25_d.lib&amp;#039; but this may cause problems during linking or execution.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error C1083: Cannot open include file: &amp;#039;wx/wxprec.h&amp;#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Make sure that you have compiled wxWidgets and that the wxWidgets_XXX cache variables are set correctly in CMake.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I do not have a &amp;#039;libd&amp;#039; folder in &amp;#039;ros/win32&amp;#039; for OpenCASCADE.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; If you do not compile OpenCASCADE yourself then this folder does not exist. However it can be ignored if you are only interested in building the release version of TexGen. If you really want to compile the debug version please refer to the OpenCASCADE documentation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; Why do I get the error message: &amp;quot;The parameter is incorrect.&amp;quot; when launching TexGenGUI.exe?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; In the TexGenGUI Property Pages select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I am getting error messages at the stage of building GUI:[ 86%] Building CXX object GUI/CMakeFiles/TexGenGUI.dir/PrecompiledHeaders.cpp.o&lt;br /&gt;
In file included from /usr/include/python2.4/pyconfig.h:6,&lt;br /&gt;
                 from /usr/include/python2.4/Python.h:8,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:30,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/usr/include/python2.4/pyconfig-64.h:823:1: warning: &amp;quot;_FILE_OFFSET_BITS&amp;quot; redefined&lt;br /&gt;
&amp;lt;command line&amp;gt;:1:1: warning: this is the location of the previous definition&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/wx.h:15,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/defs.h:42:13: error: #error &amp;quot;No Target! You should use wx-config program for compilation flags!&amp;quot;&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/cmndata.h:17,&lt;br /&gt;
                 from /data/include/wx-2.8/wx/wx.h:65,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/encinfo.h:64:6: error: #error &amp;quot;Unsupported toolkit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and lots of othe warnings and error messages afterwards.&lt;br /&gt;
&lt;br /&gt;
The location of wx-config is correct in cmake; wxWidgets installation appears to have been successful; the system is Red Hat Linux 64-bit&lt;br /&gt;
&lt;br /&gt;
== Windows (Cygwin and gcc, alternate method) ==&lt;br /&gt;
A limited build (without graphics) can be made under cygwin, this is a UNIX emulation environment available at [http://www.cygwin.com www.cygwin.com]. &lt;br /&gt;
This can exist peacefully next to the native windows version. &lt;br /&gt;
Cygwin creates a unix-style file system within your windows installation. If you choose c:/cygwin as your install directory, your HOME will be at c:/cygwin/home/&amp;lt;username&amp;gt;/. &lt;br /&gt;
&lt;br /&gt;
=== Download cygwin and install packages ===&lt;br /&gt;
Install gcc, g++, wget, make and cmake using the setup.exe program from the cygwin website. &lt;br /&gt;
For the mesh generator and python interface to work we currently need VTK and swig. &lt;br /&gt;
&lt;br /&gt;
This downloads and installs swig from source (when starting the cygwin shell you can paste this into the command line, otherwise write it to a file and run it with sh). &lt;br /&gt;
 mkdir progs&lt;br /&gt;
 cd progs &lt;br /&gt;
 SWIG=swig-1.3.31&lt;br /&gt;
 wget -nc http://kent.dl.sourceforge.net/sourceforge/swig/$SWIG.tar.gz&lt;br /&gt;
 tar xzvf $SWIG.tar.gz &lt;br /&gt;
 cd $SWIG&lt;br /&gt;
 ./configure &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This downloads and installs VTK from source, in the ccmake stage, use the cmake graphical commands to get a working install. &lt;br /&gt;
 VTK=vtk-6.3.0&lt;br /&gt;
 wget -nc https://vtk.org/download/&lt;br /&gt;
 tar xzvf $VTK.tar.gz&lt;br /&gt;
 mkdir vtkbin&lt;br /&gt;
 cd vtkbin&lt;br /&gt;
 ccmake ../VTK&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Install TexGen from source ===&lt;br /&gt;
Now we can proceed to install texgen, as an example we&amp;#039;ll work in ~/temp/texgen&lt;br /&gt;
 cd ~; mkdir temp; cd temp; mkdir texgen; cd texgen&lt;br /&gt;
 svn checkout svn//svn.code.sf.net/p/texgen/code/TexGen/trunk/ TexGen&lt;br /&gt;
 cd .. ; mkdir tbin; cd tbin&lt;br /&gt;
 ccmake ../texgen&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This should result in a working texgen install in ~/temp/texgen/tbin.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
=== Notes ===&lt;br /&gt;
If you are installing to a system where you don&amp;#039;t have root access (i.e. this computer does not belong to you) you won&amp;#039;t be able to install the software using the default configure script. This is because by default software is installed to the /usr/local directory. If you are not a systems administrator then you will quite rightly not have write access to this folder. All is not lost! You can still install software into your home directory. In order to do this you should always call the configure script with the following parameter: --prefix=$HOME. This goes for all the software to be installed below. All executables will then be placed in ~/bin, libraries in ~/lib, includes in ~/include, etc...&lt;br /&gt;
&lt;br /&gt;
In the guide below the parameter is included in italic. If you do in fact have root access then it is recommended to omit this parameter and install to the default directory so that other users will also have access to the software.&lt;br /&gt;
&lt;br /&gt;
=== Get TexGen from GitHub repository ===&lt;br /&gt;
&lt;br /&gt;
==== Install Git ====&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and unpack.&lt;br /&gt;
&lt;br /&gt;
==== Clone TexGen ====&lt;br /&gt;
Open a shell in folder you wish to place TexGen (e.g. ~/):&lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
&lt;br /&gt;
=== Compile source ===&lt;br /&gt;
&lt;br /&gt;
==== Install CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and unpack.&lt;br /&gt;
Open a shell in extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==== Compile TexGen core ====&lt;br /&gt;
Open a shell in the folder with the TexGen source code (e.g. ~/TexGen):&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 cd bin&lt;br /&gt;
 ccmake ../&lt;br /&gt;
Press &amp;#039;c&amp;#039; to configure. When a warning pops up telling you it can&amp;#039;t find such and such a file press &amp;#039;e&amp;#039; to close it. You will now need to specify which components of TexGen to build and where their dependencies can be found. Use the up and down arrows to move the caret and press enter to modify options. Do this to set BUILD_GUI, BUILD_PYTHON_INTERFACE and BUILD_RENDERER to OFF. You are basically telling CMake not to attempt to build these components, which means that you won&amp;#039;t need to have installed their dependencies.&lt;br /&gt;
&lt;br /&gt;
Similarly to the --prefix=$HOME parameter to the configure script, you can tell CMake to install TexGen to your home directory by changing CMAKE_INSTALL_PREFIX to ~/. Note that it won&amp;#039;t actually install anything until you get type make install.&lt;br /&gt;
&lt;br /&gt;
Now press &amp;#039;c&amp;#039; again to update the changes.&lt;br /&gt;
&lt;br /&gt;
Hopefully now that all the additional modules have been switched off no errors will be shown. Press &amp;#039;g&amp;#039; to generate the makefiles and exit. At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Note that at this point you have only built and installed the TexGen Core library which doesn&amp;#039;t actually do anything on its own. If you plan to incorporate TexGen into your own C++ program then this is enough, however if you would like to interface with TexGen from a Python script or Graphical User Interface then follow the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Compiling optional modules ===&lt;br /&gt;
==== Python interface ====&lt;br /&gt;
[http://www.python.org/download/ Download Python] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/download.html Download SWIG] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Open a shell in the folder where you called ccmake from for the first time (e.g. ~/TexGen/bin):&lt;br /&gt;
 ccmake ../&lt;br /&gt;
&lt;br /&gt;
Use the up and down arrows to reach BUILD_PYTHON_INTERFACE and press Enter to set it to ON. Then press &amp;#039;c&amp;#039; to configure. You will probably get a warning saying you need to specify the location of SWIG and/or Python, press &amp;#039;e&amp;#039; to close it.&lt;br /&gt;
&lt;br /&gt;
Set the PYTHON_INCLUDE_PATH, PYTHON_LIBRARY, PYTHON_SITEPACKAGES_DIR, SWIG_DIR and SWIG_EXECUTABLE parameters correctly where necessary. If you have installed packages to your home directory then they should look something like this:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_INCLUDE_PATH: ~/include/python2.7&lt;br /&gt;
 PYTHON_LIBRARY: ~/lib/python2.5/config/libpython2.7.a&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR: ~/lib/python2.7/site-packages&lt;br /&gt;
 SWIG_DIR: ~/bin&lt;br /&gt;
 SWIG_EXECUTABLE: ~/bin/swig&lt;br /&gt;
&lt;br /&gt;
Once that is done press &amp;#039;c&amp;#039; again. You may need perform this process over several iterations. When everything is set correctly press &amp;#039;g&amp;#039; to generate the makefiles.&lt;br /&gt;
&lt;br /&gt;
At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Assuming the build completed without errors you should now be able to access TexGen functions from within Python. In order to check everything worked as planned open Python in interactive mode by typing:&lt;br /&gt;
 python&lt;br /&gt;
&lt;br /&gt;
Then from within Python type:&lt;br /&gt;
 from TexGen.Core import *&lt;br /&gt;
 CTexGen.GetInstance().GetVersion()&lt;br /&gt;
&lt;br /&gt;
This should display the version of TexGen installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when linking _Core.so:&lt;br /&gt;
 libpython2.5.a(abstract.o): relocation R_X86_64_32 against `a local symbol&amp;#039;&lt;br /&gt;
 can not be used when making a shared object; recompile with -fPIC&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Try removing libpython2.5.a from the libraries to link to by setting PYTHON_LIBRARY to a bogus path, e.g.:&lt;br /&gt;
&lt;br /&gt;
PYTHON_LIBRARY: ~/&lt;br /&gt;
&lt;br /&gt;
By doing so you may receive a warning similar to this:&lt;br /&gt;
 Warning: Ignoring path found in link libraries for target: _Core, path is:&lt;br /&gt;
 /home/username. Expected a library name or a full path to a library name.&lt;br /&gt;
This warning may be ignored.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Compiling from Source</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-09-06T13:27:45Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to compile TexGen and &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; of its modules, the following software is required:&lt;br /&gt;
&lt;br /&gt;
The following programs are needed to build TexGen:&lt;br /&gt;
* [http://www.cmake.org/ CMake]&lt;br /&gt;
* [http://www.swig.org/ SWIG]&lt;br /&gt;
&lt;br /&gt;
The following libraries are needed to link to TexGen:&lt;br /&gt;
* [http://www.vtk.org/ VTK]&lt;br /&gt;
* [http://www.wxwidgets.org/ wxWidgets]&lt;br /&gt;
* [http://www.opencascade.org/ OpenCascade]&lt;br /&gt;
* [http://www.python.org/ Python]&lt;br /&gt;
&lt;br /&gt;
However to perform a minimum build of TexGen with none of the additional modules you only require CMake and a C++ compiler. It is recommended to begin with a minimum build, once that is working try adding modules one at a time. A list of modules along with dependencies is shown below:&lt;br /&gt;
&lt;br /&gt;
* Python interface: Python, SWIG&lt;br /&gt;
* Renderer: VTK&lt;br /&gt;
* Export: OpenCascade&lt;br /&gt;
* GUI: wxWidgets, Renderer, Python interface&lt;br /&gt;
* Unit tests: CPPUnit&lt;br /&gt;
&lt;br /&gt;
A graphical representation of the modules and their dependencies can also be found in the [http://texgen.sourceforge.net/api/ TexGen API].&lt;br /&gt;
&lt;br /&gt;
If you want to get the source code from GitHub you will need to install [https://git-scm.com/downloads Git] by following the instructions below. Note that this is the very latest development source and so may it contain some bugs and unfinished features. However it is very easy to keep up to date with the latest version of TexGen using this method and will allow you to keep any modifications you have made to the source when updating. If you find a bug or implement new features that may be useful to the rest of the community please send a pull request and they will be incorporated into TexGen following review.&lt;br /&gt;
&lt;br /&gt;
Alternatively the stable source code can be downloaded as a [http://sourceforge.net/project/showfiles.php?group_id=181000 tarball]. Download the latest file release named &amp;#039;&amp;#039;texgen-3.x.x.tar.gz&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Windows (Microsoft Visual Studio C++, recommended method) ==&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
It is assumed that Microsoft Visual Studio is already installed.  If it isn&amp;#039;t and you plan to use it, then install it.  It may be possible to use the free [http://www.microsoft.com/express/ Visual Studio Express]; if anyone tries this and finds out one way or the other, please post the information either here or in the [http://texgen.sourceforge.net/phpBB2/index.php forum]. Brief instructions on how to install the various 3rd party libraries under windows are given below. Note that you do not need to install all of these in order to perform the minimal build. Only CMake is absolutely required.&lt;br /&gt;
&lt;br /&gt;
TexGen versions 3.11.0 onwards have been built with VS2017. All of the libraries used can be built with this version of Visual Studio.&lt;br /&gt;
&lt;br /&gt;
==== CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and install, selecting &amp;#039;Add CMake to the system PATH for all users&amp;#039; (select current user if this is not permissible on your system).&lt;br /&gt;
&lt;br /&gt;
==== Git ====&lt;br /&gt;
&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and install it.&lt;br /&gt;
&lt;br /&gt;
==== SWIG ====&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/ Download] the windows .zip files and extract to a suitable location (e.g. c:\Program Files\swigwin-4.0.2).  The current version of TexGen is built with version 4.0.2&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/ Download Python] and install.  Note that TexGen version 3.13 is built with Python 3.9. Versions prior to that were built with Python 2.7.&lt;br /&gt;
&lt;br /&gt;
For a Release build the include files and python39.lib provided with the standard installation can be used. &lt;br /&gt;
&lt;br /&gt;
For a Debug build it is necessary to build a debug version of Python. Download the latest [https://www.python.org/downloads/source/ source release] and follow the instructions in the README for building for your environment. For Visual Studio use the VS solution in the PCBuild folder. Version 3.13 was built with Python 3.9.9.&lt;br /&gt;
Note that for newer VS versions it is necessary to apply this [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/issues/161 patch] in order for the build to be successful.&lt;br /&gt;
&lt;br /&gt;
==== OpenCascade ====&lt;br /&gt;
&lt;br /&gt;
[http://www.opencascade.org/getocc/download/ Download OpenCascade] and install; this extracts the files to a directory. If the installation doesn&amp;#039;t start automatically, run the &amp;#039;install.bat&amp;#039; file located the directory where the files where extracted (read &amp;#039;readme.htm&amp;#039; file in the same directory for more information).  Choose &amp;#039;complete installation&amp;#039; and tick the box to set the environment variables.  The current version of TexGen is built with OpenCascade version 7.0.0.&lt;br /&gt;
&lt;br /&gt;
==== VTK ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/louisepb/VTK-6.3 Download] version 6.3.0 of the source files and extract them. Instructions for building VTK using CMake are given on the [https://vtk.org/Wiki/VTK/Configure_and_Build VTK webpage] The following CMake settings should be set:&lt;br /&gt;
&lt;br /&gt;
 BUILD_EXAMPLES           OFF&lt;br /&gt;
 BUILD_SHARED_LIBS        OFF&lt;br /&gt;
 VTK_USE_MPEG2_ENCODER    OFF&lt;br /&gt;
 VTK_USE_PARALLEL         OFF&lt;br /&gt;
 VTK_USE_RENDERING        ON&lt;br /&gt;
 VTK_WRAP_JAVA            OFF&lt;br /&gt;
 VTK_WRAP_PYTHON          OFF&lt;br /&gt;
 VTK_WRAP_TCL             OFF&lt;br /&gt;
&lt;br /&gt;
(Version 6.3 is no longer available on the VTK webpage so the link above makes this available until TexGen has been modified to work with more recent VTK versions).&lt;br /&gt;
You may be able to get things working with different settings, however these are the settings I use and are known to work.&lt;br /&gt;
&lt;br /&gt;
==== wxWidgets ====&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/downloads/ Download] and install the windows version 3.0.4 of wxWidgets (wxMSW). It is then necessary to compile wxWidgets from source, detailed instructions on how to do this can be found in &amp;#039;install.txt&amp;#039; located in the &amp;#039;docs\msw&amp;#039; subfolder. The main steps are to open &amp;#039;wx.dsw&amp;#039; with MSVC located in the &amp;#039;build\msw&amp;#039; subfolder and compile both Release and Debug configurations (The configuration can be selected from the drop down box on the main toolbar in Visual Studio. Universal and DLL versions need not be compiled).&lt;br /&gt;
&lt;br /&gt;
==== CppUnit ====&lt;br /&gt;
To build the test module download [https://www.freedesktop.org/wiki/Software/cppunit/ cppunit]&lt;br /&gt;
&lt;br /&gt;
The VS solution is in the Examples folder. When this is run, accept the option to upgrade to your version of VS and then build. The resulting cppunit.lib file can then be found in the /lib folder.&lt;br /&gt;
&lt;br /&gt;
=== Checkout TexGen source code from GitHub ===&lt;br /&gt;
* Create a directory where you would like to store the TexGen source code in Windows Explorer. &lt;br /&gt;
* Open a Git Bash shell within that folder.&lt;br /&gt;
* Type &lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
A new TexGen folder will have been created which contains a downloaded copy of the TexGen repository.&lt;br /&gt;
&lt;br /&gt;
=== Configuring the build system with CMake ===&lt;br /&gt;
Run CMake from its shortcut on the Start menu. There are some general instructions on using CMake on the [https://cmake.org/cmake-tutorial/ CMake website] which are worth reading. You will need to fill in the source code location, this should point to where you checked out out the latest TexGen GitHub code or where you extracted the source code from the zip file. Also set where to place the binary files once they are compiled, this can be the same as the source directory, a subdirectory within the source directory or any other location.&lt;br /&gt;
&lt;br /&gt;
Once that is entered click &amp;#039;Configure&amp;#039; and choose the Visual Studio version which you have installed and click ok. You will initially get a number of error messages such as:&lt;br /&gt;
&lt;br /&gt;
 CMake Error: Swig was not found on the system. Please specify the location of Swig. (click OK)&lt;br /&gt;
 CMake Error: Error in configuration process, project files may be invalid. (click OK)&lt;br /&gt;
&lt;br /&gt;
This is normal, in order to get rid of the errors you will need to tell CMake where the various libraries you have installed can be found. This is done in the Cache Values sections.&lt;br /&gt;
&lt;br /&gt;
It is recommended to begin with a minimal build, this is achieved by setting the cache values as follows:&lt;br /&gt;
&lt;br /&gt;
 BUILD_CASCADE_EXPORT           OFF&lt;br /&gt;
 BUILD_DOCUMENTATION            OFF&lt;br /&gt;
 BUILD_EXAMPLES                 OFF&lt;br /&gt;
 BUILD_GUI                      OFF&lt;br /&gt;
 BUILD_PYTHON_INTERFACE         OFF&lt;br /&gt;
 BUILD_RENDERER                 OFF&lt;br /&gt;
 BUILD_SHARED                   ON&lt;br /&gt;
 BUILD_UNIT_TESTS               OFF&lt;br /&gt;
&lt;br /&gt;
Once these are set press configure again and you shouldn&amp;#039;t have any more errors/warnings. Press &amp;#039;OK&amp;#039; to generate the MSVC solution and project files. Configuring the various optional modules is explained in [[#Configuring optional modules]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring optional modules ===&lt;br /&gt;
&lt;br /&gt;
Once the minimal build is working you may want to switch on the optional modules. To do this open up CMake again and switch the modules you want to ON in the Cache Values then click Configure. You will most likely see some errors telling you it is unable to automatically find certain directories. You will need to specify these manually. An explanation of the different locations is listed below:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039;&amp;#039;&amp;#039; - This should be the folder where the TexGen python modules will be placed. Usually located in &amp;#039;C:\Python27\Lib\site-packages&amp;#039;, but this will depend on the version of Python installed and where you decided to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_DIR&amp;#039;&amp;#039;&amp;#039; -  This is the location where you extracted the SWIG executable. e.g. &amp;#039;C:\Program Files\swigwin-2.0.10&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_EXECUTABLE&amp;#039;&amp;#039;&amp;#039; - Same as root directory followed by &amp;#039;swig.exe&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_ROOT_DIR&amp;#039;&amp;#039;&amp;#039; - Location where you install wxWidgets. e.g. &amp;#039;C:/wxWidgets-3.0.4&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_LIB_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the wxWidgets libraries were compiled to, should be the same as the root directory followed by &amp;#039;lib/vc_lib&amp;#039; or &amp;#039;lib/vc_x64_lib&amp;#039; for 64-bit builds.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WX&amp;#039;&amp;#039;&amp;#039; - CMake may not automatically pick up the location of all libraries in which case these may need to be input manually. The image below shows the CMake GUI part way through specifying the library locations&lt;br /&gt;
[[Image:wxWidgetsCMake.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_INCLUDE_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade header files are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/inc&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/lib&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_DEBUG_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade debug libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/libd&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VTK_DIR&amp;#039;&amp;#039;&amp;#039; - Location of the VTK binary directory (note: not the source directory).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CPPUNIT_LIBRARY&amp;#039;&amp;#039;&amp;#039; - Location where the cppunit library file is located. e.g. &amp;#039;C:/cppunit-1.15.1/lib/cppunit.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After setting the directories manually, click on configure again. You may need to go through several iterations of changing parameters then pressing configure. Once you have finished changing parameters and have successfully pressed configure without error messages you can press the OK button to generate the build. Note: you can always come back to this at a later time to make changes.&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Find &amp;#039;TexGen.sln&amp;#039; which should be located in the directory where you told CMake to output the binary files to and open it with Microsoft Visual Studio.&lt;br /&gt;
&lt;br /&gt;
Set the configuration to &amp;#039;Release&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
If building the Graphical User Interface with Visual Studio 2008 or later open the properties page for the TexGenGUI project.  Select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Build the solution. Hopefully the project will have been compiled without errors.&lt;br /&gt;
&lt;br /&gt;
If you want to compile and execute the Graphical User Interface you will need to install it, you will not be able to execute it directly from the build directory. This is done by right click on the &amp;#039;INSTALL&amp;#039; project in the Solution Explorer and selecting Build. This will copy the Python modules into the Python site-packages directory so that they can be imported into scripts, and it will copy the executable along with other necessary files into &amp;#039;C:\Program Files\TexGen\&amp;#039; by default (this can be changed with the CMAKE_INSTALL_PREFIX cache value in CMake). TexGenGUI.exe should then be run from the installed location, if you attempt to run it directly from where it was compiled you will get some errors on launch.&lt;br /&gt;
&lt;br /&gt;
=== Building the documentation ===&lt;br /&gt;
&lt;br /&gt;
To build the documentation, [http://www.doxygen.nl/download.html Doxygen] and [https://graphviz.gitlab.io/download/ Graphviz] are required.  Open a command prompt in the &amp;#039;Docs&amp;#039; subdirectory of the source code and run &amp;#039;doxygen&amp;#039;. If the doxygen directory is not in your path, you must add it, or give the full path on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Integrating TexGen with ABAQUS ===&lt;br /&gt;
&lt;br /&gt;
If you are using ABAQUS and wish to use TexGen Python scripting from within the ABAQUS/CAE environment, there are a few extra steps to perform. This is because ABAQUS comes packaged with its own version of Python, so any modules added to your standalone python installation will not be accessible by ABAQUS. You must compile the TexGen Python modules with the same version of Python as ABAQUS uses. The following table shows which version of Python is used in specific ABAQUS versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ABAQUS Version !! Python Version&lt;br /&gt;
|-&lt;br /&gt;
| 6.6-1  || 2.3.3&lt;br /&gt;
|- &lt;br /&gt;
| 6.7-1  || 2.4.3 &lt;br /&gt;
|- &lt;br /&gt;
| 6.10-2 || 2.6.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.14-1 || 2.7.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If your version of ABAQUS is not listed in the table above you can type &amp;#039;abaqus python -V&amp;#039; to check what version of Python is used (then please edit this page to update the table). You can obtain specific versions of Python from https://www.python.org/downloads/source/ .&lt;br /&gt;
&lt;br /&gt;
Additionally you will need to place the TexGen python modules inside ABAQUS&amp;#039; version of python. There are a few ways to accomplish this, the easiest is perhaps to set the CMake cache variable &amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039; point to the ABAQUS&amp;#039; python directory, e.g.:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR     C:\Abaqus\6.14-1\Python\Lib\&lt;br /&gt;
&lt;br /&gt;
Then when you build the INSTALL project in MSVC++ it will automatically copy the TexGen python modules to the ABAQUS&amp;#039; Python. Alternatively you can simply copy the files manually or modify Python&amp;#039;s search path to include the TexGen python modules, e.g. In python:&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.path.append(&amp;#039;C:/Python27/Lib/site-packages/&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
There may also be a need to modify the file [source code location]/Installer/texgen.nsi.  The original version, lines 1-3 are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python25.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while on Jon&amp;#039;s version they are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python24.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error LNK1104: cannot open file &amp;#039;python25_d.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; The windows installation of Python doesn&amp;#039;t come with the debug library (&amp;#039;python25_d.lib&amp;#039;, the _d part means debug). You should be able to compile in release mode however. If you really want to compile in debug mode you will need to compile Python from source and link to that. Or you can try to link to the release library &amp;#039;python25.lib&amp;#039; instead, easiest way to do that is to copy &amp;#039;python25.lib&amp;#039; to &amp;#039;python25_d.lib&amp;#039; but this may cause problems during linking or execution.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error C1083: Cannot open include file: &amp;#039;wx/wxprec.h&amp;#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Make sure that you have compiled wxWidgets and that the wxWidgets_XXX cache variables are set correctly in CMake.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I do not have a &amp;#039;libd&amp;#039; folder in &amp;#039;ros/win32&amp;#039; for OpenCASCADE.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; If you do not compile OpenCASCADE yourself then this folder does not exist. However it can be ignored if you are only interested in building the release version of TexGen. If you really want to compile the debug version please refer to the OpenCASCADE documentation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; Why do I get the error message: &amp;quot;The parameter is incorrect.&amp;quot; when launching TexGenGUI.exe?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; In the TexGenGUI Property Pages select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I am getting error messages at the stage of building GUI:[ 86%] Building CXX object GUI/CMakeFiles/TexGenGUI.dir/PrecompiledHeaders.cpp.o&lt;br /&gt;
In file included from /usr/include/python2.4/pyconfig.h:6,&lt;br /&gt;
                 from /usr/include/python2.4/Python.h:8,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:30,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/usr/include/python2.4/pyconfig-64.h:823:1: warning: &amp;quot;_FILE_OFFSET_BITS&amp;quot; redefined&lt;br /&gt;
&amp;lt;command line&amp;gt;:1:1: warning: this is the location of the previous definition&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/wx.h:15,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/defs.h:42:13: error: #error &amp;quot;No Target! You should use wx-config program for compilation flags!&amp;quot;&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/cmndata.h:17,&lt;br /&gt;
                 from /data/include/wx-2.8/wx/wx.h:65,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/encinfo.h:64:6: error: #error &amp;quot;Unsupported toolkit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and lots of othe warnings and error messages afterwards.&lt;br /&gt;
&lt;br /&gt;
The location of wx-config is correct in cmake; wxWidgets installation appears to have been successful; the system is Red Hat Linux 64-bit&lt;br /&gt;
&lt;br /&gt;
== Windows (Cygwin and gcc, alternate method) ==&lt;br /&gt;
A limited build (without graphics) can be made under cygwin, this is a UNIX emulation environment available at [http://www.cygwin.com www.cygwin.com]. &lt;br /&gt;
This can exist peacefully next to the native windows version. &lt;br /&gt;
Cygwin creates a unix-style file system within your windows installation. If you choose c:/cygwin as your install directory, your HOME will be at c:/cygwin/home/&amp;lt;username&amp;gt;/. &lt;br /&gt;
&lt;br /&gt;
=== Download cygwin and install packages ===&lt;br /&gt;
Install gcc, g++, wget, make and cmake using the setup.exe program from the cygwin website. &lt;br /&gt;
For the mesh generator and python interface to work we currently need VTK and swig. &lt;br /&gt;
&lt;br /&gt;
This downloads and installs swig from source (when starting the cygwin shell you can paste this into the command line, otherwise write it to a file and run it with sh). &lt;br /&gt;
 mkdir progs&lt;br /&gt;
 cd progs &lt;br /&gt;
 SWIG=swig-1.3.31&lt;br /&gt;
 wget -nc http://kent.dl.sourceforge.net/sourceforge/swig/$SWIG.tar.gz&lt;br /&gt;
 tar xzvf $SWIG.tar.gz &lt;br /&gt;
 cd $SWIG&lt;br /&gt;
 ./configure &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This downloads and installs VTK from source, in the ccmake stage, use the cmake graphical commands to get a working install. &lt;br /&gt;
 VTK=vtk-6.3.0&lt;br /&gt;
 wget -nc https://vtk.org/download/&lt;br /&gt;
 tar xzvf $VTK.tar.gz&lt;br /&gt;
 mkdir vtkbin&lt;br /&gt;
 cd vtkbin&lt;br /&gt;
 ccmake ../VTK&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Install TexGen from source ===&lt;br /&gt;
Now we can proceed to install texgen, as an example we&amp;#039;ll work in ~/temp/texgen&lt;br /&gt;
 cd ~; mkdir temp; cd temp; mkdir texgen; cd texgen&lt;br /&gt;
 svn checkout svn//svn.code.sf.net/p/texgen/code/TexGen/trunk/ TexGen&lt;br /&gt;
 cd .. ; mkdir tbin; cd tbin&lt;br /&gt;
 ccmake ../texgen&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This should result in a working texgen install in ~/temp/texgen/tbin.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
=== Notes ===&lt;br /&gt;
If you are installing to a system where you don&amp;#039;t have root access (i.e. this computer does not belong to you) you won&amp;#039;t be able to install the software using the default configure script. This is because by default software is installed to the /usr/local directory. If you are not a systems administrator then you will quite rightly not have write access to this folder. All is not lost! You can still install software into your home directory. In order to do this you should always call the configure script with the following parameter: --prefix=$HOME. This goes for all the software to be installed below. All executables will then be placed in ~/bin, libraries in ~/lib, includes in ~/include, etc...&lt;br /&gt;
&lt;br /&gt;
In the guide below the parameter is included in italic. If you do in fact have root access then it is recommended to omit this parameter and install to the default directory so that other users will also have access to the software.&lt;br /&gt;
&lt;br /&gt;
=== Get TexGen from GitHub repository ===&lt;br /&gt;
&lt;br /&gt;
==== Install Git ====&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and unpack.&lt;br /&gt;
&lt;br /&gt;
==== Clone TexGen ====&lt;br /&gt;
Open a shell in folder you wish to place TexGen (e.g. ~/):&lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
&lt;br /&gt;
=== Compile source ===&lt;br /&gt;
&lt;br /&gt;
==== Install CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and unpack.&lt;br /&gt;
Open a shell in extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==== Compile TexGen core ====&lt;br /&gt;
Open a shell in the folder with the TexGen source code (e.g. ~/TexGen):&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 cd bin&lt;br /&gt;
 ccmake ../&lt;br /&gt;
Press &amp;#039;c&amp;#039; to configure. When a warning pops up telling you it can&amp;#039;t find such and such a file press &amp;#039;e&amp;#039; to close it. You will now need to specify which components of TexGen to build and where their dependencies can be found. Use the up and down arrows to move the caret and press enter to modify options. Do this to set BUILD_GUI, BUILD_PYTHON_INTERFACE and BUILD_RENDERER to OFF. You are basically telling CMake not to attempt to build these components, which means that you won&amp;#039;t need to have installed their dependencies.&lt;br /&gt;
&lt;br /&gt;
Similarly to the --prefix=$HOME parameter to the configure script, you can tell CMake to install TexGen to your home directory by changing CMAKE_INSTALL_PREFIX to ~/. Note that it won&amp;#039;t actually install anything until you get type make install.&lt;br /&gt;
&lt;br /&gt;
Now press &amp;#039;c&amp;#039; again to update the changes.&lt;br /&gt;
&lt;br /&gt;
Hopefully now that all the additional modules have been switched off no errors will be shown. Press &amp;#039;g&amp;#039; to generate the makefiles and exit. At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Note that at this point you have only built and installed the TexGen Core library which doesn&amp;#039;t actually do anything on its own. If you plan to incorporate TexGen into your own C++ program then this is enough, however if you would like to interface with TexGen from a Python script or Graphical User Interface then follow the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Compiling optional modules ===&lt;br /&gt;
==== Python interface ====&lt;br /&gt;
[http://www.python.org/download/ Download Python] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/download.html Download SWIG] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Open a shell in the folder where you called ccmake from for the first time (e.g. ~/TexGen/bin):&lt;br /&gt;
 ccmake ../&lt;br /&gt;
&lt;br /&gt;
Use the up and down arrows to reach BUILD_PYTHON_INTERFACE and press Enter to set it to ON. Then press &amp;#039;c&amp;#039; to configure. You will probably get a warning saying you need to specify the location of SWIG and/or Python, press &amp;#039;e&amp;#039; to close it.&lt;br /&gt;
&lt;br /&gt;
Set the PYTHON_INCLUDE_PATH, PYTHON_LIBRARY, PYTHON_SITEPACKAGES_DIR, SWIG_DIR and SWIG_EXECUTABLE parameters correctly where necessary. If you have installed packages to your home directory then they should look something like this:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_INCLUDE_PATH: ~/include/python2.7&lt;br /&gt;
 PYTHON_LIBRARY: ~/lib/python2.5/config/libpython2.7.a&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR: ~/lib/python2.7/site-packages&lt;br /&gt;
 SWIG_DIR: ~/bin&lt;br /&gt;
 SWIG_EXECUTABLE: ~/bin/swig&lt;br /&gt;
&lt;br /&gt;
Once that is done press &amp;#039;c&amp;#039; again. You may need perform this process over several iterations. When everything is set correctly press &amp;#039;g&amp;#039; to generate the makefiles.&lt;br /&gt;
&lt;br /&gt;
At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Assuming the build completed without errors you should now be able to access TexGen functions from within Python. In order to check everything worked as planned open Python in interactive mode by typing:&lt;br /&gt;
 python&lt;br /&gt;
&lt;br /&gt;
Then from within Python type:&lt;br /&gt;
 from TexGen.Core import *&lt;br /&gt;
 CTexGen.GetInstance().GetVersion()&lt;br /&gt;
&lt;br /&gt;
This should display the version of TexGen installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when linking _Core.so:&lt;br /&gt;
 libpython2.5.a(abstract.o): relocation R_X86_64_32 against `a local symbol&amp;#039;&lt;br /&gt;
 can not be used when making a shared object; recompile with -fPIC&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Try removing libpython2.5.a from the libraries to link to by setting PYTHON_LIBRARY to a bogus path, e.g.:&lt;br /&gt;
&lt;br /&gt;
PYTHON_LIBRARY: ~/&lt;br /&gt;
&lt;br /&gt;
By doing so you may receive a warning similar to this:&lt;br /&gt;
 Warning: Ignoring path found in link libraries for target: _Core, path is:&lt;br /&gt;
 /home/username. Expected a library name or a full path to a library name.&lt;br /&gt;
This warning may be ignored.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Compiling from Source</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-09-06T13:24:17Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to compile TexGen and &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; of its modules, the following software is required:&lt;br /&gt;
&lt;br /&gt;
The following programs are needed to build TexGen:&lt;br /&gt;
* [http://www.cmake.org/ CMake]&lt;br /&gt;
* [http://www.swig.org/ SWIG]&lt;br /&gt;
&lt;br /&gt;
The following libraries are needed to link to TexGen:&lt;br /&gt;
* [http://www.vtk.org/ VTK]&lt;br /&gt;
* [http://www.wxwidgets.org/ wxWidgets]&lt;br /&gt;
* [http://www.opencascade.org/ OpenCascade]&lt;br /&gt;
* [http://www.python.org/ Python]&lt;br /&gt;
&lt;br /&gt;
However to perform a minimum build of TexGen with none of the additional modules you only require CMake and a C++ compiler. It is recommended to begin with a minimum build, once that is working try adding modules one at a time. A list of modules along with dependencies is shown below:&lt;br /&gt;
&lt;br /&gt;
* Python interface: Python, SWIG&lt;br /&gt;
* Renderer: VTK&lt;br /&gt;
* Export: OpenCascade&lt;br /&gt;
* GUI: wxWidgets, Renderer, Python interface&lt;br /&gt;
* Unit tests: CPPUnit&lt;br /&gt;
&lt;br /&gt;
A graphical representation of the modules and their dependencies can also be found in the [http://texgen.sourceforge.net/api/ TexGen API].&lt;br /&gt;
&lt;br /&gt;
If you want to get the source code from GitHub you will need to install [https://git-scm.com/downloads Git] by following the instructions below. Note that this is the very latest development source and so may it contain some bugs and unfinished features. However it is very easy to keep up to date with the latest version of TexGen using this method and will allow you to keep any modifications you have made to the source when updating. If you find a bug or implement new features that may be useful to the rest of the community please send a pull request and they will be incorporated into TexGen following review.&lt;br /&gt;
&lt;br /&gt;
Alternatively the stable source code can be downloaded as a [http://sourceforge.net/project/showfiles.php?group_id=181000 tarball]. Download the latest file release named &amp;#039;&amp;#039;texgen-3.x.x.tar.gz&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Windows (Microsoft Visual Studio C++, recommended method) ==&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
It is assumed that Microsoft Visual Studio is already installed.  If it isn&amp;#039;t and you plan to use it, then install it.  It may be possible to use the free [http://www.microsoft.com/express/ Visual Studio Express]; if anyone tries this and finds out one way or the other, please post the information either here or in the [http://texgen.sourceforge.net/phpBB2/index.php forum]. Brief instructions on how to install the various 3rd party libraries under windows are given below. Note that you do not need to install all of these in order to perform the minimal build. Only CMake is absolutely required.&lt;br /&gt;
&lt;br /&gt;
TexGen versions 3.11.0 onwards have been built with VS2017. All of the libraries used can be built with this version of Visual Studio.&lt;br /&gt;
&lt;br /&gt;
==== CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and install, selecting &amp;#039;Add CMake to the system PATH for all users&amp;#039; (select current user if this is not permissible on your system).&lt;br /&gt;
&lt;br /&gt;
==== Git ====&lt;br /&gt;
&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and install it.&lt;br /&gt;
&lt;br /&gt;
==== SWIG ====&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/ Download] the windows .zip files and extract to a suitable location (e.g. c:\Program Files\swigwin-4.0.2).  The current version of TexGen is built with version 4.0.2&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/ Download Python] and install.  Note that TexGen version 3.13 is built with Python 3.9. Vesrions prior to that were built with Python 2.7.&lt;br /&gt;
&lt;br /&gt;
For a Release build the include files and python39.lib provided with the standard installation can be used. &lt;br /&gt;
&lt;br /&gt;
For a Debug build it is necessary to build a debug version of Python. Download the latest [https://www.python.org/downloads/source/ source release] and follow the instructions in the README for building for your environment. For Visual Studio use the VS solution in the PCBuild folder. Version 3.13 was built with Python 3.9.9.&lt;br /&gt;
Note that for newer VS versions it is necessary to apply this [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/issues/161 patch] in order for the build to be successful.&lt;br /&gt;
&lt;br /&gt;
==== OpenCascade ====&lt;br /&gt;
&lt;br /&gt;
[http://www.opencascade.org/getocc/download/ Download OpenCascade] and install; this extracts the files to a directory. If the installation doesn&amp;#039;t start automatically, run the &amp;#039;install.bat&amp;#039; file located the directory where the files where extracted (read &amp;#039;readme.htm&amp;#039; file in the same directory for more information).  Choose &amp;#039;complete installation&amp;#039; and tick the box to set the environment variables.  The current version of TexGen is built with OpenCascade version 7.0.0.&lt;br /&gt;
&lt;br /&gt;
==== VTK ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/louisepb/VTK-6.3 Download] version 6.3.0 of the source files and extract them. Instructions for building VTK using CMake are given on the [https://vtk.org/Wiki/VTK/Configure_and_Build VTK webpage] The following CMake settings should be set:&lt;br /&gt;
&lt;br /&gt;
 BUILD_EXAMPLES           OFF&lt;br /&gt;
 BUILD_SHARED_LIBS        OFF&lt;br /&gt;
 VTK_USE_MPEG2_ENCODER    OFF&lt;br /&gt;
 VTK_USE_PARALLEL         OFF&lt;br /&gt;
 VTK_USE_RENDERING        ON&lt;br /&gt;
 VTK_WRAP_JAVA            OFF&lt;br /&gt;
 VTK_WRAP_PYTHON          OFF&lt;br /&gt;
 VTK_WRAP_TCL             OFF&lt;br /&gt;
&lt;br /&gt;
(Version 6.3 is no longer available on the VTK webpage so the link above makes this available until TexGen has been modified to work with more recent VTK versions).&lt;br /&gt;
You may be able to get things working with different settings, however these are the settings I use and are known to work.&lt;br /&gt;
&lt;br /&gt;
==== wxWidgets ====&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/downloads/ Download] and install the windows version 3.0.4 of wxWidgets (wxMSW). It is then necessary to compile wxWidgets from source, detailed instructions on how to do this can be found in &amp;#039;install.txt&amp;#039; located in the &amp;#039;docs\msw&amp;#039; subfolder. The main steps are to open &amp;#039;wx.dsw&amp;#039; with MSVC located in the &amp;#039;build\msw&amp;#039; subfolder and compile both Release and Debug configurations (The configuration can be selected from the drop down box on the main toolbar in Visual Studio. Universal and DLL versions need not be compiled).&lt;br /&gt;
&lt;br /&gt;
==== CppUnit ====&lt;br /&gt;
To build the test module download [https://www.freedesktop.org/wiki/Software/cppunit/ cppunit]&lt;br /&gt;
&lt;br /&gt;
The VS solution is in the Examples folder. When this is run, accept the option to upgrade to your version of VS and then build. The resulting cppunit.lib file can then be found in the /lib folder.&lt;br /&gt;
&lt;br /&gt;
=== Checkout TexGen source code from GitHub ===&lt;br /&gt;
* Create a directory where you would like to store the TexGen source code in Windows Explorer. &lt;br /&gt;
* Open a Git Bash shell within that folder.&lt;br /&gt;
* Type &lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
A new TexGen folder will have been created which contains a downloaded copy of the TexGen repository.&lt;br /&gt;
&lt;br /&gt;
=== Configuring the build system with CMake ===&lt;br /&gt;
Run CMake from its shortcut on the Start menu. There are some general instructions on using CMake on the [https://cmake.org/cmake-tutorial/ CMake website] which are worth reading. You will need to fill in the source code location, this should point to where you checked out out the latest TexGen GitHub code or where you extracted the source code from the zip file. Also set where to place the binary files once they are compiled, this can be the same as the source directory, a subdirectory within the source directory or any other location.&lt;br /&gt;
&lt;br /&gt;
Once that is entered click &amp;#039;Configure&amp;#039; and choose the Visual Studio version which you have installed and click ok. You will initially get a number of error messages such as:&lt;br /&gt;
&lt;br /&gt;
 CMake Error: Swig was not found on the system. Please specify the location of Swig. (click OK)&lt;br /&gt;
 CMake Error: Error in configuration process, project files may be invalid. (click OK)&lt;br /&gt;
&lt;br /&gt;
This is normal, in order to get rid of the errors you will need to tell CMake where the various libraries you have installed can be found. This is done in the Cache Values sections.&lt;br /&gt;
&lt;br /&gt;
It is recommended to begin with a minimal build, this is achieved by setting the cache values as follows:&lt;br /&gt;
&lt;br /&gt;
 BUILD_CASCADE_EXPORT           OFF&lt;br /&gt;
 BUILD_DOCUMENTATION            OFF&lt;br /&gt;
 BUILD_EXAMPLES                 OFF&lt;br /&gt;
 BUILD_GUI                      OFF&lt;br /&gt;
 BUILD_PYTHON_INTERFACE         OFF&lt;br /&gt;
 BUILD_RENDERER                 OFF&lt;br /&gt;
 BUILD_SHARED                   ON&lt;br /&gt;
 BUILD_UNIT_TESTS               OFF&lt;br /&gt;
&lt;br /&gt;
Once these are set press configure again and you shouldn&amp;#039;t have any more errors/warnings. Press &amp;#039;OK&amp;#039; to generate the MSVC solution and project files. Configuring the various optional modules is explained in [[#Configuring optional modules]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring optional modules ===&lt;br /&gt;
&lt;br /&gt;
Once the minimal build is working you may want to switch on the optional modules. To do this open up CMake again and switch the modules you want to ON in the Cache Values then click Configure. You will most likely see some errors telling you it is unable to automatically find certain directories. You will need to specify these manually. An explanation of the different locations is listed below:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039;&amp;#039;&amp;#039; - This should be the folder where the TexGen python modules will be placed. Usually located in &amp;#039;C:\Python27\Lib\site-packages&amp;#039;, but this will depend on the version of Python installed and where you decided to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_DIR&amp;#039;&amp;#039;&amp;#039; -  This is the location where you extracted the SWIG executable. e.g. &amp;#039;C:\Program Files\swigwin-2.0.10&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_EXECUTABLE&amp;#039;&amp;#039;&amp;#039; - Same as root directory followed by &amp;#039;swig.exe&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_ROOT_DIR&amp;#039;&amp;#039;&amp;#039; - Location where you install wxWidgets. e.g. &amp;#039;C:/wxWidgets-3.0.4&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_LIB_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the wxWidgets libraries were compiled to, should be the same as the root directory followed by &amp;#039;lib/vc_lib&amp;#039; or &amp;#039;lib/vc_x64_lib&amp;#039; for 64-bit builds.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WX&amp;#039;&amp;#039;&amp;#039; - CMake may not automatically pick up the location of all libraries in which case these may need to be input manually. The image below shows the CMake GUI part way through specifying the library locations&lt;br /&gt;
[[Image:wxWidgetsCMake.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_INCLUDE_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade header files are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/inc&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/lib&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_DEBUG_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade debug libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/libd&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VTK_DIR&amp;#039;&amp;#039;&amp;#039; - Location of the VTK binary directory (note: not the source directory).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CPPUNIT_LIBRARY&amp;#039;&amp;#039;&amp;#039; - Location where the cppunit library file is located. e.g. &amp;#039;C:/cppunit-1.15.1/lib/cppunit.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After setting the directories manually, click on configure again. You may need to go through several iterations of changing parameters then pressing configure. Once you have finished changing parameters and have successfully pressed configure without error messages you can press the OK button to generate the build. Note: you can always come back to this at a later time to make changes.&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Find &amp;#039;TexGen.sln&amp;#039; which should be located in the directory where you told CMake to output the binary files to and open it with Microsoft Visual Studio.&lt;br /&gt;
&lt;br /&gt;
Set the configuration to &amp;#039;Release&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
If building the Graphical User Interface with Visual Studio 2008 or later open the properties page for the TexGenGUI project.  Select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Build the solution. Hopefully the project will have been compiled without errors.&lt;br /&gt;
&lt;br /&gt;
If you want to compile and execute the Graphical User Interface you will need to install it, you will not be able to execute it directly from the build directory. This is done by right click on the &amp;#039;INSTALL&amp;#039; project in the Solution Explorer and selecting Build. This will copy the Python modules into the Python site-packages directory so that they can be imported into scripts, and it will copy the executable along with other necessary files into &amp;#039;C:\Program Files\TexGen\&amp;#039; by default (this can be changed with the CMAKE_INSTALL_PREFIX cache value in CMake). TexGenGUI.exe should then be run from the installed location, if you attempt to run it directly from where it was compiled you will get some errors on launch.&lt;br /&gt;
&lt;br /&gt;
=== Building the documentation ===&lt;br /&gt;
&lt;br /&gt;
To build the documentation, [http://www.doxygen.nl/download.html Doxygen] and [https://graphviz.gitlab.io/download/ Graphviz] are required.  Open a command prompt in the &amp;#039;Docs&amp;#039; subdirectory of the source code and run &amp;#039;doxygen&amp;#039;. If the doxygen directory is not in your path, you must add it, or give the full path on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Integrating TexGen with ABAQUS ===&lt;br /&gt;
&lt;br /&gt;
If you are using ABAQUS and wish to use TexGen Python scripting from within the ABAQUS/CAE environment, there are a few extra steps to perform. This is because ABAQUS comes packaged with its own version of Python, so any modules added to your standalone python installation will not be accessible by ABAQUS. You must compile the TexGen Python modules with the same version of Python as ABAQUS uses. The following table shows which version of Python is used in specific ABAQUS versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ABAQUS Version !! Python Version&lt;br /&gt;
|-&lt;br /&gt;
| 6.6-1  || 2.3.3&lt;br /&gt;
|- &lt;br /&gt;
| 6.7-1  || 2.4.3 &lt;br /&gt;
|- &lt;br /&gt;
| 6.10-2 || 2.6.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.14-1 || 2.7.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If your version of ABAQUS is not listed in the table above you can type &amp;#039;abaqus python -V&amp;#039; to check what version of Python is used (then please edit this page to update the table). You can obtain specific versions of Python from https://www.python.org/downloads/source/ .&lt;br /&gt;
&lt;br /&gt;
Additionally you will need to place the TexGen python modules inside ABAQUS&amp;#039; version of python. There are a few ways to accomplish this, the easiest is perhaps to set the CMake cache variable &amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039; point to the ABAQUS&amp;#039; python directory, e.g.:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR     C:\Abaqus\6.14-1\Python\Lib\&lt;br /&gt;
&lt;br /&gt;
Then when you build the INSTALL project in MSVC++ it will automatically copy the TexGen python modules to the ABAQUS&amp;#039; Python. Alternatively you can simply copy the files manually or modify Python&amp;#039;s search path to include the TexGen python modules, e.g. In python:&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.path.append(&amp;#039;C:/Python27/Lib/site-packages/&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
There may also be a need to modify the file [source code location]/Installer/texgen.nsi.  The original version, lines 1-3 are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python25.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while on Jon&amp;#039;s version they are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python24.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error LNK1104: cannot open file &amp;#039;python25_d.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; The windows installation of Python doesn&amp;#039;t come with the debug library (&amp;#039;python25_d.lib&amp;#039;, the _d part means debug). You should be able to compile in release mode however. If you really want to compile in debug mode you will need to compile Python from source and link to that. Or you can try to link to the release library &amp;#039;python25.lib&amp;#039; instead, easiest way to do that is to copy &amp;#039;python25.lib&amp;#039; to &amp;#039;python25_d.lib&amp;#039; but this may cause problems during linking or execution.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error C1083: Cannot open include file: &amp;#039;wx/wxprec.h&amp;#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Make sure that you have compiled wxWidgets and that the wxWidgets_XXX cache variables are set correctly in CMake.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I do not have a &amp;#039;libd&amp;#039; folder in &amp;#039;ros/win32&amp;#039; for OpenCASCADE.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; If you do not compile OpenCASCADE yourself then this folder does not exist. However it can be ignored if you are only interested in building the release version of TexGen. If you really want to compile the debug version please refer to the OpenCASCADE documentation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; Why do I get the error message: &amp;quot;The parameter is incorrect.&amp;quot; when launching TexGenGUI.exe?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; In the TexGenGUI Property Pages select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I am getting error messages at the stage of building GUI:[ 86%] Building CXX object GUI/CMakeFiles/TexGenGUI.dir/PrecompiledHeaders.cpp.o&lt;br /&gt;
In file included from /usr/include/python2.4/pyconfig.h:6,&lt;br /&gt;
                 from /usr/include/python2.4/Python.h:8,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:30,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/usr/include/python2.4/pyconfig-64.h:823:1: warning: &amp;quot;_FILE_OFFSET_BITS&amp;quot; redefined&lt;br /&gt;
&amp;lt;command line&amp;gt;:1:1: warning: this is the location of the previous definition&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/wx.h:15,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/defs.h:42:13: error: #error &amp;quot;No Target! You should use wx-config program for compilation flags!&amp;quot;&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/cmndata.h:17,&lt;br /&gt;
                 from /data/include/wx-2.8/wx/wx.h:65,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/encinfo.h:64:6: error: #error &amp;quot;Unsupported toolkit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and lots of othe warnings and error messages afterwards.&lt;br /&gt;
&lt;br /&gt;
The location of wx-config is correct in cmake; wxWidgets installation appears to have been successful; the system is Red Hat Linux 64-bit&lt;br /&gt;
&lt;br /&gt;
== Windows (Cygwin and gcc, alternate method) ==&lt;br /&gt;
A limited build (without graphics) can be made under cygwin, this is a UNIX emulation environment available at [http://www.cygwin.com www.cygwin.com]. &lt;br /&gt;
This can exist peacefully next to the native windows version. &lt;br /&gt;
Cygwin creates a unix-style file system within your windows installation. If you choose c:/cygwin as your install directory, your HOME will be at c:/cygwin/home/&amp;lt;username&amp;gt;/. &lt;br /&gt;
&lt;br /&gt;
=== Download cygwin and install packages ===&lt;br /&gt;
Install gcc, g++, wget, make and cmake using the setup.exe program from the cygwin website. &lt;br /&gt;
For the mesh generator and python interface to work we currently need VTK and swig. &lt;br /&gt;
&lt;br /&gt;
This downloads and installs swig from source (when starting the cygwin shell you can paste this into the command line, otherwise write it to a file and run it with sh). &lt;br /&gt;
 mkdir progs&lt;br /&gt;
 cd progs &lt;br /&gt;
 SWIG=swig-1.3.31&lt;br /&gt;
 wget -nc http://kent.dl.sourceforge.net/sourceforge/swig/$SWIG.tar.gz&lt;br /&gt;
 tar xzvf $SWIG.tar.gz &lt;br /&gt;
 cd $SWIG&lt;br /&gt;
 ./configure &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This downloads and installs VTK from source, in the ccmake stage, use the cmake graphical commands to get a working install. &lt;br /&gt;
 VTK=vtk-6.3.0&lt;br /&gt;
 wget -nc https://vtk.org/download/&lt;br /&gt;
 tar xzvf $VTK.tar.gz&lt;br /&gt;
 mkdir vtkbin&lt;br /&gt;
 cd vtkbin&lt;br /&gt;
 ccmake ../VTK&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Install TexGen from source ===&lt;br /&gt;
Now we can proceed to install texgen, as an example we&amp;#039;ll work in ~/temp/texgen&lt;br /&gt;
 cd ~; mkdir temp; cd temp; mkdir texgen; cd texgen&lt;br /&gt;
 svn checkout svn//svn.code.sf.net/p/texgen/code/TexGen/trunk/ TexGen&lt;br /&gt;
 cd .. ; mkdir tbin; cd tbin&lt;br /&gt;
 ccmake ../texgen&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This should result in a working texgen install in ~/temp/texgen/tbin.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
=== Notes ===&lt;br /&gt;
If you are installing to a system where you don&amp;#039;t have root access (i.e. this computer does not belong to you) you won&amp;#039;t be able to install the software using the default configure script. This is because by default software is installed to the /usr/local directory. If you are not a systems administrator then you will quite rightly not have write access to this folder. All is not lost! You can still install software into your home directory. In order to do this you should always call the configure script with the following parameter: --prefix=$HOME. This goes for all the software to be installed below. All executables will then be placed in ~/bin, libraries in ~/lib, includes in ~/include, etc...&lt;br /&gt;
&lt;br /&gt;
In the guide below the parameter is included in italic. If you do in fact have root access then it is recommended to omit this parameter and install to the default directory so that other users will also have access to the software.&lt;br /&gt;
&lt;br /&gt;
=== Get TexGen from GitHub repository ===&lt;br /&gt;
&lt;br /&gt;
==== Install Git ====&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and unpack.&lt;br /&gt;
&lt;br /&gt;
==== Clone TexGen ====&lt;br /&gt;
Open a shell in folder you wish to place TexGen (e.g. ~/):&lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
&lt;br /&gt;
=== Compile source ===&lt;br /&gt;
&lt;br /&gt;
==== Install CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and unpack.&lt;br /&gt;
Open a shell in extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==== Compile TexGen core ====&lt;br /&gt;
Open a shell in the folder with the TexGen source code (e.g. ~/TexGen):&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 cd bin&lt;br /&gt;
 ccmake ../&lt;br /&gt;
Press &amp;#039;c&amp;#039; to configure. When a warning pops up telling you it can&amp;#039;t find such and such a file press &amp;#039;e&amp;#039; to close it. You will now need to specify which components of TexGen to build and where their dependencies can be found. Use the up and down arrows to move the caret and press enter to modify options. Do this to set BUILD_GUI, BUILD_PYTHON_INTERFACE and BUILD_RENDERER to OFF. You are basically telling CMake not to attempt to build these components, which means that you won&amp;#039;t need to have installed their dependencies.&lt;br /&gt;
&lt;br /&gt;
Similarly to the --prefix=$HOME parameter to the configure script, you can tell CMake to install TexGen to your home directory by changing CMAKE_INSTALL_PREFIX to ~/. Note that it won&amp;#039;t actually install anything until you get type make install.&lt;br /&gt;
&lt;br /&gt;
Now press &amp;#039;c&amp;#039; again to update the changes.&lt;br /&gt;
&lt;br /&gt;
Hopefully now that all the additional modules have been switched off no errors will be shown. Press &amp;#039;g&amp;#039; to generate the makefiles and exit. At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Note that at this point you have only built and installed the TexGen Core library which doesn&amp;#039;t actually do anything on its own. If you plan to incorporate TexGen into your own C++ program then this is enough, however if you would like to interface with TexGen from a Python script or Graphical User Interface then follow the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Compiling optional modules ===&lt;br /&gt;
==== Python interface ====&lt;br /&gt;
[http://www.python.org/download/ Download Python] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/download.html Download SWIG] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Open a shell in the folder where you called ccmake from for the first time (e.g. ~/TexGen/bin):&lt;br /&gt;
 ccmake ../&lt;br /&gt;
&lt;br /&gt;
Use the up and down arrows to reach BUILD_PYTHON_INTERFACE and press Enter to set it to ON. Then press &amp;#039;c&amp;#039; to configure. You will probably get a warning saying you need to specify the location of SWIG and/or Python, press &amp;#039;e&amp;#039; to close it.&lt;br /&gt;
&lt;br /&gt;
Set the PYTHON_INCLUDE_PATH, PYTHON_LIBRARY, PYTHON_SITEPACKAGES_DIR, SWIG_DIR and SWIG_EXECUTABLE parameters correctly where necessary. If you have installed packages to your home directory then they should look something like this:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_INCLUDE_PATH: ~/include/python2.7&lt;br /&gt;
 PYTHON_LIBRARY: ~/lib/python2.5/config/libpython2.7.a&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR: ~/lib/python2.7/site-packages&lt;br /&gt;
 SWIG_DIR: ~/bin&lt;br /&gt;
 SWIG_EXECUTABLE: ~/bin/swig&lt;br /&gt;
&lt;br /&gt;
Once that is done press &amp;#039;c&amp;#039; again. You may need perform this process over several iterations. When everything is set correctly press &amp;#039;g&amp;#039; to generate the makefiles.&lt;br /&gt;
&lt;br /&gt;
At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Assuming the build completed without errors you should now be able to access TexGen functions from within Python. In order to check everything worked as planned open Python in interactive mode by typing:&lt;br /&gt;
 python&lt;br /&gt;
&lt;br /&gt;
Then from within Python type:&lt;br /&gt;
 from TexGen.Core import *&lt;br /&gt;
 CTexGen.GetInstance().GetVersion()&lt;br /&gt;
&lt;br /&gt;
This should display the version of TexGen installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when linking _Core.so:&lt;br /&gt;
 libpython2.5.a(abstract.o): relocation R_X86_64_32 against `a local symbol&amp;#039;&lt;br /&gt;
 can not be used when making a shared object; recompile with -fPIC&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Try removing libpython2.5.a from the libraries to link to by setting PYTHON_LIBRARY to a bogus path, e.g.:&lt;br /&gt;
&lt;br /&gt;
PYTHON_LIBRARY: ~/&lt;br /&gt;
&lt;br /&gt;
By doing so you may receive a warning similar to this:&lt;br /&gt;
 Warning: Ignoring path found in link libraries for target: _Core, path is:&lt;br /&gt;
 /home/username. Expected a library name or a full path to a library name.&lt;br /&gt;
This warning may be ignored.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Compiling from Source</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-09-06T12:56:46Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* SWIG */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to compile TexGen and &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; of its modules, the following software is required:&lt;br /&gt;
&lt;br /&gt;
The following programs are needed to build TexGen:&lt;br /&gt;
* [http://www.cmake.org/ CMake]&lt;br /&gt;
* [http://www.swig.org/ SWIG]&lt;br /&gt;
&lt;br /&gt;
The following libraries are needed to link to TexGen:&lt;br /&gt;
* [http://www.vtk.org/ VTK]&lt;br /&gt;
* [http://www.wxwidgets.org/ wxWidgets]&lt;br /&gt;
* [http://www.opencascade.org/ OpenCascade]&lt;br /&gt;
* [http://www.python.org/ Python]&lt;br /&gt;
&lt;br /&gt;
However to perform a minimum build of TexGen with none of the additional modules you only require CMake and a C++ compiler. It is recommended to begin with a minimum build, once that is working try adding modules one at a time. A list of modules along with dependencies is shown below:&lt;br /&gt;
&lt;br /&gt;
* Python interface: Python, SWIG&lt;br /&gt;
* Renderer: VTK&lt;br /&gt;
* Export: OpenCascade&lt;br /&gt;
* GUI: wxWidgets, Renderer, Python interface&lt;br /&gt;
* Unit tests: CPPUnit&lt;br /&gt;
&lt;br /&gt;
A graphical representation of the modules and their dependencies can also be found in the [http://texgen.sourceforge.net/api/ TexGen API].&lt;br /&gt;
&lt;br /&gt;
If you want to get the source code from GitHub you will need to install [https://git-scm.com/downloads Git] by following the instructions below. Note that this is the very latest development source and so may it contain some bugs and unfinished features. However it is very easy to keep up to date with the latest version of TexGen using this method and will allow you to keep any modifications you have made to the source when updating. If you find a bug or implement new features that may be useful to the rest of the community please send a pull request and they will be incorporated into TexGen following review.&lt;br /&gt;
&lt;br /&gt;
Alternatively the stable source code can be downloaded as a [http://sourceforge.net/project/showfiles.php?group_id=181000 tarball]. Download the latest file release named &amp;#039;&amp;#039;texgen-3.x.x.tar.gz&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Windows (Microsoft Visual Studio C++, recommended method) ==&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
It is assumed that Microsoft Visual Studio is already installed.  If it isn&amp;#039;t and you plan to use it, then install it.  It may be possible to use the free [http://www.microsoft.com/express/ Visual Studio Express]; if anyone tries this and finds out one way or the other, please post the information either here or in the [http://texgen.sourceforge.net/phpBB2/index.php forum]. Brief instructions on how to install the various 3rd party libraries under windows are given below. Note that you do not need to install all of these in order to perform the minimal build. Only CMake is absolutely required.&lt;br /&gt;
&lt;br /&gt;
TexGen versions 3.11.0 onwards have been built with VS2017. All of the libraries used can be built with this version of Visual Studio.&lt;br /&gt;
&lt;br /&gt;
==== CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and install, selecting &amp;#039;Add CMake to the system PATH for all users&amp;#039; (select current user if this is not permissible on your system).&lt;br /&gt;
&lt;br /&gt;
==== Git ====&lt;br /&gt;
&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and install it.&lt;br /&gt;
&lt;br /&gt;
==== SWIG ====&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/ Download] the windows .zip files and extract to a suitable location (e.g. c:\Program Files\swigwin-4.0.2).  The current version of TexGen is built with version 4.0.2&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/ Download Python] and install.  Note that TexGen is currently built with Python 2.7.&lt;br /&gt;
&lt;br /&gt;
For a Release build the include files and python27.lib provided with the standard installation can be used. &lt;br /&gt;
&lt;br /&gt;
For a Debug build it is necessary to build a debug version of Python. Download the latest [https://www.python.org/downloads/source/ source release] and follow the instructions in the README for building for your environment. For Visual Studio use the VS solution in the PCBuild folder. &lt;br /&gt;
Note that for newer VS versions it is necessary to apply this [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/issues/161 patch] in order for the build to be successful.&lt;br /&gt;
&lt;br /&gt;
==== OpenCascade ====&lt;br /&gt;
&lt;br /&gt;
[http://www.opencascade.org/getocc/download/ Download OpenCascade] and install; this extracts the files to a directory. If the installation doesn&amp;#039;t start automatically, run the &amp;#039;install.bat&amp;#039; file located the directory where the files where extracted (read &amp;#039;readme.htm&amp;#039; file in the same directory for more information).  Choose &amp;#039;complete installation&amp;#039; and tick the box to set the environment variables.  The current version of TexGen is built with OpenCascade version 7.0.0.&lt;br /&gt;
&lt;br /&gt;
==== VTK ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/louisepb/VTK-6.3 Download] version 6.3.0 of the source files and extract them. Instructions for building VTK using CMake are given on the [https://vtk.org/Wiki/VTK/Configure_and_Build VTK webpage] The following CMake settings should be set:&lt;br /&gt;
&lt;br /&gt;
 BUILD_EXAMPLES           OFF&lt;br /&gt;
 BUILD_SHARED_LIBS        OFF&lt;br /&gt;
 VTK_USE_MPEG2_ENCODER    OFF&lt;br /&gt;
 VTK_USE_PARALLEL         OFF&lt;br /&gt;
 VTK_USE_RENDERING        ON&lt;br /&gt;
 VTK_WRAP_JAVA            OFF&lt;br /&gt;
 VTK_WRAP_PYTHON          OFF&lt;br /&gt;
 VTK_WRAP_TCL             OFF&lt;br /&gt;
&lt;br /&gt;
(Version 6.3 is no longer available on the VTK webpage so the link above makes this available until TexGen has been modified to work with more recent VTK versions).&lt;br /&gt;
You may be able to get things working with different settings, however these are the settings I use and are known to work.&lt;br /&gt;
&lt;br /&gt;
==== wxWidgets ====&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/downloads/ Download] and install the windows version 3.0.4 of wxWidgets (wxMSW). It is then necessary to compile wxWidgets from source, detailed instructions on how to do this can be found in &amp;#039;install.txt&amp;#039; located in the &amp;#039;docs\msw&amp;#039; subfolder. The main steps are to open &amp;#039;wx.dsw&amp;#039; with MSVC located in the &amp;#039;build\msw&amp;#039; subfolder and compile both Release and Debug configurations (The configuration can be selected from the drop down box on the main toolbar in Visual Studio. Universal and DLL versions need not be compiled).&lt;br /&gt;
&lt;br /&gt;
==== CppUnit ====&lt;br /&gt;
To build the test module download [https://www.freedesktop.org/wiki/Software/cppunit/ cppunit]&lt;br /&gt;
&lt;br /&gt;
The VS solution is in the Examples folder. When this is run, accept the option to upgrade to your version of VS and then build. The resulting cppunit.lib file can then be found in the /lib folder.&lt;br /&gt;
&lt;br /&gt;
=== Checkout TexGen source code from GitHub ===&lt;br /&gt;
* Create a directory where you would like to store the TexGen source code in Windows Explorer. &lt;br /&gt;
* Open a Git Bash shell within that folder.&lt;br /&gt;
* Type &lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
A new TexGen folder will have been created which contains a downloaded copy of the TexGen repository.&lt;br /&gt;
&lt;br /&gt;
=== Configuring the build system with CMake ===&lt;br /&gt;
Run CMake from its shortcut on the Start menu. There are some general instructions on using CMake on the [https://cmake.org/cmake-tutorial/ CMake website] which are worth reading. You will need to fill in the source code location, this should point to where you checked out out the latest TexGen GitHub code or where you extracted the source code from the zip file. Also set where to place the binary files once they are compiled, this can be the same as the source directory, a subdirectory within the source directory or any other location.&lt;br /&gt;
&lt;br /&gt;
Once that is entered click &amp;#039;Configure&amp;#039; and choose the Visual Studio version which you have installed and click ok. You will initially get a number of error messages such as:&lt;br /&gt;
&lt;br /&gt;
 CMake Error: Swig was not found on the system. Please specify the location of Swig. (click OK)&lt;br /&gt;
 CMake Error: Error in configuration process, project files may be invalid. (click OK)&lt;br /&gt;
&lt;br /&gt;
This is normal, in order to get rid of the errors you will need to tell CMake where the various libraries you have installed can be found. This is done in the Cache Values sections.&lt;br /&gt;
&lt;br /&gt;
It is recommended to begin with a minimal build, this is achieved by setting the cache values as follows:&lt;br /&gt;
&lt;br /&gt;
 BUILD_CASCADE_EXPORT           OFF&lt;br /&gt;
 BUILD_DOCUMENTATION            OFF&lt;br /&gt;
 BUILD_EXAMPLES                 OFF&lt;br /&gt;
 BUILD_GUI                      OFF&lt;br /&gt;
 BUILD_PYTHON_INTERFACE         OFF&lt;br /&gt;
 BUILD_RENDERER                 OFF&lt;br /&gt;
 BUILD_SHARED                   ON&lt;br /&gt;
 BUILD_UNIT_TESTS               OFF&lt;br /&gt;
&lt;br /&gt;
Once these are set press configure again and you shouldn&amp;#039;t have any more errors/warnings. Press &amp;#039;OK&amp;#039; to generate the MSVC solution and project files. Configuring the various optional modules is explained in [[#Configuring optional modules]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring optional modules ===&lt;br /&gt;
&lt;br /&gt;
Once the minimal build is working you may want to switch on the optional modules. To do this open up CMake again and switch the modules you want to ON in the Cache Values then click Configure. You will most likely see some errors telling you it is unable to automatically find certain directories. You will need to specify these manually. An explanation of the different locations is listed below:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039;&amp;#039;&amp;#039; - This should be the folder where the TexGen python modules will be placed. Usually located in &amp;#039;C:\Python27\Lib\site-packages&amp;#039;, but this will depend on the version of Python installed and where you decided to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_DIR&amp;#039;&amp;#039;&amp;#039; -  This is the location where you extracted the SWIG executable. e.g. &amp;#039;C:\Program Files\swigwin-2.0.10&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_EXECUTABLE&amp;#039;&amp;#039;&amp;#039; - Same as root directory followed by &amp;#039;swig.exe&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_ROOT_DIR&amp;#039;&amp;#039;&amp;#039; - Location where you install wxWidgets. e.g. &amp;#039;C:/wxWidgets-3.0.4&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_LIB_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the wxWidgets libraries were compiled to, should be the same as the root directory followed by &amp;#039;lib/vc_lib&amp;#039; or &amp;#039;lib/vc_x64_lib&amp;#039; for 64-bit builds.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WX&amp;#039;&amp;#039;&amp;#039; - CMake may not automatically pick up the location of all libraries in which case these may need to be input manually. The image below shows the CMake GUI part way through specifying the library locations&lt;br /&gt;
[[Image:wxWidgetsCMake.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_INCLUDE_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade header files are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/inc&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/lib&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_DEBUG_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade debug libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/libd&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VTK_DIR&amp;#039;&amp;#039;&amp;#039; - Location of the VTK binary directory (note: not the source directory).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CPPUNIT_LIBRARY&amp;#039;&amp;#039;&amp;#039; - Location where the cppunit library file is located. e.g. &amp;#039;C:/cppunit-1.15.1/lib/cppunit.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After setting the directories manually, click on configure again. You may need to go through several iterations of changing parameters then pressing configure. Once you have finished changing parameters and have successfully pressed configure without error messages you can press the OK button to generate the build. Note: you can always come back to this at a later time to make changes.&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Find &amp;#039;TexGen.sln&amp;#039; which should be located in the directory where you told CMake to output the binary files to and open it with Microsoft Visual Studio.&lt;br /&gt;
&lt;br /&gt;
Set the configuration to &amp;#039;Release&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
If building the Graphical User Interface with Visual Studio 2008 or later open the properties page for the TexGenGUI project.  Select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Build the solution. Hopefully the project will have been compiled without errors.&lt;br /&gt;
&lt;br /&gt;
If you want to compile and execute the Graphical User Interface you will need to install it, you will not be able to execute it directly from the build directory. This is done by right click on the &amp;#039;INSTALL&amp;#039; project in the Solution Explorer and selecting Build. This will copy the Python modules into the Python site-packages directory so that they can be imported into scripts, and it will copy the executable along with other necessary files into &amp;#039;C:\Program Files\TexGen\&amp;#039; by default (this can be changed with the CMAKE_INSTALL_PREFIX cache value in CMake). TexGenGUI.exe should then be run from the installed location, if you attempt to run it directly from where it was compiled you will get some errors on launch.&lt;br /&gt;
&lt;br /&gt;
=== Building the documentation ===&lt;br /&gt;
&lt;br /&gt;
To build the documentation, [http://www.doxygen.nl/download.html Doxygen] and [https://graphviz.gitlab.io/download/ Graphviz] are required.  Open a command prompt in the &amp;#039;Docs&amp;#039; subdirectory of the source code and run &amp;#039;doxygen&amp;#039;. If the doxygen directory is not in your path, you must add it, or give the full path on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Integrating TexGen with ABAQUS ===&lt;br /&gt;
&lt;br /&gt;
If you are using ABAQUS and wish to use TexGen Python scripting from within the ABAQUS/CAE environment, there are a few extra steps to perform. This is because ABAQUS comes packaged with its own version of Python, so any modules added to your standalone python installation will not be accessible by ABAQUS. You must compile the TexGen Python modules with the same version of Python as ABAQUS uses. The following table shows which version of Python is used in specific ABAQUS versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ABAQUS Version !! Python Version&lt;br /&gt;
|-&lt;br /&gt;
| 6.6-1  || 2.3.3&lt;br /&gt;
|- &lt;br /&gt;
| 6.7-1  || 2.4.3 &lt;br /&gt;
|- &lt;br /&gt;
| 6.10-2 || 2.6.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.14-1 || 2.7.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If your version of ABAQUS is not listed in the table above you can type &amp;#039;abaqus python -V&amp;#039; to check what version of Python is used (then please edit this page to update the table). You can obtain specific versions of Python from https://www.python.org/downloads/source/ .&lt;br /&gt;
&lt;br /&gt;
Additionally you will need to place the TexGen python modules inside ABAQUS&amp;#039; version of python. There are a few ways to accomplish this, the easiest is perhaps to set the CMake cache variable &amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039; point to the ABAQUS&amp;#039; python directory, e.g.:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR     C:\Abaqus\6.14-1\Python\Lib\&lt;br /&gt;
&lt;br /&gt;
Then when you build the INSTALL project in MSVC++ it will automatically copy the TexGen python modules to the ABAQUS&amp;#039; Python. Alternatively you can simply copy the files manually or modify Python&amp;#039;s search path to include the TexGen python modules, e.g. In python:&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.path.append(&amp;#039;C:/Python27/Lib/site-packages/&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
There may also be a need to modify the file [source code location]/Installer/texgen.nsi.  The original version, lines 1-3 are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python25.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while on Jon&amp;#039;s version they are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python24.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error LNK1104: cannot open file &amp;#039;python25_d.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; The windows installation of Python doesn&amp;#039;t come with the debug library (&amp;#039;python25_d.lib&amp;#039;, the _d part means debug). You should be able to compile in release mode however. If you really want to compile in debug mode you will need to compile Python from source and link to that. Or you can try to link to the release library &amp;#039;python25.lib&amp;#039; instead, easiest way to do that is to copy &amp;#039;python25.lib&amp;#039; to &amp;#039;python25_d.lib&amp;#039; but this may cause problems during linking or execution.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error C1083: Cannot open include file: &amp;#039;wx/wxprec.h&amp;#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Make sure that you have compiled wxWidgets and that the wxWidgets_XXX cache variables are set correctly in CMake.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I do not have a &amp;#039;libd&amp;#039; folder in &amp;#039;ros/win32&amp;#039; for OpenCASCADE.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; If you do not compile OpenCASCADE yourself then this folder does not exist. However it can be ignored if you are only interested in building the release version of TexGen. If you really want to compile the debug version please refer to the OpenCASCADE documentation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; Why do I get the error message: &amp;quot;The parameter is incorrect.&amp;quot; when launching TexGenGUI.exe?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; In the TexGenGUI Property Pages select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I am getting error messages at the stage of building GUI:[ 86%] Building CXX object GUI/CMakeFiles/TexGenGUI.dir/PrecompiledHeaders.cpp.o&lt;br /&gt;
In file included from /usr/include/python2.4/pyconfig.h:6,&lt;br /&gt;
                 from /usr/include/python2.4/Python.h:8,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:30,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/usr/include/python2.4/pyconfig-64.h:823:1: warning: &amp;quot;_FILE_OFFSET_BITS&amp;quot; redefined&lt;br /&gt;
&amp;lt;command line&amp;gt;:1:1: warning: this is the location of the previous definition&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/wx.h:15,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/defs.h:42:13: error: #error &amp;quot;No Target! You should use wx-config program for compilation flags!&amp;quot;&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/cmndata.h:17,&lt;br /&gt;
                 from /data/include/wx-2.8/wx/wx.h:65,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/encinfo.h:64:6: error: #error &amp;quot;Unsupported toolkit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and lots of othe warnings and error messages afterwards.&lt;br /&gt;
&lt;br /&gt;
The location of wx-config is correct in cmake; wxWidgets installation appears to have been successful; the system is Red Hat Linux 64-bit&lt;br /&gt;
&lt;br /&gt;
== Windows (Cygwin and gcc, alternate method) ==&lt;br /&gt;
A limited build (without graphics) can be made under cygwin, this is a UNIX emulation environment available at [http://www.cygwin.com www.cygwin.com]. &lt;br /&gt;
This can exist peacefully next to the native windows version. &lt;br /&gt;
Cygwin creates a unix-style file system within your windows installation. If you choose c:/cygwin as your install directory, your HOME will be at c:/cygwin/home/&amp;lt;username&amp;gt;/. &lt;br /&gt;
&lt;br /&gt;
=== Download cygwin and install packages ===&lt;br /&gt;
Install gcc, g++, wget, make and cmake using the setup.exe program from the cygwin website. &lt;br /&gt;
For the mesh generator and python interface to work we currently need VTK and swig. &lt;br /&gt;
&lt;br /&gt;
This downloads and installs swig from source (when starting the cygwin shell you can paste this into the command line, otherwise write it to a file and run it with sh). &lt;br /&gt;
 mkdir progs&lt;br /&gt;
 cd progs &lt;br /&gt;
 SWIG=swig-1.3.31&lt;br /&gt;
 wget -nc http://kent.dl.sourceforge.net/sourceforge/swig/$SWIG.tar.gz&lt;br /&gt;
 tar xzvf $SWIG.tar.gz &lt;br /&gt;
 cd $SWIG&lt;br /&gt;
 ./configure &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This downloads and installs VTK from source, in the ccmake stage, use the cmake graphical commands to get a working install. &lt;br /&gt;
 VTK=vtk-6.3.0&lt;br /&gt;
 wget -nc https://vtk.org/download/&lt;br /&gt;
 tar xzvf $VTK.tar.gz&lt;br /&gt;
 mkdir vtkbin&lt;br /&gt;
 cd vtkbin&lt;br /&gt;
 ccmake ../VTK&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Install TexGen from source ===&lt;br /&gt;
Now we can proceed to install texgen, as an example we&amp;#039;ll work in ~/temp/texgen&lt;br /&gt;
 cd ~; mkdir temp; cd temp; mkdir texgen; cd texgen&lt;br /&gt;
 svn checkout svn//svn.code.sf.net/p/texgen/code/TexGen/trunk/ TexGen&lt;br /&gt;
 cd .. ; mkdir tbin; cd tbin&lt;br /&gt;
 ccmake ../texgen&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This should result in a working texgen install in ~/temp/texgen/tbin.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
=== Notes ===&lt;br /&gt;
If you are installing to a system where you don&amp;#039;t have root access (i.e. this computer does not belong to you) you won&amp;#039;t be able to install the software using the default configure script. This is because by default software is installed to the /usr/local directory. If you are not a systems administrator then you will quite rightly not have write access to this folder. All is not lost! You can still install software into your home directory. In order to do this you should always call the configure script with the following parameter: --prefix=$HOME. This goes for all the software to be installed below. All executables will then be placed in ~/bin, libraries in ~/lib, includes in ~/include, etc...&lt;br /&gt;
&lt;br /&gt;
In the guide below the parameter is included in italic. If you do in fact have root access then it is recommended to omit this parameter and install to the default directory so that other users will also have access to the software.&lt;br /&gt;
&lt;br /&gt;
=== Get TexGen from GitHub repository ===&lt;br /&gt;
&lt;br /&gt;
==== Install Git ====&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and unpack.&lt;br /&gt;
&lt;br /&gt;
==== Clone TexGen ====&lt;br /&gt;
Open a shell in folder you wish to place TexGen (e.g. ~/):&lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
&lt;br /&gt;
=== Compile source ===&lt;br /&gt;
&lt;br /&gt;
==== Install CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and unpack.&lt;br /&gt;
Open a shell in extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==== Compile TexGen core ====&lt;br /&gt;
Open a shell in the folder with the TexGen source code (e.g. ~/TexGen):&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 cd bin&lt;br /&gt;
 ccmake ../&lt;br /&gt;
Press &amp;#039;c&amp;#039; to configure. When a warning pops up telling you it can&amp;#039;t find such and such a file press &amp;#039;e&amp;#039; to close it. You will now need to specify which components of TexGen to build and where their dependencies can be found. Use the up and down arrows to move the caret and press enter to modify options. Do this to set BUILD_GUI, BUILD_PYTHON_INTERFACE and BUILD_RENDERER to OFF. You are basically telling CMake not to attempt to build these components, which means that you won&amp;#039;t need to have installed their dependencies.&lt;br /&gt;
&lt;br /&gt;
Similarly to the --prefix=$HOME parameter to the configure script, you can tell CMake to install TexGen to your home directory by changing CMAKE_INSTALL_PREFIX to ~/. Note that it won&amp;#039;t actually install anything until you get type make install.&lt;br /&gt;
&lt;br /&gt;
Now press &amp;#039;c&amp;#039; again to update the changes.&lt;br /&gt;
&lt;br /&gt;
Hopefully now that all the additional modules have been switched off no errors will be shown. Press &amp;#039;g&amp;#039; to generate the makefiles and exit. At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Note that at this point you have only built and installed the TexGen Core library which doesn&amp;#039;t actually do anything on its own. If you plan to incorporate TexGen into your own C++ program then this is enough, however if you would like to interface with TexGen from a Python script or Graphical User Interface then follow the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Compiling optional modules ===&lt;br /&gt;
==== Python interface ====&lt;br /&gt;
[http://www.python.org/download/ Download Python] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/download.html Download SWIG] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Open a shell in the folder where you called ccmake from for the first time (e.g. ~/TexGen/bin):&lt;br /&gt;
 ccmake ../&lt;br /&gt;
&lt;br /&gt;
Use the up and down arrows to reach BUILD_PYTHON_INTERFACE and press Enter to set it to ON. Then press &amp;#039;c&amp;#039; to configure. You will probably get a warning saying you need to specify the location of SWIG and/or Python, press &amp;#039;e&amp;#039; to close it.&lt;br /&gt;
&lt;br /&gt;
Set the PYTHON_INCLUDE_PATH, PYTHON_LIBRARY, PYTHON_SITEPACKAGES_DIR, SWIG_DIR and SWIG_EXECUTABLE parameters correctly where necessary. If you have installed packages to your home directory then they should look something like this:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_INCLUDE_PATH: ~/include/python2.7&lt;br /&gt;
 PYTHON_LIBRARY: ~/lib/python2.5/config/libpython2.7.a&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR: ~/lib/python2.7/site-packages&lt;br /&gt;
 SWIG_DIR: ~/bin&lt;br /&gt;
 SWIG_EXECUTABLE: ~/bin/swig&lt;br /&gt;
&lt;br /&gt;
Once that is done press &amp;#039;c&amp;#039; again. You may need perform this process over several iterations. When everything is set correctly press &amp;#039;g&amp;#039; to generate the makefiles.&lt;br /&gt;
&lt;br /&gt;
At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Assuming the build completed without errors you should now be able to access TexGen functions from within Python. In order to check everything worked as planned open Python in interactive mode by typing:&lt;br /&gt;
 python&lt;br /&gt;
&lt;br /&gt;
Then from within Python type:&lt;br /&gt;
 from TexGen.Core import *&lt;br /&gt;
 CTexGen.GetInstance().GetVersion()&lt;br /&gt;
&lt;br /&gt;
This should display the version of TexGen installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when linking _Core.so:&lt;br /&gt;
 libpython2.5.a(abstract.o): relocation R_X86_64_32 against `a local symbol&amp;#039;&lt;br /&gt;
 can not be used when making a shared object; recompile with -fPIC&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Try removing libpython2.5.a from the libraries to link to by setting PYTHON_LIBRARY to a bogus path, e.g.:&lt;br /&gt;
&lt;br /&gt;
PYTHON_LIBRARY: ~/&lt;br /&gt;
&lt;br /&gt;
By doing so you may receive a warning similar to this:&lt;br /&gt;
 Warning: Ignoring path found in link libraries for target: _Core, path is:&lt;br /&gt;
 /home/username. Expected a library name or a full path to a library name.&lt;br /&gt;
This warning may be ignored.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Compiling from Source</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-09-06T12:42:23Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to compile TexGen and &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; of its modules, the following software is required:&lt;br /&gt;
&lt;br /&gt;
The following programs are needed to build TexGen:&lt;br /&gt;
* [http://www.cmake.org/ CMake]&lt;br /&gt;
* [http://www.swig.org/ SWIG]&lt;br /&gt;
&lt;br /&gt;
The following libraries are needed to link to TexGen:&lt;br /&gt;
* [http://www.vtk.org/ VTK]&lt;br /&gt;
* [http://www.wxwidgets.org/ wxWidgets]&lt;br /&gt;
* [http://www.opencascade.org/ OpenCascade]&lt;br /&gt;
* [http://www.python.org/ Python]&lt;br /&gt;
&lt;br /&gt;
However to perform a minimum build of TexGen with none of the additional modules you only require CMake and a C++ compiler. It is recommended to begin with a minimum build, once that is working try adding modules one at a time. A list of modules along with dependencies is shown below:&lt;br /&gt;
&lt;br /&gt;
* Python interface: Python, SWIG&lt;br /&gt;
* Renderer: VTK&lt;br /&gt;
* Export: OpenCascade&lt;br /&gt;
* GUI: wxWidgets, Renderer, Python interface&lt;br /&gt;
* Unit tests: CPPUnit&lt;br /&gt;
&lt;br /&gt;
A graphical representation of the modules and their dependencies can also be found in the [http://texgen.sourceforge.net/api/ TexGen API].&lt;br /&gt;
&lt;br /&gt;
If you want to get the source code from GitHub you will need to install [https://git-scm.com/downloads Git] by following the instructions below. Note that this is the very latest development source and so may it contain some bugs and unfinished features. However it is very easy to keep up to date with the latest version of TexGen using this method and will allow you to keep any modifications you have made to the source when updating. If you find a bug or implement new features that may be useful to the rest of the community please send a pull request and they will be incorporated into TexGen following review.&lt;br /&gt;
&lt;br /&gt;
Alternatively the stable source code can be downloaded as a [http://sourceforge.net/project/showfiles.php?group_id=181000 tarball]. Download the latest file release named &amp;#039;&amp;#039;texgen-3.x.x.tar.gz&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Windows (Microsoft Visual Studio C++, recommended method) ==&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
It is assumed that Microsoft Visual Studio is already installed.  If it isn&amp;#039;t and you plan to use it, then install it.  It may be possible to use the free [http://www.microsoft.com/express/ Visual Studio Express]; if anyone tries this and finds out one way or the other, please post the information either here or in the [http://texgen.sourceforge.net/phpBB2/index.php forum]. Brief instructions on how to install the various 3rd party libraries under windows are given below. Note that you do not need to install all of these in order to perform the minimal build. Only CMake is absolutely required.&lt;br /&gt;
&lt;br /&gt;
TexGen versions 3.11.0 onwards have been built with VS2017. All of the libraries used can be built with this version of Visual Studio.&lt;br /&gt;
&lt;br /&gt;
==== CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and install, selecting &amp;#039;Add CMake to the system PATH for all users&amp;#039; (select current user if this is not permissible on your system).&lt;br /&gt;
&lt;br /&gt;
==== Git ====&lt;br /&gt;
&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and install it.&lt;br /&gt;
&lt;br /&gt;
==== SWIG ====&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/ Download] version 4.0.0 of the windows .zip files and extract to a suitable location (e.g. c:\Program Files\swigwin-4.0.0).&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/ Download Python] and install.  Note that TexGen is currently built with Python 2.7.&lt;br /&gt;
&lt;br /&gt;
For a Release build the include files and python27.lib provided with the standard installation can be used. &lt;br /&gt;
&lt;br /&gt;
For a Debug build it is necessary to build a debug version of Python. Download the latest [https://www.python.org/downloads/source/ source release] and follow the instructions in the README for building for your environment. For Visual Studio use the VS solution in the PCBuild folder. &lt;br /&gt;
Note that for newer VS versions it is necessary to apply this [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/issues/161 patch] in order for the build to be successful.&lt;br /&gt;
&lt;br /&gt;
==== OpenCascade ====&lt;br /&gt;
&lt;br /&gt;
[http://www.opencascade.org/getocc/download/ Download OpenCascade] and install; this extracts the files to a directory. If the installation doesn&amp;#039;t start automatically, run the &amp;#039;install.bat&amp;#039; file located the directory where the files where extracted (read &amp;#039;readme.htm&amp;#039; file in the same directory for more information).  Choose &amp;#039;complete installation&amp;#039; and tick the box to set the environment variables.  The current version of TexGen is built with OpenCascade version 7.0.0.&lt;br /&gt;
&lt;br /&gt;
==== VTK ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/louisepb/VTK-6.3 Download] version 6.3.0 of the source files and extract them. Instructions for building VTK using CMake are given on the [https://vtk.org/Wiki/VTK/Configure_and_Build VTK webpage] The following CMake settings should be set:&lt;br /&gt;
&lt;br /&gt;
 BUILD_EXAMPLES           OFF&lt;br /&gt;
 BUILD_SHARED_LIBS        OFF&lt;br /&gt;
 VTK_USE_MPEG2_ENCODER    OFF&lt;br /&gt;
 VTK_USE_PARALLEL         OFF&lt;br /&gt;
 VTK_USE_RENDERING        ON&lt;br /&gt;
 VTK_WRAP_JAVA            OFF&lt;br /&gt;
 VTK_WRAP_PYTHON          OFF&lt;br /&gt;
 VTK_WRAP_TCL             OFF&lt;br /&gt;
&lt;br /&gt;
(Version 6.3 is no longer available on the VTK webpage so the link above makes this available until TexGen has been modified to work with more recent VTK versions).&lt;br /&gt;
You may be able to get things working with different settings, however these are the settings I use and are known to work.&lt;br /&gt;
&lt;br /&gt;
==== wxWidgets ====&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/downloads/ Download] and install the windows version 3.0.4 of wxWidgets (wxMSW). It is then necessary to compile wxWidgets from source, detailed instructions on how to do this can be found in &amp;#039;install.txt&amp;#039; located in the &amp;#039;docs\msw&amp;#039; subfolder. The main steps are to open &amp;#039;wx.dsw&amp;#039; with MSVC located in the &amp;#039;build\msw&amp;#039; subfolder and compile both Release and Debug configurations (The configuration can be selected from the drop down box on the main toolbar in Visual Studio. Universal and DLL versions need not be compiled).&lt;br /&gt;
&lt;br /&gt;
==== CppUnit ====&lt;br /&gt;
To build the test module download [https://www.freedesktop.org/wiki/Software/cppunit/ cppunit]&lt;br /&gt;
&lt;br /&gt;
The VS solution is in the Examples folder. When this is run, accept the option to upgrade to your version of VS and then build. The resulting cppunit.lib file can then be found in the /lib folder.&lt;br /&gt;
&lt;br /&gt;
=== Checkout TexGen source code from GitHub ===&lt;br /&gt;
* Create a directory where you would like to store the TexGen source code in Windows Explorer. &lt;br /&gt;
* Open a Git Bash shell within that folder.&lt;br /&gt;
* Type &lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
A new TexGen folder will have been created which contains a downloaded copy of the TexGen repository.&lt;br /&gt;
&lt;br /&gt;
=== Configuring the build system with CMake ===&lt;br /&gt;
Run CMake from its shortcut on the Start menu. There are some general instructions on using CMake on the [https://cmake.org/cmake-tutorial/ CMake website] which are worth reading. You will need to fill in the source code location, this should point to where you checked out out the latest TexGen GitHub code or where you extracted the source code from the zip file. Also set where to place the binary files once they are compiled, this can be the same as the source directory, a subdirectory within the source directory or any other location.&lt;br /&gt;
&lt;br /&gt;
Once that is entered click &amp;#039;Configure&amp;#039; and choose the Visual Studio version which you have installed and click ok. You will initially get a number of error messages such as:&lt;br /&gt;
&lt;br /&gt;
 CMake Error: Swig was not found on the system. Please specify the location of Swig. (click OK)&lt;br /&gt;
 CMake Error: Error in configuration process, project files may be invalid. (click OK)&lt;br /&gt;
&lt;br /&gt;
This is normal, in order to get rid of the errors you will need to tell CMake where the various libraries you have installed can be found. This is done in the Cache Values sections.&lt;br /&gt;
&lt;br /&gt;
It is recommended to begin with a minimal build, this is achieved by setting the cache values as follows:&lt;br /&gt;
&lt;br /&gt;
 BUILD_CASCADE_EXPORT           OFF&lt;br /&gt;
 BUILD_DOCUMENTATION            OFF&lt;br /&gt;
 BUILD_EXAMPLES                 OFF&lt;br /&gt;
 BUILD_GUI                      OFF&lt;br /&gt;
 BUILD_PYTHON_INTERFACE         OFF&lt;br /&gt;
 BUILD_RENDERER                 OFF&lt;br /&gt;
 BUILD_SHARED                   ON&lt;br /&gt;
 BUILD_UNIT_TESTS               OFF&lt;br /&gt;
&lt;br /&gt;
Once these are set press configure again and you shouldn&amp;#039;t have any more errors/warnings. Press &amp;#039;OK&amp;#039; to generate the MSVC solution and project files. Configuring the various optional modules is explained in [[#Configuring optional modules]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring optional modules ===&lt;br /&gt;
&lt;br /&gt;
Once the minimal build is working you may want to switch on the optional modules. To do this open up CMake again and switch the modules you want to ON in the Cache Values then click Configure. You will most likely see some errors telling you it is unable to automatically find certain directories. You will need to specify these manually. An explanation of the different locations is listed below:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039;&amp;#039;&amp;#039; - This should be the folder where the TexGen python modules will be placed. Usually located in &amp;#039;C:\Python27\Lib\site-packages&amp;#039;, but this will depend on the version of Python installed and where you decided to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_DIR&amp;#039;&amp;#039;&amp;#039; -  This is the location where you extracted the SWIG executable. e.g. &amp;#039;C:\Program Files\swigwin-2.0.10&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_EXECUTABLE&amp;#039;&amp;#039;&amp;#039; - Same as root directory followed by &amp;#039;swig.exe&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_ROOT_DIR&amp;#039;&amp;#039;&amp;#039; - Location where you install wxWidgets. e.g. &amp;#039;C:/wxWidgets-3.0.4&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_LIB_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the wxWidgets libraries were compiled to, should be the same as the root directory followed by &amp;#039;lib/vc_lib&amp;#039; or &amp;#039;lib/vc_x64_lib&amp;#039; for 64-bit builds.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WX&amp;#039;&amp;#039;&amp;#039; - CMake may not automatically pick up the location of all libraries in which case these may need to be input manually. The image below shows the CMake GUI part way through specifying the library locations&lt;br /&gt;
[[Image:wxWidgetsCMake.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_INCLUDE_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade header files are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/inc&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/lib&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_DEBUG_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade debug libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/libd&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VTK_DIR&amp;#039;&amp;#039;&amp;#039; - Location of the VTK binary directory (note: not the source directory).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CPPUNIT_LIBRARY&amp;#039;&amp;#039;&amp;#039; - Location where the cppunit library file is located. e.g. &amp;#039;C:/cppunit-1.15.1/lib/cppunit.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After setting the directories manually, click on configure again. You may need to go through several iterations of changing parameters then pressing configure. Once you have finished changing parameters and have successfully pressed configure without error messages you can press the OK button to generate the build. Note: you can always come back to this at a later time to make changes.&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Find &amp;#039;TexGen.sln&amp;#039; which should be located in the directory where you told CMake to output the binary files to and open it with Microsoft Visual Studio.&lt;br /&gt;
&lt;br /&gt;
Set the configuration to &amp;#039;Release&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
If building the Graphical User Interface with Visual Studio 2008 or later open the properties page for the TexGenGUI project.  Select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Build the solution. Hopefully the project will have been compiled without errors.&lt;br /&gt;
&lt;br /&gt;
If you want to compile and execute the Graphical User Interface you will need to install it, you will not be able to execute it directly from the build directory. This is done by right click on the &amp;#039;INSTALL&amp;#039; project in the Solution Explorer and selecting Build. This will copy the Python modules into the Python site-packages directory so that they can be imported into scripts, and it will copy the executable along with other necessary files into &amp;#039;C:\Program Files\TexGen\&amp;#039; by default (this can be changed with the CMAKE_INSTALL_PREFIX cache value in CMake). TexGenGUI.exe should then be run from the installed location, if you attempt to run it directly from where it was compiled you will get some errors on launch.&lt;br /&gt;
&lt;br /&gt;
=== Building the documentation ===&lt;br /&gt;
&lt;br /&gt;
To build the documentation, [http://www.doxygen.nl/download.html Doxygen] and [https://graphviz.gitlab.io/download/ Graphviz] are required.  Open a command prompt in the &amp;#039;Docs&amp;#039; subdirectory of the source code and run &amp;#039;doxygen&amp;#039;. If the doxygen directory is not in your path, you must add it, or give the full path on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Integrating TexGen with ABAQUS ===&lt;br /&gt;
&lt;br /&gt;
If you are using ABAQUS and wish to use TexGen Python scripting from within the ABAQUS/CAE environment, there are a few extra steps to perform. This is because ABAQUS comes packaged with its own version of Python, so any modules added to your standalone python installation will not be accessible by ABAQUS. You must compile the TexGen Python modules with the same version of Python as ABAQUS uses. The following table shows which version of Python is used in specific ABAQUS versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ABAQUS Version !! Python Version&lt;br /&gt;
|-&lt;br /&gt;
| 6.6-1  || 2.3.3&lt;br /&gt;
|- &lt;br /&gt;
| 6.7-1  || 2.4.3 &lt;br /&gt;
|- &lt;br /&gt;
| 6.10-2 || 2.6.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.14-1 || 2.7.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If your version of ABAQUS is not listed in the table above you can type &amp;#039;abaqus python -V&amp;#039; to check what version of Python is used (then please edit this page to update the table). You can obtain specific versions of Python from https://www.python.org/downloads/source/ .&lt;br /&gt;
&lt;br /&gt;
Additionally you will need to place the TexGen python modules inside ABAQUS&amp;#039; version of python. There are a few ways to accomplish this, the easiest is perhaps to set the CMake cache variable &amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039; point to the ABAQUS&amp;#039; python directory, e.g.:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR     C:\Abaqus\6.14-1\Python\Lib\&lt;br /&gt;
&lt;br /&gt;
Then when you build the INSTALL project in MSVC++ it will automatically copy the TexGen python modules to the ABAQUS&amp;#039; Python. Alternatively you can simply copy the files manually or modify Python&amp;#039;s search path to include the TexGen python modules, e.g. In python:&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.path.append(&amp;#039;C:/Python27/Lib/site-packages/&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
There may also be a need to modify the file [source code location]/Installer/texgen.nsi.  The original version, lines 1-3 are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python25.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while on Jon&amp;#039;s version they are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python24.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error LNK1104: cannot open file &amp;#039;python25_d.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; The windows installation of Python doesn&amp;#039;t come with the debug library (&amp;#039;python25_d.lib&amp;#039;, the _d part means debug). You should be able to compile in release mode however. If you really want to compile in debug mode you will need to compile Python from source and link to that. Or you can try to link to the release library &amp;#039;python25.lib&amp;#039; instead, easiest way to do that is to copy &amp;#039;python25.lib&amp;#039; to &amp;#039;python25_d.lib&amp;#039; but this may cause problems during linking or execution.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error C1083: Cannot open include file: &amp;#039;wx/wxprec.h&amp;#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Make sure that you have compiled wxWidgets and that the wxWidgets_XXX cache variables are set correctly in CMake.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I do not have a &amp;#039;libd&amp;#039; folder in &amp;#039;ros/win32&amp;#039; for OpenCASCADE.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; If you do not compile OpenCASCADE yourself then this folder does not exist. However it can be ignored if you are only interested in building the release version of TexGen. If you really want to compile the debug version please refer to the OpenCASCADE documentation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; Why do I get the error message: &amp;quot;The parameter is incorrect.&amp;quot; when launching TexGenGUI.exe?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; In the TexGenGUI Property Pages select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I am getting error messages at the stage of building GUI:[ 86%] Building CXX object GUI/CMakeFiles/TexGenGUI.dir/PrecompiledHeaders.cpp.o&lt;br /&gt;
In file included from /usr/include/python2.4/pyconfig.h:6,&lt;br /&gt;
                 from /usr/include/python2.4/Python.h:8,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:30,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/usr/include/python2.4/pyconfig-64.h:823:1: warning: &amp;quot;_FILE_OFFSET_BITS&amp;quot; redefined&lt;br /&gt;
&amp;lt;command line&amp;gt;:1:1: warning: this is the location of the previous definition&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/wx.h:15,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/defs.h:42:13: error: #error &amp;quot;No Target! You should use wx-config program for compilation flags!&amp;quot;&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/cmndata.h:17,&lt;br /&gt;
                 from /data/include/wx-2.8/wx/wx.h:65,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/encinfo.h:64:6: error: #error &amp;quot;Unsupported toolkit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and lots of othe warnings and error messages afterwards.&lt;br /&gt;
&lt;br /&gt;
The location of wx-config is correct in cmake; wxWidgets installation appears to have been successful; the system is Red Hat Linux 64-bit&lt;br /&gt;
&lt;br /&gt;
== Windows (Cygwin and gcc, alternate method) ==&lt;br /&gt;
A limited build (without graphics) can be made under cygwin, this is a UNIX emulation environment available at [http://www.cygwin.com www.cygwin.com]. &lt;br /&gt;
This can exist peacefully next to the native windows version. &lt;br /&gt;
Cygwin creates a unix-style file system within your windows installation. If you choose c:/cygwin as your install directory, your HOME will be at c:/cygwin/home/&amp;lt;username&amp;gt;/. &lt;br /&gt;
&lt;br /&gt;
=== Download cygwin and install packages ===&lt;br /&gt;
Install gcc, g++, wget, make and cmake using the setup.exe program from the cygwin website. &lt;br /&gt;
For the mesh generator and python interface to work we currently need VTK and swig. &lt;br /&gt;
&lt;br /&gt;
This downloads and installs swig from source (when starting the cygwin shell you can paste this into the command line, otherwise write it to a file and run it with sh). &lt;br /&gt;
 mkdir progs&lt;br /&gt;
 cd progs &lt;br /&gt;
 SWIG=swig-1.3.31&lt;br /&gt;
 wget -nc http://kent.dl.sourceforge.net/sourceforge/swig/$SWIG.tar.gz&lt;br /&gt;
 tar xzvf $SWIG.tar.gz &lt;br /&gt;
 cd $SWIG&lt;br /&gt;
 ./configure &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This downloads and installs VTK from source, in the ccmake stage, use the cmake graphical commands to get a working install. &lt;br /&gt;
 VTK=vtk-6.3.0&lt;br /&gt;
 wget -nc https://vtk.org/download/&lt;br /&gt;
 tar xzvf $VTK.tar.gz&lt;br /&gt;
 mkdir vtkbin&lt;br /&gt;
 cd vtkbin&lt;br /&gt;
 ccmake ../VTK&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Install TexGen from source ===&lt;br /&gt;
Now we can proceed to install texgen, as an example we&amp;#039;ll work in ~/temp/texgen&lt;br /&gt;
 cd ~; mkdir temp; cd temp; mkdir texgen; cd texgen&lt;br /&gt;
 svn checkout svn//svn.code.sf.net/p/texgen/code/TexGen/trunk/ TexGen&lt;br /&gt;
 cd .. ; mkdir tbin; cd tbin&lt;br /&gt;
 ccmake ../texgen&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This should result in a working texgen install in ~/temp/texgen/tbin.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
=== Notes ===&lt;br /&gt;
If you are installing to a system where you don&amp;#039;t have root access (i.e. this computer does not belong to you) you won&amp;#039;t be able to install the software using the default configure script. This is because by default software is installed to the /usr/local directory. If you are not a systems administrator then you will quite rightly not have write access to this folder. All is not lost! You can still install software into your home directory. In order to do this you should always call the configure script with the following parameter: --prefix=$HOME. This goes for all the software to be installed below. All executables will then be placed in ~/bin, libraries in ~/lib, includes in ~/include, etc...&lt;br /&gt;
&lt;br /&gt;
In the guide below the parameter is included in italic. If you do in fact have root access then it is recommended to omit this parameter and install to the default directory so that other users will also have access to the software.&lt;br /&gt;
&lt;br /&gt;
=== Get TexGen from GitHub repository ===&lt;br /&gt;
&lt;br /&gt;
==== Install Git ====&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and unpack.&lt;br /&gt;
&lt;br /&gt;
==== Clone TexGen ====&lt;br /&gt;
Open a shell in folder you wish to place TexGen (e.g. ~/):&lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
&lt;br /&gt;
=== Compile source ===&lt;br /&gt;
&lt;br /&gt;
==== Install CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and unpack.&lt;br /&gt;
Open a shell in extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==== Compile TexGen core ====&lt;br /&gt;
Open a shell in the folder with the TexGen source code (e.g. ~/TexGen):&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 cd bin&lt;br /&gt;
 ccmake ../&lt;br /&gt;
Press &amp;#039;c&amp;#039; to configure. When a warning pops up telling you it can&amp;#039;t find such and such a file press &amp;#039;e&amp;#039; to close it. You will now need to specify which components of TexGen to build and where their dependencies can be found. Use the up and down arrows to move the caret and press enter to modify options. Do this to set BUILD_GUI, BUILD_PYTHON_INTERFACE and BUILD_RENDERER to OFF. You are basically telling CMake not to attempt to build these components, which means that you won&amp;#039;t need to have installed their dependencies.&lt;br /&gt;
&lt;br /&gt;
Similarly to the --prefix=$HOME parameter to the configure script, you can tell CMake to install TexGen to your home directory by changing CMAKE_INSTALL_PREFIX to ~/. Note that it won&amp;#039;t actually install anything until you get type make install.&lt;br /&gt;
&lt;br /&gt;
Now press &amp;#039;c&amp;#039; again to update the changes.&lt;br /&gt;
&lt;br /&gt;
Hopefully now that all the additional modules have been switched off no errors will be shown. Press &amp;#039;g&amp;#039; to generate the makefiles and exit. At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Note that at this point you have only built and installed the TexGen Core library which doesn&amp;#039;t actually do anything on its own. If you plan to incorporate TexGen into your own C++ program then this is enough, however if you would like to interface with TexGen from a Python script or Graphical User Interface then follow the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Compiling optional modules ===&lt;br /&gt;
==== Python interface ====&lt;br /&gt;
[http://www.python.org/download/ Download Python] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/download.html Download SWIG] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Open a shell in the folder where you called ccmake from for the first time (e.g. ~/TexGen/bin):&lt;br /&gt;
 ccmake ../&lt;br /&gt;
&lt;br /&gt;
Use the up and down arrows to reach BUILD_PYTHON_INTERFACE and press Enter to set it to ON. Then press &amp;#039;c&amp;#039; to configure. You will probably get a warning saying you need to specify the location of SWIG and/or Python, press &amp;#039;e&amp;#039; to close it.&lt;br /&gt;
&lt;br /&gt;
Set the PYTHON_INCLUDE_PATH, PYTHON_LIBRARY, PYTHON_SITEPACKAGES_DIR, SWIG_DIR and SWIG_EXECUTABLE parameters correctly where necessary. If you have installed packages to your home directory then they should look something like this:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_INCLUDE_PATH: ~/include/python2.7&lt;br /&gt;
 PYTHON_LIBRARY: ~/lib/python2.5/config/libpython2.7.a&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR: ~/lib/python2.7/site-packages&lt;br /&gt;
 SWIG_DIR: ~/bin&lt;br /&gt;
 SWIG_EXECUTABLE: ~/bin/swig&lt;br /&gt;
&lt;br /&gt;
Once that is done press &amp;#039;c&amp;#039; again. You may need perform this process over several iterations. When everything is set correctly press &amp;#039;g&amp;#039; to generate the makefiles.&lt;br /&gt;
&lt;br /&gt;
At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Assuming the build completed without errors you should now be able to access TexGen functions from within Python. In order to check everything worked as planned open Python in interactive mode by typing:&lt;br /&gt;
 python&lt;br /&gt;
&lt;br /&gt;
Then from within Python type:&lt;br /&gt;
 from TexGen.Core import *&lt;br /&gt;
 CTexGen.GetInstance().GetVersion()&lt;br /&gt;
&lt;br /&gt;
This should display the version of TexGen installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when linking _Core.so:&lt;br /&gt;
 libpython2.5.a(abstract.o): relocation R_X86_64_32 against `a local symbol&amp;#039;&lt;br /&gt;
 can not be used when making a shared object; recompile with -fPIC&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Try removing libpython2.5.a from the libraries to link to by setting PYTHON_LIBRARY to a bogus path, e.g.:&lt;br /&gt;
&lt;br /&gt;
PYTHON_LIBRARY: ~/&lt;br /&gt;
&lt;br /&gt;
By doing so you may receive a warning similar to this:&lt;br /&gt;
 Warning: Ignoring path found in link libraries for target: _Core, path is:&lt;br /&gt;
 /home/username. Expected a library name or a full path to a library name.&lt;br /&gt;
This warning may be ignored.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-08-07T15:59:00Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:3Tex Vf 0.55.png|thumb|3d orthogonal woven fabric]]&lt;br /&gt;
[[Image:2DWeave.png|thumb|2d woven fabric]]&lt;br /&gt;
[[Image:Ncf.png|thumb|Non-crimp fabric]]&lt;br /&gt;
[[Image:Tufted laminate.png|thumb|Tufted laminate]]&lt;br /&gt;
[[Image:Triaxialbraid.png|thumb|Triaxial braid fabric]]&lt;br /&gt;
[[Image:Weftknit.png|thumb|Weft knit fabric]]&lt;br /&gt;
&lt;br /&gt;
TexGen is open source software licensed under the General Public License developed at the University of Nottingham for modelling the geometry of textile structures. TexGen has been used by the Nottingham team as the basis of models for a variety of properties, including textile mechanics, permeability and composite mechanical behaviour.&lt;br /&gt;
&lt;br /&gt;
A summary of our work involving TexGen can be found on the [[TexGen Applications]] page and a list of publications using TexGen can be found on the [[Publications]] page. Please also visit the [http://www.nottingham.ac.uk/research/groups/composites-research-group/research/textile-composites/textile-composites.aspx University of Nottingham Textile Composites Research] website for more details about our research group.&lt;br /&gt;
&lt;br /&gt;
A User Guide can be found here [[User_Guide]]. Also on this website you will find all the information necessary to get started with TexGen by using the sidebar for navigation. &lt;br /&gt;
&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [https://github.com/louisepb/TexGen GitHub issue tracker].&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.13.1 Released! ===&lt;br /&gt;
This is a minor release to correct a bug when exporting a voxel mesh to Abaqus with no boundary conditions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:30, 7th August 2023 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.13.0 Released! ===&lt;br /&gt;
Version 3.13.0 has been released. From this release TexGen will be built with Python 3. Existing scripts should continue to run using the Run Script option in the GUI after the addition of a line to import the TexGen core library (from TexGen.Core import *).&lt;br /&gt;
&lt;br /&gt;
A new class CDomainPrism has been implemented which allows concave sets of domain planes to be specified, e.g. T-shaped or arcs. This is only accessible via scripting. It&amp;#039;s use is described in the scripting guide with a sample script.&lt;br /&gt;
&lt;br /&gt;
Layer to layer 3D woven textiles can be created with binder layers following different paths (rather than all binder layers moving together through the layers) using the new CTextileDecoupledLToL class. This is accessible via Python scripting.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.13.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:30, 27th July 2023 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen Chapter in new book: Advanced Weaving Technology ===&lt;br /&gt;
Published on 3rd April 2022 this book provides state-of-the-art information on weaving technology and 3D fabrics. It examines weaving preparation, mechanics and limits of the weaving processes, pattern design and applications. The TexGen chapter gives a practical overview and introduction to the use of TexGen and the modelling theory used in the software. There is a guide to creating automatically generated textile models using the built-in weave wizards and a detailed example of the method for creating a textile model using the functionality within the graphical user interface (GUI). An overview of the Python application programming interface (API) is given, illustrated by an example script, as well as information on how to use the Python functions to edit existing textiles. Finally there is an overview of the options for different meshing and export options used to prepare models as input for simulations.&lt;br /&gt;
&lt;br /&gt;
The TexGen chapter is available [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6 here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:17, 14 April 2022 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== TexGen Webinar: Exporting TexGen Models for Simulation===&lt;br /&gt;
====27th April 2021, 2pm (BST) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will describe the use of TexGen as a preprocessor for simulations using textile models and will cover:&lt;br /&gt;
*The different export options available, including file formats and meshing options&lt;br /&gt;
*Examples of different types of simulations using TexGen models, e.g. prediction of mechanical properties and permeability&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/BVME9evj0kc Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/webinar2_TexGenExport.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
=== TexGen Webinar: Introduction to Creating Textile Models Using TexGen===&lt;br /&gt;
==== 23rd March 2021, 2pm (GMT) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will give an introduction to TexGen and will cover:&lt;br /&gt;
*The use of the TexGen graphical user interface (GUI) to create and edit 2D woven structures.&lt;br /&gt;
*An outline of the modelling theory used in the TexGen software which will enable users to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/xDYRhVvwd2E Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/Webinar1_IntroductionToTexGen.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.2 Released! ===&lt;br /&gt;
Version 3.12.2 has been released. This contains a bugfix to octree refinement when starting with a number of voxels other than 1x1x1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:15, 15 March 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.1 Released! ===&lt;br /&gt;
Version 3.12.1 has been released. This contains extension of the ABAQUS Voxel File export to provide access to the octree refinement with Laplacian smoothing from the GUI. The octree refinement can now be started with a user-specified number of voxels.&lt;br /&gt;
&lt;br /&gt;
Correct Small Intersections tool has been added to the Tools menu (previously only accessible via the ABAQUS Dry Fibre export option).&lt;br /&gt;
&lt;br /&gt;
Tetgen export has been updated to include the o2 option allowing export of quadratic tet element.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.1/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17:00, 12 February 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.0 Released! ===&lt;br /&gt;
Version 3.12.0 has been released. This contains functions for octree refinement of voxel meshes with Laplacian smoothing. These are available using Python commands and instructions for their use are given here: [[Using Octree Refinement and Mesh Smoothing]]&lt;br /&gt;
&lt;br /&gt;
There are new options to create surface meshes in ABAQUS inp format and voxel meshes in vtu format.&lt;br /&gt;
&lt;br /&gt;
There is a bugfix to the correct reversal of G13 and G23 when calculating material properies using periodic boundary conditions as set up inthe voxel mesh export (issue 22 on GitHub).&lt;br /&gt;
&lt;br /&gt;
A Refresh View option has been added.&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:12, 11 March 2020 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Workshop: A Practical Introduction to Creating Textile Models===&lt;br /&gt;
====15th November 2019, CMSC, Purdue University, USA====&lt;br /&gt;
•	This interactive workshop will demonstrate the use of the TexGen graphical user interface (GUI) to create and edit 2D and 3D woven structures.  An outline of the modelling theory used in the TexGen software will be given which will enable the user to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
•	Python scripting for TexGen will be introduced and will be demonstrated both for editing models within the GUI and for creating custom scripts for maximum control over the textile structures created.&lt;br /&gt;
&lt;br /&gt;
•	An overview will be given of the use of TexGen as a pre-processor for generating textile models and its use in the multiscale modelling process, including export options which allow TexGen models to be easily exported to third-party software such as ABAQUS which can then be used in simulations for prediction of material properties.&lt;br /&gt;
&lt;br /&gt;
The workshop will be held at the [http://www.Purdue.edu/cmsc Composites Manufacturing and Simulation Centre], Purdue University and is free to attend but places are limited, so booking is essential. Participants will be required to bring their own laptops in order to follow the exercises. &lt;br /&gt;
&lt;br /&gt;
To book a place please register via [https://www.eventbrite.com/e/texgen-workshop-a-practical-introduction-to-creating-textile-models-tickets-73971830737 Eventbrite]&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.11.0 Released! ===&lt;br /&gt;
Version 3.11.0 has been released. This contains upgrades to the VTK, wxWidgets, triangle and OpenCASCADE libraries to address issues with the Python 27 version running on Windows 10.&lt;br /&gt;
&lt;br /&gt;
Periodic boundary conditions have been added for rotated textiles in the voxel mesh export.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.11.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:15, 7 June 2019 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.10.0 Released! ===&lt;br /&gt;
Version 3.10.0 has been released. This contains a Rotate Textile option which can be used in conjunction with the Layer Textile option to create laminates with different textile orientations.&lt;br /&gt;
&lt;br /&gt;
There are new options to import weave patterns and then create pattern drafts from certain types of weave patterns.&lt;br /&gt;
&lt;br /&gt;
There has been some code optimisation to speed up the functions which calculate volume fraction and yarn orientations in the export functions.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.10.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;18:00, 13 December 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Survey ===&lt;br /&gt;
The latest version of TexGen (3.9.0) included an invitation to complete a survey on exit from the program. This takes just a few minutes and can be found [https://nottingham.limequery.com/728617?lang=en here].  If you are a TexGen user we would be grateful if you could find the time to complete this.&lt;br /&gt;
&lt;br /&gt;
The information in the survey is crucial to us as it will help us to put together the case for continued funding of the TexGen project which, for the most part, is supported by UK Research Council funding.&lt;br /&gt;
&lt;br /&gt;
Many thanks for your help!&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.9.0 Released! ===&lt;br /&gt;
Version 3.9.0 has been released.  This contains functions to create a mesh of the centre plane of yarns using quad elements and functions to find the point on a yarn surface which is closest to a specified point.&lt;br /&gt;
&lt;br /&gt;
On exit from the program a dialog is triggered which points the user to an online survey.  This is entirely optional but information about usage and benefit from using the software will help us to make the case with research councils to continue funding the project.  This will enable us to continue its development and to keep it as free software.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.9.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:15, 14 February 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.2 Released! ===&lt;br /&gt;
Version 3.8.2 has been released. This contains functions to calculate fibre volume fractions of specified domains (unit cells if these correspond) and yarns. Functionality has been added to allow an angle to be specified at a node so that a cross-section can be angled relative to the yarn tangent.  Creation of pattern draft for layer-to-layer textiles. Added option to wizards to select whether or not 10% is added to height of default domain.&lt;br /&gt;
&lt;br /&gt;
Windows installation files are available with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issues on some machines with the Python27 bundled versions. If Python27 is required install Python from here https://www.python.org/downloads/ and then use any of the Python27 files.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.2/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:11, 19 January 2016 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.0 Released! ===&lt;br /&gt;
Version 3.8.0 has been released. This contains the addition of a maximum nesting function to layered textiles.  Changes to the 2D weave refine options have been implemented to allow more flexibility as to which functions are called when using the API. These have also been changed to allow refinement of non-periodic textiles. Option to select non-periodic mesh when using Tetgen meshing has been implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:08, 16 March 2015 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.7.0 Released! ===&lt;br /&gt;
Version 3.7.0 has been released. This contains the addition of layered textiles.  These can be created from the 2D weave wizard where a number of layers can be specified or from an option in the Textiles menu where different textiles can be stacked by making a selection from those loaded in the GUI.  Offsets can be set between the layers and simple nesting is implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.7.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:36, 7 August 2014 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.1 Released! ===&lt;br /&gt;
Version 3.6.1 has been released.  This contains changes to the Volume Mesh export to give matching nodes and elements on opposite faces of the unit cell.  ABAQUS input files can then be generated with periodic boundary conditions. (Note that this meshing method is not suitable for 3D weaves with vertical or near-vertical yarns).  Changes have been made to the 3D Weave Wizard to allow all warp yarns to be binder yarns.  The Window installation files now use Python 2.6 thus giving compatibility with recent versions of ABAQUS.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:19, 27 January 2014 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.0 Released! ===&lt;br /&gt;
Version 3.6.0 has been released.  This contains the addition of a sheared textile option to the 2D weave wizard.  This will automatically generate sheared 2D textiles and includes a refine option to minimise yarn intersections.  Associated sheared domain, sheared voxels and periodic boundary conditions may also be created. An option to create staggered periodic boundary conditions has been added for textiles which include an offset repeat, so as to minimise unit cell size.  There are various other small changes and bugfixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:41, 8 August 2013 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.3 Released! ===&lt;br /&gt;
Version 3.5.3 has been released.  This contains modification of the PointInsideYarn function to give correct solutions for yarns with both convex and concave yarn sections.  There are improvements to the 3D orthogonal weave refine option.  Scripts have been made available to give automatic extraction of material properties following simulations using the Abaqus voxel mesh option.  There are various optimisation changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.3/README/view here].&lt;br /&gt;
&amp;lt;small&amp;gt;13.56, 12 November 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.2 Released! ===&lt;br /&gt;
Version 3.5.2 has been released.  This contains the addition of a refine option to the 3D orthogonal weave.  The geometry is adjusted to achieve a given overall fabric thickness.  Fibre orientation calculations have been improved to reflect the variations in yarn cross-sections and a render fibre orientation functions has been added to the user interface.  A rectangular yarn section has been added.  There are also various bug fixes. Windows 32 and 64 bit installers are now available.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.2/README/view here].&lt;br /&gt;
&lt;br /&gt;
===Workshop Presentations===&lt;br /&gt;
The presentations from the TexGen workshop held at the East Midlands Conference Centre on 2nd May 2012 are now available to view on the Documentation page [http://texgen.sourceforge.net/index.php/Documentation here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:09, 8 May 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.1 Released! ===&lt;br /&gt;
Version 3.5.1 has been released.  This contains the addition of offset angle interlock weaves and specification of power ellipse power in the 3d weave wizard.  An export function has been added which uses the open source software Tetgen to generate tetrahedral meshes.  It also contains the addition of an x offset to the power ellipse section and various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:20, 1 March 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.0 Released! ===&lt;br /&gt;
Version 3.5.0 has been released.  This contains a new wizard for automatic creation of idealised orthogonal, angle interlock and layer-to-layer 3d textile weaves. It also contains various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:00, 13 October 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.1 Released! ===&lt;br /&gt;
Version 3.4.1 has been released. This contains minor changes to ABAQUS voxel mesh output and some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:09, 22 June 2011 &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.0 Released! ===&lt;br /&gt;
Version 3.4.0 has been released. It contains the addition of periodic boundary conditions to the Abaqus voxel mesh output.  The dry fibre volume mesh intersection correction has been improved and an additional option added to regenerate the textile model using the adapted mesh following correction.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.0/ReleaseNotes3.4.0.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:49, 16 March 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.3 Released! ===&lt;br /&gt;
Version 3.3.3 has been released.  It contains new features to save fibre and/or matrix as a voxel mesh in Abaqus format, to assign fibre properties to individual yarns and to adjust for small intersections in dry fibre volume mesh when outputting to Abaqus format.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.3.3/ReleaseNotes3.3.3.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;4 November 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.2 Released! ===&lt;br /&gt;
Version 3.3.2 has been released.  It contains new features to save fibre models to Abaqus output, render fibre volume mesh and render interference depth.  There are also some bug fixes, in particular a couple to get the GUI working in the Linux version.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.2/Release%20notes3-3-2.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15 June 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.3.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.1 has been released (currently only Windows versions). It contains a couple of bug fixes and an option to switch output of messages on and off.  A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.1/Release%20notes3-3-1.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17 March 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.0 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.0 has been released, it has various bug fixes most notably to the volume mesher and a few new algorithms dealing with geometry prediction based on mechanical behaviour of yarns. A list of changes can be found [https://sourceforge.net/project/shownotes.php?group_id=181000&amp;amp;release_id=591019 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:52, 9 April 2008 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.2.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.2.1 has been released, this is mainly a bug fix release however there are a few new features. A list of changes can be found [http://sourceforge.net/project/shownotes.php?release_id=553663&amp;amp;group_id=181000 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;04:12, 13 November 2007 (PST)&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Download TexGen</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-08-07T15:56:40Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Citing TexGen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All versions can be downloaded from [https://sourceforge.net/projects/texgen/ Sourceforge]. For Linux please download and build the code from https://github.com/louisepb/TexGen.&lt;br /&gt;
From version 3.6.0 the default Windows download is the 64-bit version. Select the &amp;quot;Files&amp;quot; tab on the download page to see all download options.&lt;br /&gt;
&lt;br /&gt;
==Which version?==&lt;br /&gt;
There are two versions versions of the executable available: &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; and &amp;#039;&amp;#039;texgen-bundle-3.x.x.exe&amp;#039;&amp;#039;. TexGen requires the Python interpreter to be installed in order to run. The standard installation package named &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; does not include Python and the Python interpreter must be preinstalled manually. The bundle installation package comes with the Python interpreter which means that no separate Python installation is required.&lt;br /&gt;
&lt;br /&gt;
From version 3.13.0 TexGen has been built with Python39. &lt;br /&gt;
&lt;br /&gt;
From version 3.8.1 TexGen has been built with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issuses  with the bundled versions on some machines and therefore version 3.8.2 has been released with bundled versions for both Python26 and Python27.  If Python27 is required and the bundled version does not run this can be rectified by installing Python27 from here: https://www.python.org/downloads/&lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t know what Python is or you won&amp;#039;t be using it for anything other than TexGen then the bundle package is recommended. For experienced users, the standard installation package is preferable since it will integrate itself with an existing python installation giving existing Python scripts access to TexGen.&lt;br /&gt;
&lt;br /&gt;
==Citing TexGen==&lt;br /&gt;
We would also be grateful if you could acknowledge use of TexGen where appropriate and suggest using one of the following references:&lt;br /&gt;
&lt;br /&gt;
L P Brown and A C Long. &amp;quot;Modelling the geometry of textile reinforcements for composites: TexGen&amp;quot;, Chapter 8 in &amp;quot;Composite reinforcements for optimum performance (Second Edition)&amp;quot;, ed. P Boisse, Woodhead Publishing Ltd, 2021, ISBN: 978-0-12-819005-0.&lt;br /&gt;
https://doi.org/10.1016/B978-0-12-819005-0.00008-3&lt;br /&gt;
&lt;br /&gt;
[http://www.scientific.net/AMR.331.44 Lin, H., Brown, L. P. &amp;amp; Long, A. C. 2011. Modelling and Simulating Textile Structures using TexGen. Advanced Materials Research, 331, 44-47.]&lt;br /&gt;
&lt;br /&gt;
To reference version 3.13.1 please use:&lt;br /&gt;
Louise Brown, mike-matveev, &amp;amp; georgespackman. (2023). louisepb/TexGen: TexGen v3.13.1 (v3.13.1). Zenodo. https://doi.org/10.5281/zenodo.8221491&lt;br /&gt;
&lt;br /&gt;
To reference version 3.13.0 please use: &lt;br /&gt;
Louise Brown, mike-matveev, &amp;amp; georgespackman. (2023). louisepb/TexGen: TexGen v3.13.0 (v3.13.0). Zenodo. https://doi.org/10.5281/zenodo.8189683&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.2 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, March 11). louisepb/TexGen: TexGen v3.12.2 (Version v3.12.2). Zenodo. http://doi.org/10.5281/zenodo.4598477&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.1 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, February 12). louisepb/TexGen: TexGen v3.12.1 (Version v3.12.1). Zenodo. http://doi.org/10.5281/zenodo.4537855&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.0 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev &amp;amp; George Spackman. (2020, March 11). louisepb/TexGen: TexGen v3.12.0 (Version v3.12.0). Zenodo. http://doi.org/10.5281/zenodo.3706478&lt;br /&gt;
&lt;br /&gt;
To reference version 3.11.0 please use:&lt;br /&gt;
Brown, Louise P, &amp;amp; Sherburn, Martin. (2019, June 7). louisepb/TexGen: TexGen v3.11.0 (Version v3.11.0). Zenodo. http://doi.org/10.5281/zenodo.3241493&lt;br /&gt;
&lt;br /&gt;
To reference version 3.10.0 please use:&lt;br /&gt;
&amp;quot;Brown, Louise P, &amp;amp; Sherburn, Martin. (2017, December 13). louisepb/TexGen: TexGen v3.10.0 (Version v3.10.0). Zenodo. http://doi.org/10.5281/zenodo.1115604 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Script Library==&lt;br /&gt;
A selection of sample TexGen scripts for different types of textiles can be found on GitHub [https://github.com/louisepb/TexGenScripts TexGenScripts].  If you have scripts which you have written which you think would be of use to other users, and are willing to share, please send them to Louise Brown (louise.brown@nottingham.ac.uk) and we will add them to the library.&lt;br /&gt;
&lt;br /&gt;
==Feedback and help==&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.  Please note that if you join the forum there may be a slight delay before your membership is approved.  We will try to do this as quickly as possible but it is unfortunately necessary due to recent problems with spammers.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [http://sourceforge.net/tracker/?group_id=181000 sourceforge trackers].&lt;br /&gt;
&lt;br /&gt;
If you make use of TexGen in your work and publications please could you make it known on the forum.  This will both help other users and publicise your work.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-07-27T14:32:38Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:3Tex Vf 0.55.png|thumb|3d orthogonal woven fabric]]&lt;br /&gt;
[[Image:2DWeave.png|thumb|2d woven fabric]]&lt;br /&gt;
[[Image:Ncf.png|thumb|Non-crimp fabric]]&lt;br /&gt;
[[Image:Tufted laminate.png|thumb|Tufted laminate]]&lt;br /&gt;
[[Image:Triaxialbraid.png|thumb|Triaxial braid fabric]]&lt;br /&gt;
[[Image:Weftknit.png|thumb|Weft knit fabric]]&lt;br /&gt;
&lt;br /&gt;
TexGen is open source software licensed under the General Public License developed at the University of Nottingham for modelling the geometry of textile structures. TexGen has been used by the Nottingham team as the basis of models for a variety of properties, including textile mechanics, permeability and composite mechanical behaviour.&lt;br /&gt;
&lt;br /&gt;
A summary of our work involving TexGen can be found on the [[TexGen Applications]] page and a list of publications using TexGen can be found on the [[Publications]] page. Please also visit the [http://www.nottingham.ac.uk/research/groups/composites-research-group/research/textile-composites/textile-composites.aspx University of Nottingham Textile Composites Research] website for more details about our research group.&lt;br /&gt;
&lt;br /&gt;
A User Guide can be found here [[User_Guide]]. Also on this website you will find all the information necessary to get started with TexGen by using the sidebar for navigation. &lt;br /&gt;
&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [https://github.com/louisepb/TexGen GitHub issue tracker].&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.13.0 Released! ===&lt;br /&gt;
Version 3.13.0 has been released. From this release TexGen will be built with Python 3. Existing scripts should continue to run using the Run Script option in the GUI after the addition of a line to import the TexGen core library (from TexGen.Core import *).&lt;br /&gt;
&lt;br /&gt;
A new class CDomainPrism has been implemented which allows concave sets of domain planes to be specified, e.g. T-shaped or arcs. This is only accessible via scripting. It&amp;#039;s use is described in the scripting guide with a sample script.&lt;br /&gt;
&lt;br /&gt;
Layer to layer 3D woven textiles can be created with binder layers following different paths (rather than all binder layers moving together through the layers) using the new CTextileDecoupledLToL class. This is accessible via Python scripting.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.13.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:30, 27th July 2023 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen Chapter in new book: Advanced Weaving Technology ===&lt;br /&gt;
Published on 3rd April 2022 this book provides state-of-the-art information on weaving technology and 3D fabrics. It examines weaving preparation, mechanics and limits of the weaving processes, pattern design and applications. The TexGen chapter gives a practical overview and introduction to the use of TexGen and the modelling theory used in the software. There is a guide to creating automatically generated textile models using the built-in weave wizards and a detailed example of the method for creating a textile model using the functionality within the graphical user interface (GUI). An overview of the Python application programming interface (API) is given, illustrated by an example script, as well as information on how to use the Python functions to edit existing textiles. Finally there is an overview of the options for different meshing and export options used to prepare models as input for simulations.&lt;br /&gt;
&lt;br /&gt;
The TexGen chapter is available [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6 here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:17, 14 April 2022 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== TexGen Webinar: Exporting TexGen Models for Simulation===&lt;br /&gt;
====27th April 2021, 2pm (BST) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will describe the use of TexGen as a preprocessor for simulations using textile models and will cover:&lt;br /&gt;
*The different export options available, including file formats and meshing options&lt;br /&gt;
*Examples of different types of simulations using TexGen models, e.g. prediction of mechanical properties and permeability&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/BVME9evj0kc Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/webinar2_TexGenExport.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
=== TexGen Webinar: Introduction to Creating Textile Models Using TexGen===&lt;br /&gt;
==== 23rd March 2021, 2pm (GMT) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will give an introduction to TexGen and will cover:&lt;br /&gt;
*The use of the TexGen graphical user interface (GUI) to create and edit 2D woven structures.&lt;br /&gt;
*An outline of the modelling theory used in the TexGen software which will enable users to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/xDYRhVvwd2E Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/Webinar1_IntroductionToTexGen.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.2 Released! ===&lt;br /&gt;
Version 3.12.2 has been released. This contains a bugfix to octree refinement when starting with a number of voxels other than 1x1x1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:15, 15 March 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.1 Released! ===&lt;br /&gt;
Version 3.12.1 has been released. This contains extension of the ABAQUS Voxel File export to provide access to the octree refinement with Laplacian smoothing from the GUI. The octree refinement can now be started with a user-specified number of voxels.&lt;br /&gt;
&lt;br /&gt;
Correct Small Intersections tool has been added to the Tools menu (previously only accessible via the ABAQUS Dry Fibre export option).&lt;br /&gt;
&lt;br /&gt;
Tetgen export has been updated to include the o2 option allowing export of quadratic tet element.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.1/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17:00, 12 February 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.0 Released! ===&lt;br /&gt;
Version 3.12.0 has been released. This contains functions for octree refinement of voxel meshes with Laplacian smoothing. These are available using Python commands and instructions for their use are given here: [[Using Octree Refinement and Mesh Smoothing]]&lt;br /&gt;
&lt;br /&gt;
There are new options to create surface meshes in ABAQUS inp format and voxel meshes in vtu format.&lt;br /&gt;
&lt;br /&gt;
There is a bugfix to the correct reversal of G13 and G23 when calculating material properies using periodic boundary conditions as set up inthe voxel mesh export (issue 22 on GitHub).&lt;br /&gt;
&lt;br /&gt;
A Refresh View option has been added.&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:12, 11 March 2020 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Workshop: A Practical Introduction to Creating Textile Models===&lt;br /&gt;
====15th November 2019, CMSC, Purdue University, USA====&lt;br /&gt;
•	This interactive workshop will demonstrate the use of the TexGen graphical user interface (GUI) to create and edit 2D and 3D woven structures.  An outline of the modelling theory used in the TexGen software will be given which will enable the user to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
•	Python scripting for TexGen will be introduced and will be demonstrated both for editing models within the GUI and for creating custom scripts for maximum control over the textile structures created.&lt;br /&gt;
&lt;br /&gt;
•	An overview will be given of the use of TexGen as a pre-processor for generating textile models and its use in the multiscale modelling process, including export options which allow TexGen models to be easily exported to third-party software such as ABAQUS which can then be used in simulations for prediction of material properties.&lt;br /&gt;
&lt;br /&gt;
The workshop will be held at the [http://www.Purdue.edu/cmsc Composites Manufacturing and Simulation Centre], Purdue University and is free to attend but places are limited, so booking is essential. Participants will be required to bring their own laptops in order to follow the exercises. &lt;br /&gt;
&lt;br /&gt;
To book a place please register via [https://www.eventbrite.com/e/texgen-workshop-a-practical-introduction-to-creating-textile-models-tickets-73971830737 Eventbrite]&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.11.0 Released! ===&lt;br /&gt;
Version 3.11.0 has been released. This contains upgrades to the VTK, wxWidgets, triangle and OpenCASCADE libraries to address issues with the Python 27 version running on Windows 10.&lt;br /&gt;
&lt;br /&gt;
Periodic boundary conditions have been added for rotated textiles in the voxel mesh export.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.11.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:15, 7 June 2019 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.10.0 Released! ===&lt;br /&gt;
Version 3.10.0 has been released. This contains a Rotate Textile option which can be used in conjunction with the Layer Textile option to create laminates with different textile orientations.&lt;br /&gt;
&lt;br /&gt;
There are new options to import weave patterns and then create pattern drafts from certain types of weave patterns.&lt;br /&gt;
&lt;br /&gt;
There has been some code optimisation to speed up the functions which calculate volume fraction and yarn orientations in the export functions.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.10.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;18:00, 13 December 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Survey ===&lt;br /&gt;
The latest version of TexGen (3.9.0) included an invitation to complete a survey on exit from the program. This takes just a few minutes and can be found [https://nottingham.limequery.com/728617?lang=en here].  If you are a TexGen user we would be grateful if you could find the time to complete this.&lt;br /&gt;
&lt;br /&gt;
The information in the survey is crucial to us as it will help us to put together the case for continued funding of the TexGen project which, for the most part, is supported by UK Research Council funding.&lt;br /&gt;
&lt;br /&gt;
Many thanks for your help!&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.9.0 Released! ===&lt;br /&gt;
Version 3.9.0 has been released.  This contains functions to create a mesh of the centre plane of yarns using quad elements and functions to find the point on a yarn surface which is closest to a specified point.&lt;br /&gt;
&lt;br /&gt;
On exit from the program a dialog is triggered which points the user to an online survey.  This is entirely optional but information about usage and benefit from using the software will help us to make the case with research councils to continue funding the project.  This will enable us to continue its development and to keep it as free software.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.9.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:15, 14 February 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.2 Released! ===&lt;br /&gt;
Version 3.8.2 has been released. This contains functions to calculate fibre volume fractions of specified domains (unit cells if these correspond) and yarns. Functionality has been added to allow an angle to be specified at a node so that a cross-section can be angled relative to the yarn tangent.  Creation of pattern draft for layer-to-layer textiles. Added option to wizards to select whether or not 10% is added to height of default domain.&lt;br /&gt;
&lt;br /&gt;
Windows installation files are available with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issues on some machines with the Python27 bundled versions. If Python27 is required install Python from here https://www.python.org/downloads/ and then use any of the Python27 files.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.2/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:11, 19 January 2016 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.0 Released! ===&lt;br /&gt;
Version 3.8.0 has been released. This contains the addition of a maximum nesting function to layered textiles.  Changes to the 2D weave refine options have been implemented to allow more flexibility as to which functions are called when using the API. These have also been changed to allow refinement of non-periodic textiles. Option to select non-periodic mesh when using Tetgen meshing has been implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:08, 16 March 2015 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.7.0 Released! ===&lt;br /&gt;
Version 3.7.0 has been released. This contains the addition of layered textiles.  These can be created from the 2D weave wizard where a number of layers can be specified or from an option in the Textiles menu where different textiles can be stacked by making a selection from those loaded in the GUI.  Offsets can be set between the layers and simple nesting is implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.7.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:36, 7 August 2014 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.1 Released! ===&lt;br /&gt;
Version 3.6.1 has been released.  This contains changes to the Volume Mesh export to give matching nodes and elements on opposite faces of the unit cell.  ABAQUS input files can then be generated with periodic boundary conditions. (Note that this meshing method is not suitable for 3D weaves with vertical or near-vertical yarns).  Changes have been made to the 3D Weave Wizard to allow all warp yarns to be binder yarns.  The Window installation files now use Python 2.6 thus giving compatibility with recent versions of ABAQUS.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:19, 27 January 2014 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.0 Released! ===&lt;br /&gt;
Version 3.6.0 has been released.  This contains the addition of a sheared textile option to the 2D weave wizard.  This will automatically generate sheared 2D textiles and includes a refine option to minimise yarn intersections.  Associated sheared domain, sheared voxels and periodic boundary conditions may also be created. An option to create staggered periodic boundary conditions has been added for textiles which include an offset repeat, so as to minimise unit cell size.  There are various other small changes and bugfixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:41, 8 August 2013 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.3 Released! ===&lt;br /&gt;
Version 3.5.3 has been released.  This contains modification of the PointInsideYarn function to give correct solutions for yarns with both convex and concave yarn sections.  There are improvements to the 3D orthogonal weave refine option.  Scripts have been made available to give automatic extraction of material properties following simulations using the Abaqus voxel mesh option.  There are various optimisation changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.3/README/view here].&lt;br /&gt;
&amp;lt;small&amp;gt;13.56, 12 November 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.2 Released! ===&lt;br /&gt;
Version 3.5.2 has been released.  This contains the addition of a refine option to the 3D orthogonal weave.  The geometry is adjusted to achieve a given overall fabric thickness.  Fibre orientation calculations have been improved to reflect the variations in yarn cross-sections and a render fibre orientation functions has been added to the user interface.  A rectangular yarn section has been added.  There are also various bug fixes. Windows 32 and 64 bit installers are now available.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.2/README/view here].&lt;br /&gt;
&lt;br /&gt;
===Workshop Presentations===&lt;br /&gt;
The presentations from the TexGen workshop held at the East Midlands Conference Centre on 2nd May 2012 are now available to view on the Documentation page [http://texgen.sourceforge.net/index.php/Documentation here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:09, 8 May 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.1 Released! ===&lt;br /&gt;
Version 3.5.1 has been released.  This contains the addition of offset angle interlock weaves and specification of power ellipse power in the 3d weave wizard.  An export function has been added which uses the open source software Tetgen to generate tetrahedral meshes.  It also contains the addition of an x offset to the power ellipse section and various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:20, 1 March 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.0 Released! ===&lt;br /&gt;
Version 3.5.0 has been released.  This contains a new wizard for automatic creation of idealised orthogonal, angle interlock and layer-to-layer 3d textile weaves. It also contains various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:00, 13 October 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.1 Released! ===&lt;br /&gt;
Version 3.4.1 has been released. This contains minor changes to ABAQUS voxel mesh output and some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:09, 22 June 2011 &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.0 Released! ===&lt;br /&gt;
Version 3.4.0 has been released. It contains the addition of periodic boundary conditions to the Abaqus voxel mesh output.  The dry fibre volume mesh intersection correction has been improved and an additional option added to regenerate the textile model using the adapted mesh following correction.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.0/ReleaseNotes3.4.0.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:49, 16 March 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.3 Released! ===&lt;br /&gt;
Version 3.3.3 has been released.  It contains new features to save fibre and/or matrix as a voxel mesh in Abaqus format, to assign fibre properties to individual yarns and to adjust for small intersections in dry fibre volume mesh when outputting to Abaqus format.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.3.3/ReleaseNotes3.3.3.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;4 November 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.2 Released! ===&lt;br /&gt;
Version 3.3.2 has been released.  It contains new features to save fibre models to Abaqus output, render fibre volume mesh and render interference depth.  There are also some bug fixes, in particular a couple to get the GUI working in the Linux version.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.2/Release%20notes3-3-2.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15 June 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.3.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.1 has been released (currently only Windows versions). It contains a couple of bug fixes and an option to switch output of messages on and off.  A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.1/Release%20notes3-3-1.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17 March 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.0 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.0 has been released, it has various bug fixes most notably to the volume mesher and a few new algorithms dealing with geometry prediction based on mechanical behaviour of yarns. A list of changes can be found [https://sourceforge.net/project/shownotes.php?group_id=181000&amp;amp;release_id=591019 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:52, 9 April 2008 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.2.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.2.1 has been released, this is mainly a bug fix release however there are a few new features. A list of changes can be found [http://sourceforge.net/project/shownotes.php?release_id=553663&amp;amp;group_id=181000 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;04:12, 13 November 2007 (PST)&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Download TexGen</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-07-27T14:26:03Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All versions can be downloaded from [https://sourceforge.net/projects/texgen/ Sourceforge]. For Linux please download and build the code from https://github.com/louisepb/TexGen.&lt;br /&gt;
From version 3.6.0 the default Windows download is the 64-bit version. Select the &amp;quot;Files&amp;quot; tab on the download page to see all download options.&lt;br /&gt;
&lt;br /&gt;
==Which version?==&lt;br /&gt;
There are two versions versions of the executable available: &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; and &amp;#039;&amp;#039;texgen-bundle-3.x.x.exe&amp;#039;&amp;#039;. TexGen requires the Python interpreter to be installed in order to run. The standard installation package named &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; does not include Python and the Python interpreter must be preinstalled manually. The bundle installation package comes with the Python interpreter which means that no separate Python installation is required.&lt;br /&gt;
&lt;br /&gt;
From version 3.13.0 TexGen has been built with Python39. &lt;br /&gt;
&lt;br /&gt;
From version 3.8.1 TexGen has been built with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issuses  with the bundled versions on some machines and therefore version 3.8.2 has been released with bundled versions for both Python26 and Python27.  If Python27 is required and the bundled version does not run this can be rectified by installing Python27 from here: https://www.python.org/downloads/&lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t know what Python is or you won&amp;#039;t be using it for anything other than TexGen then the bundle package is recommended. For experienced users, the standard installation package is preferable since it will integrate itself with an existing python installation giving existing Python scripts access to TexGen.&lt;br /&gt;
&lt;br /&gt;
==Citing TexGen==&lt;br /&gt;
We would also be grateful if you could acknowledge use of TexGen where appropriate and suggest using one of the following references:&lt;br /&gt;
&lt;br /&gt;
L P Brown and A C Long. &amp;quot;Modelling the geometry of textile reinforcements for composites: TexGen&amp;quot;, Chapter 8 in &amp;quot;Composite reinforcements for optimum performance (Second Edition)&amp;quot;, ed. P Boisse, Woodhead Publishing Ltd, 2021, ISBN: 978-0-12-819005-0.&lt;br /&gt;
https://doi.org/10.1016/B978-0-12-819005-0.00008-3&lt;br /&gt;
&lt;br /&gt;
[http://www.scientific.net/AMR.331.44 Lin, H., Brown, L. P. &amp;amp; Long, A. C. 2011. Modelling and Simulating Textile Structures using TexGen. Advanced Materials Research, 331, 44-47.]&lt;br /&gt;
&lt;br /&gt;
To reference version 3.13.0 please use: &lt;br /&gt;
Louise Brown, mike-matveev, &amp;amp; georgespackman. (2023). louisepb/TexGen: TexGen v3.13.0 (v3.13.0). Zenodo. https://doi.org/10.5281/zenodo.8189683&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.2 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, March 11). louisepb/TexGen: TexGen v3.12.2 (Version v3.12.2). Zenodo. http://doi.org/10.5281/zenodo.4598477&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.1 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, February 12). louisepb/TexGen: TexGen v3.12.1 (Version v3.12.1). Zenodo. http://doi.org/10.5281/zenodo.4537855&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.0 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev &amp;amp; George Spackman. (2020, March 11). louisepb/TexGen: TexGen v3.12.0 (Version v3.12.0). Zenodo. http://doi.org/10.5281/zenodo.3706478&lt;br /&gt;
&lt;br /&gt;
To reference version 3.11.0 please use:&lt;br /&gt;
Brown, Louise P, &amp;amp; Sherburn, Martin. (2019, June 7). louisepb/TexGen: TexGen v3.11.0 (Version v3.11.0). Zenodo. http://doi.org/10.5281/zenodo.3241493&lt;br /&gt;
&lt;br /&gt;
To reference version 3.10.0 please use:&lt;br /&gt;
&amp;quot;Brown, Louise P, &amp;amp; Sherburn, Martin. (2017, December 13). louisepb/TexGen: TexGen v3.10.0 (Version v3.10.0). Zenodo. http://doi.org/10.5281/zenodo.1115604 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Script Library==&lt;br /&gt;
A selection of sample TexGen scripts for different types of textiles can be found on GitHub [https://github.com/louisepb/TexGenScripts TexGenScripts].  If you have scripts which you have written which you think would be of use to other users, and are willing to share, please send them to Louise Brown (louise.brown@nottingham.ac.uk) and we will add them to the library.&lt;br /&gt;
&lt;br /&gt;
==Feedback and help==&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.  Please note that if you join the forum there may be a slight delay before your membership is approved.  We will try to do this as quickly as possible but it is unfortunately necessary due to recent problems with spammers.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [http://sourceforge.net/tracker/?group_id=181000 sourceforge trackers].&lt;br /&gt;
&lt;br /&gt;
If you make use of TexGen in your work and publications please could you make it known on the forum.  This will both help other users and publicise your work.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Download TexGen</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-07-27T14:17:40Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Which version? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The most recent release executables for Windows are available [https://licensing.micragateway.org/product/texgen here]. Older versions can be downloaded from [https://sourceforge.net/projects/texgen/ Sourceforge]. For Linux please download and build the code from https://github.com/louisepb/TexGen.&lt;br /&gt;
From version 3.6.0 the default Windows download is the 64-bit version. Select the &amp;quot;Files&amp;quot; tab on the download page to see all download options.&lt;br /&gt;
&lt;br /&gt;
==Which version?==&lt;br /&gt;
There are two versions versions of the executable available: &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; and &amp;#039;&amp;#039;texgen-bundle-3.x.x.exe&amp;#039;&amp;#039;. TexGen requires the Python interpreter to be installed in order to run. The standard installation package named &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; does not include Python and the Python interpreter must be preinstalled manually. The bundle installation package comes with the Python interpreter which means that no separate Python installation is required.&lt;br /&gt;
&lt;br /&gt;
From version 3.13.0 TexGen has been built with Python39. &lt;br /&gt;
&lt;br /&gt;
From version 3.8.1 TexGen has been built with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issuses  with the bundled versions on some machines and therefore version 3.8.2 has been released with bundled versions for both Python26 and Python27.  If Python27 is required and the bundled version does not run this can be rectified by installing Python27 from here: https://www.python.org/downloads/&lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t know what Python is or you won&amp;#039;t be using it for anything other than TexGen then the bundle package is recommended. For experienced users, the standard installation package is preferable since it will integrate itself with an existing python installation giving existing Python scripts access to TexGen.&lt;br /&gt;
&lt;br /&gt;
==Citing TexGen==&lt;br /&gt;
We would also be grateful if you could acknowledge use of TexGen where appropriate and suggest using one of the following references:&lt;br /&gt;
&lt;br /&gt;
L P Brown and A C Long. &amp;quot;Modelling the geometry of textile reinforcements for composites: TexGen&amp;quot;, Chapter 8 in &amp;quot;Composite reinforcements for optimum performance (Second Edition)&amp;quot;, ed. P Boisse, Woodhead Publishing Ltd, 2021, ISBN: 978-0-12-819005-0.&lt;br /&gt;
https://doi.org/10.1016/B978-0-12-819005-0.00008-3&lt;br /&gt;
&lt;br /&gt;
[http://www.scientific.net/AMR.331.44 Lin, H., Brown, L. P. &amp;amp; Long, A. C. 2011. Modelling and Simulating Textile Structures using TexGen. Advanced Materials Research, 331, 44-47.]&lt;br /&gt;
&lt;br /&gt;
To reference version 3.13.0 please use: &lt;br /&gt;
Louise Brown, mike-matveev, &amp;amp; georgespackman. (2023). louisepb/TexGen: TexGen v3.13.0 (v3.13.0). Zenodo. https://doi.org/10.5281/zenodo.8189683&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.2 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, March 11). louisepb/TexGen: TexGen v3.12.2 (Version v3.12.2). Zenodo. http://doi.org/10.5281/zenodo.4598477&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.1 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, February 12). louisepb/TexGen: TexGen v3.12.1 (Version v3.12.1). Zenodo. http://doi.org/10.5281/zenodo.4537855&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.0 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev &amp;amp; George Spackman. (2020, March 11). louisepb/TexGen: TexGen v3.12.0 (Version v3.12.0). Zenodo. http://doi.org/10.5281/zenodo.3706478&lt;br /&gt;
&lt;br /&gt;
To reference version 3.11.0 please use:&lt;br /&gt;
Brown, Louise P, &amp;amp; Sherburn, Martin. (2019, June 7). louisepb/TexGen: TexGen v3.11.0 (Version v3.11.0). Zenodo. http://doi.org/10.5281/zenodo.3241493&lt;br /&gt;
&lt;br /&gt;
To reference version 3.10.0 please use:&lt;br /&gt;
&amp;quot;Brown, Louise P, &amp;amp; Sherburn, Martin. (2017, December 13). louisepb/TexGen: TexGen v3.10.0 (Version v3.10.0). Zenodo. http://doi.org/10.5281/zenodo.1115604 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Script Library==&lt;br /&gt;
A selection of sample TexGen scripts for different types of textiles can be found on GitHub [https://github.com/louisepb/TexGenScripts TexGenScripts].  If you have scripts which you have written which you think would be of use to other users, and are willing to share, please send them to Louise Brown (louise.brown@nottingham.ac.uk) and we will add them to the library.&lt;br /&gt;
&lt;br /&gt;
==Feedback and help==&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.  Please note that if you join the forum there may be a slight delay before your membership is approved.  We will try to do this as quickly as possible but it is unfortunately necessary due to recent problems with spammers.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [http://sourceforge.net/tracker/?group_id=181000 sourceforge trackers].&lt;br /&gt;
&lt;br /&gt;
If you make use of TexGen in your work and publications please could you make it known on the forum.  This will both help other users and publicise your work.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Download TexGen</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-07-27T14:16:02Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Citing TexGen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The most recent release executables for Windows are available [https://licensing.micragateway.org/product/texgen here]. Older versions can be downloaded from [https://sourceforge.net/projects/texgen/ Sourceforge]. For Linux please download and build the code from https://github.com/louisepb/TexGen.&lt;br /&gt;
From version 3.6.0 the default Windows download is the 64-bit version. Select the &amp;quot;Files&amp;quot; tab on the download page to see all download options.&lt;br /&gt;
&lt;br /&gt;
==Which version?==&lt;br /&gt;
There are two versions versions of the executable available: &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; and &amp;#039;&amp;#039;texgen-bundle-3.x.x.exe&amp;#039;&amp;#039;. TexGen requires the Python interpreter to be installed in order to run. The standard installation package named &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; does not include Python and the Python interpreter must be preinstalled manually. The bundle installation package comes with the Python interpreter which means that no separate Python installation is required.&lt;br /&gt;
&lt;br /&gt;
From version 3.8.1 TexGen has been built with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issuses  with the bundled versions on some machines and therefore version 3.8.2 has been released with bundled versions for both Python26 and Python27.  If Python27 is required and the bundled version does not run this can be rectified by installing Python27 from here: https://www.python.org/downloads/&lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t know what Python is or you won&amp;#039;t be using it for anything other than TexGen then the bundle package is recommended. For experienced users, the standard installation package is preferable since it will integrate itself with an existing python installation giving existing Python scripts access to TexGen.&lt;br /&gt;
&lt;br /&gt;
==Citing TexGen==&lt;br /&gt;
We would also be grateful if you could acknowledge use of TexGen where appropriate and suggest using one of the following references:&lt;br /&gt;
&lt;br /&gt;
L P Brown and A C Long. &amp;quot;Modelling the geometry of textile reinforcements for composites: TexGen&amp;quot;, Chapter 8 in &amp;quot;Composite reinforcements for optimum performance (Second Edition)&amp;quot;, ed. P Boisse, Woodhead Publishing Ltd, 2021, ISBN: 978-0-12-819005-0.&lt;br /&gt;
https://doi.org/10.1016/B978-0-12-819005-0.00008-3&lt;br /&gt;
&lt;br /&gt;
[http://www.scientific.net/AMR.331.44 Lin, H., Brown, L. P. &amp;amp; Long, A. C. 2011. Modelling and Simulating Textile Structures using TexGen. Advanced Materials Research, 331, 44-47.]&lt;br /&gt;
&lt;br /&gt;
To reference version 3.13.0 please use: &lt;br /&gt;
Louise Brown, mike-matveev, &amp;amp; georgespackman. (2023). louisepb/TexGen: TexGen v3.13.0 (v3.13.0). Zenodo. https://doi.org/10.5281/zenodo.8189683&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.2 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, March 11). louisepb/TexGen: TexGen v3.12.2 (Version v3.12.2). Zenodo. http://doi.org/10.5281/zenodo.4598477&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.1 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, February 12). louisepb/TexGen: TexGen v3.12.1 (Version v3.12.1). Zenodo. http://doi.org/10.5281/zenodo.4537855&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.0 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev &amp;amp; George Spackman. (2020, March 11). louisepb/TexGen: TexGen v3.12.0 (Version v3.12.0). Zenodo. http://doi.org/10.5281/zenodo.3706478&lt;br /&gt;
&lt;br /&gt;
To reference version 3.11.0 please use:&lt;br /&gt;
Brown, Louise P, &amp;amp; Sherburn, Martin. (2019, June 7). louisepb/TexGen: TexGen v3.11.0 (Version v3.11.0). Zenodo. http://doi.org/10.5281/zenodo.3241493&lt;br /&gt;
&lt;br /&gt;
To reference version 3.10.0 please use:&lt;br /&gt;
&amp;quot;Brown, Louise P, &amp;amp; Sherburn, Martin. (2017, December 13). louisepb/TexGen: TexGen v3.10.0 (Version v3.10.0). Zenodo. http://doi.org/10.5281/zenodo.1115604 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Script Library==&lt;br /&gt;
A selection of sample TexGen scripts for different types of textiles can be found on GitHub [https://github.com/louisepb/TexGenScripts TexGenScripts].  If you have scripts which you have written which you think would be of use to other users, and are willing to share, please send them to Louise Brown (louise.brown@nottingham.ac.uk) and we will add them to the library.&lt;br /&gt;
&lt;br /&gt;
==Feedback and help==&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.  Please note that if you join the forum there may be a slight delay before your membership is approved.  We will try to do this as quickly as possible but it is unfortunately necessary due to recent problems with spammers.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [http://sourceforge.net/tracker/?group_id=181000 sourceforge trackers].&lt;br /&gt;
&lt;br /&gt;
If you make use of TexGen in your work and publications please could you make it known on the forum.  This will both help other users and publicise your work.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Scripting Create Models</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-06-29T09:05:36Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Example 6: A layered textile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Example 1: A plain weave===&lt;br /&gt;
First of all, a Python script is just a plain ASCII text file with a .py extension. To create one simply open up your favorite text editor. Notepad will do if you have nothing else but I suggest a more powerful freeware text editor like [http://www.pspad.com/ PSPad] or [http://notepad-plus.sourceforge.net/ Notepad++]. Code that goes into the python script will be displayed like so:&lt;br /&gt;
&lt;br /&gt;
 # All Python code will be shown in a box like this one.&lt;br /&gt;
 # Lines begining with a &amp;#039;#&amp;#039; character are comments&lt;br /&gt;
&lt;br /&gt;
In this example, we will create a simple 2x2 plain weave model with a Python script. Its time to dive in and see some actual Python code. At this point if you are completely lost please refer back to the resources on Python programming. The first step is to create an instance of the &amp;lt;code&amp;gt;CTextileWeave2D&amp;lt;/code&amp;gt; class and give it a name, &amp;lt;code&amp;gt;weave&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # Create a 2D weave textile&lt;br /&gt;
 weave = CTextileWeave2D(2, 2, 1, 0.2, True)&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;CTextileWeave2D&amp;lt;/code&amp;gt; class takes 5 parameters in the order shown below:&lt;br /&gt;
* Number of weft yarns in the unit cell&lt;br /&gt;
* Number of warp yarns in the unit cell&lt;br /&gt;
* Spacing between the yarns&lt;br /&gt;
* Thickness of the fabrics&lt;br /&gt;
* Refine model (True/False)&lt;br /&gt;
&lt;br /&gt;
The only parameter that really needs an explanation here is the Refine model option, this controls whether or not the interference correction algorithm will be applied to keep the yarn volumes from intersecting which is a common problem. The interference correction algorithm generally does a good job but is not instantaneous so sometimes it can be beneficial to switch it off.&lt;br /&gt;
&lt;br /&gt;
This is the bare minimum information necessary to create a 2D woven fabric. In the following steps we will add more information to create the model the way we want it.&lt;br /&gt;
&lt;br /&gt;
Let&amp;#039;s set the weave pattern, this determines whether a warp or weft yarn will appear on top at a particular cross over. Cross overs are arranged in 2d grid where the size of the grid depends on the number of warp and weft yarns created. To swap the positions of the weft and warp yarns, we call the function &amp;lt;code&amp;gt;SwapPosition&amp;lt;/code&amp;gt; with the grid coordinates of the cross over. In order to create a plain weave we need to do this on two diagonally opposite cross overs like so:&lt;br /&gt;
&lt;br /&gt;
 # Set the weave pattern&lt;br /&gt;
 weave.SwapPosition(0, 0)&lt;br /&gt;
 weave.SwapPosition(1, 1)&lt;br /&gt;
&lt;br /&gt;
Now let&amp;#039;s add our &amp;lt;code&amp;gt;weave&amp;lt;/code&amp;gt; model to the database of models so that TexGen can render it:&lt;br /&gt;
&lt;br /&gt;
 # Add the textile&lt;br /&gt;
 AddTextile(weave)&lt;br /&gt;
&lt;br /&gt;
Thats it! This is a very simple script but it will generate a plain weave model. To recap your Python script should look like this:&lt;br /&gt;
&lt;br /&gt;
 # Create a 2D weave textile&lt;br /&gt;
 weave = CTextileWeave2D(2, 2, 1, 0.2, True)&lt;br /&gt;
 &lt;br /&gt;
 # Set the weave pattern&lt;br /&gt;
 weave.SwapPosition(0, 0)&lt;br /&gt;
 weave.SwapPosition(1, 1)&lt;br /&gt;
 &lt;br /&gt;
 # Add the textile&lt;br /&gt;
 AddTextile(weave)&lt;br /&gt;
&lt;br /&gt;
Save it to disk as &amp;#039;&amp;#039;PlainWeave.py&amp;#039;&amp;#039; or give it whatever name you want as long as it has a &amp;#039;&amp;#039;.py&amp;#039;&amp;#039; extension.&lt;br /&gt;
&lt;br /&gt;
In order to test the Script we need to load it into TexGen. So start up the TexGen GUI and from the &amp;#039;&amp;#039;Python menu&amp;#039;&amp;#039; select &amp;#039;&amp;#039;Run Script&amp;#039;&amp;#039;. Select the file you have just saved and click ok. With a bit of luck you should see a 2d plain weave on screen:&lt;br /&gt;
&lt;br /&gt;
[[Image:Example1.png]]&lt;br /&gt;
&lt;br /&gt;
Congratulations you have created your first TexGen Python script!&lt;br /&gt;
&lt;br /&gt;
===Example 2: Another plain weave (the hard way)===&lt;br /&gt;
In the first example we made use of the &amp;lt;code&amp;gt;CTextileWeave2D&amp;lt;/code&amp;gt; which is the reason the script is so compact. This was great for creating a 2D Weave, but what if we want to create something other than a 2D Weave? Well, let&amp;#039;s stick to the 2D weave for now but in this example we will create geometric model in a generic way without the use of the &amp;lt;code&amp;gt;CTextileWeave2D&amp;lt;/code&amp;gt; class. This takes a little bit longer to do, but gives more control over the final geometry.&lt;br /&gt;
&lt;br /&gt;
First we will define a general textile and call it &amp;lt;code&amp;gt;Textile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # Create a textile&lt;br /&gt;
 Textile = CTextile()&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;CTextile&amp;lt;/code&amp;gt; class doesn&amp;#039;t take any parameters, instead yarns will be created and added to it. Next we will create 4 yarns to go inside our textile, it is convenient to make use of the Python lists to do this. Create a list called &amp;lt;code&amp;gt;Yarns&amp;lt;/code&amp;gt; with 4 elements, each one an instance of the class &amp;lt;code&amp;gt;CYarn&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # Create a python list containing 4 yarns&lt;br /&gt;
 Yarns = [CYarn(), CYarn(), CYarn(), CYarn()]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Yarns&amp;lt;/code&amp;gt; now contains 4 empty yarns. Note that the yarns are not currently associated with the Textile, first we must fill in the details then make them a part of the textile. The first thing to do is define their paths with nodes. This is done like so:&lt;br /&gt;
&lt;br /&gt;
 # Add nodes to the yarns to describe their paths&lt;br /&gt;
 Yarns[0].AddNode(CNode(XYZ(0, 0, 0)))&lt;br /&gt;
 Yarns[0].AddNode(CNode(XYZ(0.22, 0, 0.05)))&lt;br /&gt;
 Yarns[0].AddNode(CNode(XYZ(0.44, 0, 0)))&lt;br /&gt;
 &lt;br /&gt;
 Yarns[1].AddNode(CNode(XYZ(0, 0.22, 0.05)))&lt;br /&gt;
 Yarns[1].AddNode(CNode(XYZ(0.22, 0.22, 0)))&lt;br /&gt;
 Yarns[1].AddNode(CNode(XYZ(0.44, 0.22, 0.05)))&lt;br /&gt;
 &lt;br /&gt;
 Yarns[2].AddNode(CNode(XYZ(0, 0, 0.05)))&lt;br /&gt;
 Yarns[2].AddNode(CNode(XYZ(0, 0.22, 0)))&lt;br /&gt;
 Yarns[2].AddNode(CNode(XYZ(0, 0.44, 0.05)))&lt;br /&gt;
 &lt;br /&gt;
 Yarns[3].AddNode(CNode(XYZ(0.22, 0, 0)))&lt;br /&gt;
 Yarns[3].AddNode(CNode(XYZ(0.22, 0.22, 0.05)))&lt;br /&gt;
 Yarns[3].AddNode(CNode(XYZ(0.22, 0.44, 0)))&lt;br /&gt;
&lt;br /&gt;
We have added 3 nodes to each yarn creating a woven pattern. The number in the square brackets after &amp;lt;code&amp;gt;Yarns&amp;lt;/code&amp;gt; refers to a particular yarn in the list. The function &amp;lt;code&amp;gt;AddNode&amp;lt;/code&amp;gt; is then called for the yarn. The function takes an instance of the class &amp;lt;code&amp;gt;CNode&amp;lt;/code&amp;gt; which in turn is constructed with an instance of the class &amp;lt;code&amp;gt;XYZ&amp;lt;/code&amp;gt; representing the position of the node. The class &amp;lt;code&amp;gt;XYZ&amp;lt;/code&amp;gt; is constructed with 3 numbers representing the X, Y and Z coordinates of the point.&lt;br /&gt;
&lt;br /&gt;
We still need to define a few more things to obtain a model. For the sake of simplicity, we will give all the yarns the same cross sectional shape, width, height, etc... The easiest way to do this is to loop over the yarns and assign the same properties to each yarn one by one. The syntax for looping over &amp;lt;code&amp;gt;Yarns&amp;lt;/code&amp;gt; is shown here:&lt;br /&gt;
&lt;br /&gt;
 # Loop over all the yarns in the list&lt;br /&gt;
 for Yarn in Yarns:&lt;br /&gt;
&lt;br /&gt;
Inside the loop, the variable &amp;lt;code&amp;gt;Yarn&amp;lt;/code&amp;gt; refers to the current yarn in the list. So within the loop we just assign properties to &amp;lt;code&amp;gt;Yarn&amp;lt;/code&amp;gt; and they will be applied to all the yarns in the list. In python the begining and end of a loop are defined by indentation, hence the following lines are indented to represent the contents of the loop.&lt;br /&gt;
&lt;br /&gt;
Let us define periodic cubic spline interpolation between the nodes:&lt;br /&gt;
&lt;br /&gt;
     # Set the interpolation function&lt;br /&gt;
     Yarn.AssignInterpolation(CInterpolationCubic())&lt;br /&gt;
&lt;br /&gt;
This is done with the function &amp;lt;code&amp;gt;AssignInterpolation&amp;lt;/code&amp;gt; which takes an instance of a class derived from &amp;lt;code&amp;gt;CInterpolation&amp;lt;/code&amp;gt;. In this case we used &amp;lt;code&amp;gt;CInterpolationCubic&amp;lt;/code&amp;gt; to specify periodic cubic spline interpolation.&lt;br /&gt;
&lt;br /&gt;
Next we need to define a cross section for the yarn, to keep things simple a constant cross section all along the length of the yarn will be defined:&lt;br /&gt;
&lt;br /&gt;
     # Assign a constant cross-section all along the yarn of elliptical shape&lt;br /&gt;
     Yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(0.18, 0.04)))&lt;br /&gt;
&lt;br /&gt;
The function &amp;lt;code&amp;gt;AssignSection&amp;lt;/code&amp;gt; takes an instance of a class derived from &amp;lt;code&amp;gt;CYarnSection&amp;lt;/code&amp;gt;. In this case we used &amp;lt;code&amp;gt;CYarnSectionConstant&amp;lt;/code&amp;gt; which in turns take an instance of a class derived from &amp;lt;code&amp;gt;CSection&amp;lt;/code&amp;gt; as a constructor. &amp;lt;code&amp;gt;CSectionEllipse&amp;lt;/code&amp;gt; defines an elliptical cross section with given width and height defined by the first and second parameters respectively.&lt;br /&gt;
&lt;br /&gt;
     # Set the resolution of the surface mesh created&lt;br /&gt;
     Yarn.SetResolution(20)&lt;br /&gt;
&lt;br /&gt;
This line sets the resolution of the surface mesh created. The first parameter to the function &amp;lt;code&amp;gt;SetResolution&amp;lt;/code&amp;gt; represents the number of points around a cross section. The number of points along the length of the yarns is automatically calculated such that the distance between points is similar to around the cross section.&lt;br /&gt;
&lt;br /&gt;
Next we must add repeat vectors to define how the yarns are repeated.&lt;br /&gt;
&lt;br /&gt;
     # Add repeat vectors to the yarn&lt;br /&gt;
     Yarn.AddRepeat(XYZ(0.44, 0, 0))&lt;br /&gt;
     Yarn.AddRepeat(XYZ(0, 0.44, 0))&lt;br /&gt;
&lt;br /&gt;
The function &amp;lt;code&amp;gt;AddRepeat&amp;lt;/code&amp;gt; takes an instance of the class &amp;lt;code&amp;gt;XYZ&amp;lt;/code&amp;gt;. As we saw earlier the class &amp;lt;code&amp;gt;XYZ&amp;lt;/code&amp;gt; is constructed with 3 numbers defining the X, Y and Z components.&lt;br /&gt;
&lt;br /&gt;
Finally the yarn is fully defined, it can now be added to &amp;lt;code&amp;gt;Textile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     # Add the yarn to our textile&lt;br /&gt;
     Textile.AddYarn(Yarn)&lt;br /&gt;
&lt;br /&gt;
This is the end of the loop, hence the following lines return to the original indentation. Now let&amp;#039;s define a Domain within which the textile will be placed:&lt;br /&gt;
&lt;br /&gt;
 Textile.AssignDomain(CDomainPlanes(XYZ(0, 0, -0.02), XYZ(0.44, 0.44, 0.07)))&lt;br /&gt;
&lt;br /&gt;
The function &amp;lt;code&amp;gt;AssignDomain&amp;lt;/code&amp;gt; takes an instance of a class derived from &amp;lt;code&amp;gt;CDomain&amp;lt;/code&amp;gt;. In this case we will create a box shaped domain, this can be accomplished by using the class &amp;lt;code&amp;gt;CDomainPlanes&amp;lt;/code&amp;gt;. A box can be created by passing in opposite corners of the box (the minimum and maximum coordinates). This is done again with the class &amp;lt;code&amp;gt;XYZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And finally &amp;lt;code&amp;gt;Textile&amp;lt;/code&amp;gt; must be added to so that it can be rendered. Each Textile added must be assigned a name to identify it, this is the name that will appear at the top in the TexGen GUI. This name can either be generated automatically or we can specify it explicitly like so:&lt;br /&gt;
&lt;br /&gt;
 # Add the textile with the name &amp;quot;polyester&amp;quot;&lt;br /&gt;
 AddTextile(&amp;quot;polyester&amp;quot;, Textile)&lt;br /&gt;
&lt;br /&gt;
That&amp;#039;s it! You now have the knowledge to create any type of fabric imaginable. Well, almost. The model created here is pretty simple, there is plenty of opportunity to create more complex shapes. For example non-constant cross sections can be defined, complex domain shapes defined by arbitrary planes, different interpolation functions.&lt;br /&gt;
&lt;br /&gt;
Here is the completed script:&lt;br /&gt;
&lt;br /&gt;
 # Create a textile&lt;br /&gt;
 Textile = CTextile()&lt;br /&gt;
 &lt;br /&gt;
 # Create a python list containing 4 yarns&lt;br /&gt;
 Yarns = [CYarn(), CYarn(), CYarn(), CYarn()]&lt;br /&gt;
 &lt;br /&gt;
 # Add nodes to the yarns to describe their paths&lt;br /&gt;
 Yarns[0].AddNode(CNode(XYZ(0, 0, 0)))&lt;br /&gt;
 Yarns[0].AddNode(CNode(XYZ(0.22, 0, 0.05)))&lt;br /&gt;
 Yarns[0].AddNode(CNode(XYZ(0.44, 0, 0)))&lt;br /&gt;
 &lt;br /&gt;
 Yarns[1].AddNode(CNode(XYZ(0, 0.22, 0.05)))&lt;br /&gt;
 Yarns[1].AddNode(CNode(XYZ(0.22, 0.22, 0)))&lt;br /&gt;
 Yarns[1].AddNode(CNode(XYZ(0.44, 0.22, 0.05)))&lt;br /&gt;
 &lt;br /&gt;
 Yarns[2].AddNode(CNode(XYZ(0, 0, 0.05)))&lt;br /&gt;
 Yarns[2].AddNode(CNode(XYZ(0, 0.22, 0)))&lt;br /&gt;
 Yarns[2].AddNode(CNode(XYZ(0, 0.44, 0.05)))&lt;br /&gt;
 &lt;br /&gt;
 Yarns[3].AddNode(CNode(XYZ(0.22, 0, 0)))&lt;br /&gt;
 Yarns[3].AddNode(CNode(XYZ(0.22, 0.22, 0.05)))&lt;br /&gt;
 Yarns[3].AddNode(CNode(XYZ(0.22, 0.44, 0)))&lt;br /&gt;
 &lt;br /&gt;
 # Loop over all the yarns in the list&lt;br /&gt;
 for Yarn in Yarns:&lt;br /&gt;
 &lt;br /&gt;
     # Set the interpolation function&lt;br /&gt;
     Yarn.AssignInterpolation(CInterpolationCubic())&lt;br /&gt;
 &lt;br /&gt;
     # Assign a constant cross-section all along the yarn of elliptical shape&lt;br /&gt;
     Yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(0.18, 0.04)))&lt;br /&gt;
 &lt;br /&gt;
     # Set the resolution of the surface mesh created&lt;br /&gt;
     Yarn.SetResolution(20)&lt;br /&gt;
 &lt;br /&gt;
     # Add repeat vectors to the yarn&lt;br /&gt;
     Yarn.AddRepeat(XYZ(0.44, 0, 0))&lt;br /&gt;
     Yarn.AddRepeat(XYZ(0, 0.44, 0))&lt;br /&gt;
 &lt;br /&gt;
     # Add the yarn to our textile&lt;br /&gt;
     Textile.AddYarn(Yarn)&lt;br /&gt;
 &lt;br /&gt;
 # Create a domain and assign it to the textile&lt;br /&gt;
 Textile.AssignDomain(CDomainPlanes(XYZ(0, 0, -0.02), XYZ(0.44, 0.44, 0.07)))&lt;br /&gt;
 &lt;br /&gt;
 # Add the textile with the name &amp;quot;polyester&amp;quot;&lt;br /&gt;
 AddTextile(&amp;quot;polyester&amp;quot;, Textile)&lt;br /&gt;
&lt;br /&gt;
And the result:&lt;br /&gt;
&lt;br /&gt;
[[Image:Example2.png]]&lt;br /&gt;
&lt;br /&gt;
===Example 3: A 3d weave===&lt;br /&gt;
This example is similar to the [[Scripting Create Models#Example 2: Another plain weave (the hard way)|Example 2]] in that the yarns will be defined by nodes. This time we will create a 3d woven fabric that looks like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Example3.png]]&lt;br /&gt;
&lt;br /&gt;
We start by defining a new CTextile instance:&lt;br /&gt;
&lt;br /&gt;
 # Create a textile&lt;br /&gt;
 Textile = CTextile()&lt;br /&gt;
&lt;br /&gt;
Before starting to define the geometry using TexGen it is helpful to define a list of parameters which may need to be changed later. These typically include spacing between yarns and yarn dimensions:&lt;br /&gt;
&lt;br /&gt;
 # Define some parameters&lt;br /&gt;
 # Spacing between weft yarns&lt;br /&gt;
 sx = 2&lt;br /&gt;
 # Spacing between warp yarns&lt;br /&gt;
 sy = 0.8&lt;br /&gt;
 # Vertical distance between yarns at cross overs&lt;br /&gt;
 sz = 0.16&lt;br /&gt;
 &lt;br /&gt;
 # Width of the weft yarns is less than the weft spacing&lt;br /&gt;
 weftyarnwidth = 1.2&lt;br /&gt;
 # Width of the warp yarns set equal to the warp spacing&lt;br /&gt;
 warpyarnwidth = sy&lt;br /&gt;
 # Yarn height equal to the vertical distance between yarns at cross overs&lt;br /&gt;
 yarnheight = sz&lt;br /&gt;
&lt;br /&gt;
It is a good idea to define these up front rather than hard coding them in the rest of the script because if you want to tweak any parameters they can easily be located and will only need to be changed once. Lets start by defining the warp stuffer yarns, these are fairly easy to define since they all straight and parallel to each other:&lt;br /&gt;
&lt;br /&gt;
 # Create warp stuffer yarns&lt;br /&gt;
 for i in range(3):&lt;br /&gt;
     yarn = CYarn()&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(0, 0, 2*i*sz)))&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(2*sx, 0, 2*i*sz)))&lt;br /&gt;
 &lt;br /&gt;
     yarn.AssignInterpolation(CInterpolationCubic())&lt;br /&gt;
     yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(warpyarnwidth, yarnheight)))&lt;br /&gt;
     yarn.SetResolution(20)&lt;br /&gt;
     yarn.AddRepeat(XYZ(2*sx, 0, 0))&lt;br /&gt;
     yarn.AddRepeat(XYZ(0, 2*sy, 0))&lt;br /&gt;
 &lt;br /&gt;
     Textile.AddYarn(yarn)&lt;br /&gt;
&lt;br /&gt;
Next we define the weft stuffer yarns, again these are easy to define:&lt;br /&gt;
&lt;br /&gt;
 # Create weft stuffer yarns&lt;br /&gt;
 for i in range(4):&lt;br /&gt;
     yarn = CYarn()&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(0, 0, (2*i-1)*sz)))&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(0, 2*sy, (2*i-1)*sz)))&lt;br /&gt;
 &lt;br /&gt;
     yarn.AssignInterpolation(CInterpolationCubic())&lt;br /&gt;
     yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(weftyarnwidth, yarnheight)))&lt;br /&gt;
     yarn.SetResolution(20)&lt;br /&gt;
     yarn.AddRepeat(XYZ(sx, 0, 0))&lt;br /&gt;
     yarn.AddRepeat(XYZ(0, 2*sy, 0))&lt;br /&gt;
 &lt;br /&gt;
     Textile.AddYarn(yarn)&lt;br /&gt;
&lt;br /&gt;
And finally we need to insert the binder yarns. Making clever use of the repeat vectors it is only necessary to define a single instance of the binder yarn.&lt;br /&gt;
&lt;br /&gt;
 # Create warp binder yarns&lt;br /&gt;
 top = 6*sz&lt;br /&gt;
 bottom = -2*sz&lt;br /&gt;
 &lt;br /&gt;
 oh = 0.5*weftyarnwidth+0.12&lt;br /&gt;
 ov = 0.8*sz&lt;br /&gt;
 &lt;br /&gt;
 yarn = CYarn()&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(0, sy, top)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(oh, sy, top-ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(sx-oh, sy, bottom+ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(sx, sy, bottom)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(sx+oh, sy, bottom+ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(2*sx-oh, sy, top-ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(2*sx, sy, top)))&lt;br /&gt;
 &lt;br /&gt;
 yarn.AssignInterpolation(CInterpolationBezier())&lt;br /&gt;
 yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(warpyarnwidth, yarnheight)))&lt;br /&gt;
 yarn.SetResolution(20)&lt;br /&gt;
 yarn.AddRepeat(XYZ(2*sx, 0, 0))&lt;br /&gt;
 yarn.AddRepeat(XYZ(sx, 2*sy, 0))&lt;br /&gt;
 &lt;br /&gt;
 Textile.AddYarn(yarn)&lt;br /&gt;
&lt;br /&gt;
Now that the geometry is defined we shall define a domain and add the textile so that TexGen knows about it.&lt;br /&gt;
&lt;br /&gt;
 Textile.AssignDomain(CDomainPlanes(XYZ(-0.5*sx,-0.5*sy,bottom-sz), XYZ(1.5*sx,3.5*sy,top+sz)))&lt;br /&gt;
 &lt;br /&gt;
 # Add the textile to our TexGen singleton&lt;br /&gt;
 AddTextile(Textile)&lt;br /&gt;
&lt;br /&gt;
The completed scripts is shown below:&lt;br /&gt;
&lt;br /&gt;
 # Create a textile&lt;br /&gt;
 Textile = CTextile()&lt;br /&gt;
 &lt;br /&gt;
 # Define some parameters&lt;br /&gt;
 # Spacing between weft yarns&lt;br /&gt;
 sx = 2&lt;br /&gt;
 # Spacing between warp yarns&lt;br /&gt;
 sy = 0.8&lt;br /&gt;
 # Vertical distance between yarns at cross overs&lt;br /&gt;
 sz = 0.16&lt;br /&gt;
 &lt;br /&gt;
 # Width of the weft yarns is less than the weft spacing&lt;br /&gt;
 weftyarnwidth = 1.2&lt;br /&gt;
 # Width of the warp yarns set equal to the warp spacing&lt;br /&gt;
 warpyarnwidth = sy&lt;br /&gt;
 # Yarn height equal to the vertical distance between yarns at cross overs&lt;br /&gt;
 yarnheight = sz&lt;br /&gt;
 &lt;br /&gt;
 # Create warp stuffer yarns&lt;br /&gt;
 for i in range(3):&lt;br /&gt;
     yarn = CYarn()&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(0, 0, 2*i*sz)))&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(2*sx, 0, 2*i*sz)))&lt;br /&gt;
 &lt;br /&gt;
     yarn.AssignInterpolation(CInterpolationCubic())&lt;br /&gt;
     yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(warpyarnwidth, yarnheight)))&lt;br /&gt;
     yarn.SetResolution(20)&lt;br /&gt;
     yarn.AddRepeat(XYZ(2*sx, 0, 0))&lt;br /&gt;
     yarn.AddRepeat(XYZ(0, 2*sy, 0))&lt;br /&gt;
 &lt;br /&gt;
     Textile.AddYarn(yarn)&lt;br /&gt;
 &lt;br /&gt;
 # Create weft stuffer yarns&lt;br /&gt;
 for i in range(4):&lt;br /&gt;
     yarn = CYarn()&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(0, 0, (2*i-1)*sz)))&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(0, 2*sy, (2*i-1)*sz)))&lt;br /&gt;
 &lt;br /&gt;
     yarn.AssignInterpolation(CInterpolationCubic())&lt;br /&gt;
     yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(weftyarnwidth, yarnheight)))&lt;br /&gt;
     yarn.SetResolution(20)&lt;br /&gt;
     yarn.AddRepeat(XYZ(sx, 0, 0))&lt;br /&gt;
     yarn.AddRepeat(XYZ(0, 2*sy, 0))&lt;br /&gt;
 &lt;br /&gt;
     Textile.AddYarn(yarn)&lt;br /&gt;
 &lt;br /&gt;
 # Create warp binder yarns&lt;br /&gt;
 top = 6*sz&lt;br /&gt;
 bottom = -2*sz&lt;br /&gt;
 &lt;br /&gt;
 oh = 0.5*weftyarnwidth+0.12&lt;br /&gt;
 ov = 0.8*sz&lt;br /&gt;
 &lt;br /&gt;
 yarn = CYarn()&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(0, sy, top)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(oh, sy, top-ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(sx-oh, sy, bottom+ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(sx, sy, bottom)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(sx+oh, sy, bottom+ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(2*sx-oh, sy, top-ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(2*sx, sy, top)))&lt;br /&gt;
 &lt;br /&gt;
 yarn.AssignInterpolation(CInterpolationBezier())&lt;br /&gt;
 yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(warpyarnwidth, yarnheight)))&lt;br /&gt;
 yarn.SetResolution(20)&lt;br /&gt;
 yarn.AddRepeat(XYZ(2*sx, 0, 0))&lt;br /&gt;
 yarn.AddRepeat(XYZ(sx, 2*sy, 0))&lt;br /&gt;
 &lt;br /&gt;
 Textile.AddYarn(yarn)&lt;br /&gt;
 &lt;br /&gt;
 Textile.AssignDomain(CDomainPlanes(XYZ(-0.5*sx,-0.5*sy,bottom-sz), XYZ(1.5*sx,3.5*sy,top+sz)))&lt;br /&gt;
 &lt;br /&gt;
 # Add the textile to our TexGen singleton&lt;br /&gt;
 AddTextile(Textile)&lt;br /&gt;
&lt;br /&gt;
===Example 4: A 3D Orthogonal Weave===&lt;br /&gt;
&lt;br /&gt;
First a textile of type CTextileOrthogonal is created.  The CTextileLayerToLayer, CTextileAngleInterlock and CTextileOffsetAngleInterlock classes can all be used in a similar way.&lt;br /&gt;
Selection of the refine option will automatically adjust the textile to a given thickness by adapting the cross sections.  The process used is described in this paper: [http://dx.doi.org/10.1016/j.compositesa.2013.10.004 ZENG, X., BROWN, L. P., ENDRUWEIT, A., MATVEEV, M. &amp;amp; LONG, A. C. 2014. Geometrical modelling of 3D woven reinforcements for polymer composites: Prediction of fabric permeability and composite mechanical properties. Composites Part A: Applied Science and Manufacturing, 56, 150-160.]:&lt;br /&gt;
&lt;br /&gt;
 # Create an orthogonal textile with 6 warp and 4 weft yarns, 1.0 warp and weft spacing, &lt;br /&gt;
 # warp height 0.35 and weft height 0.25. True/False selects refinement&lt;br /&gt;
 Textile = CTextileOrthogonal( 6, 4, 1.0, 1.0, 0.35, 0.25, True)&lt;br /&gt;
&lt;br /&gt;
The stack of yarn layers is added to the textile, typically alternating warp and weft(Y) layers.  For the angle interlock a no yarn layer should be added at the bottom and a binder yarn layer at the top (these could be reversed if wished):&lt;br /&gt;
&lt;br /&gt;
 # Add yarn layers.  There must always be one NoYarn layer and one Bindery layer&lt;br /&gt;
 Textile.AddNoYarnLayer()&lt;br /&gt;
 Textile.AddYLayers()&lt;br /&gt;
 Textile.AddWarpLayer()&lt;br /&gt;
 Textile.AddYLayers()&lt;br /&gt;
 Textile.AddWarpLayer()&lt;br /&gt;
 Textile.AddYLayers()&lt;br /&gt;
 Textile.AddBinderLayer()&lt;br /&gt;
&lt;br /&gt;
The size and shape of the yarns is then specified:&lt;br /&gt;
&lt;br /&gt;
 # Adjust the yarn widths, heights and spacings&lt;br /&gt;
 Textile.SetWarpYarnWidths( 3.6 )&lt;br /&gt;
 Textile.SetWarpYarnHeights( 0.35 )&lt;br /&gt;
 Textile.SetWarpYarnSpacings( 3.8 )&lt;br /&gt;
&lt;br /&gt;
 Textile.SetBinderYarnWidths( 1.375 )&lt;br /&gt;
 Textile.SetBinderYarnHeights( 0.16 )&lt;br /&gt;
 Textile.SetBinderYarnSpacings( 1.4 )&lt;br /&gt;
&lt;br /&gt;
 # Weft yarns&lt;br /&gt;
 Textile.SetYYarnWidths(2.58)  &lt;br /&gt;
 Textile.SetYYarnSpacings(2.8)&lt;br /&gt;
&lt;br /&gt;
 # Set the power of the power ellipses used&lt;br /&gt;
 Textile.SetWarpYarnPower(0.6)&lt;br /&gt;
 Textile.SetWeftYarnPower(0.6)&lt;br /&gt;
 Textile.SetBinderYarnPower(0.8)&lt;br /&gt;
&lt;br /&gt;
The positions of the binder yarns are set.  Calling the SwapBinderPosition function will toggle the binder yarn between the top and bottom layer:&lt;br /&gt;
&lt;br /&gt;
 # Binder yarns may only be at top/bottom position in orthogonal&lt;br /&gt;
 # In this case the binder layer was created as the top layer so switching will place them at the bottom&lt;br /&gt;
 Textile.SwapBinderPosition( 0,2)&lt;br /&gt;
 Textile.SwapBinderPosition( 2,2)&lt;br /&gt;
 Textile.SwapBinderPosition( 1,5)&lt;br /&gt;
 Textile.SwapBinderPosition( 3,5)&lt;br /&gt;
&lt;br /&gt;
A default domain is created to fit the textile.  By default an extra 5% is added at the top and bottom:&lt;br /&gt;
&lt;br /&gt;
 # Create a default domain to fit the textile&lt;br /&gt;
 Textile.AssignDefaultDomain()&lt;br /&gt;
&lt;br /&gt;
If the refine option is being used then yarn properties must be specified.  The target thickness is set and also a maximum volume fraction.  The refine algorithm changes the cross-sections of the textile to achieve the target thickness, checking that the maximum volume fraction has not been exceeded where cross-sections are reduced.  An error message will be displayed if the target thickness cannot be achieved without exceeding the maximum volume fraction specified:&lt;br /&gt;
&lt;br /&gt;
 # Set fibre properties&lt;br /&gt;
 Textile.SetFibreDiameter( WARP, 0.007, &amp;quot;mm&amp;quot; )&lt;br /&gt;
 Textile.SetFibreDiameter( WEFT, 0.007, &amp;quot;mm&amp;quot; )&lt;br /&gt;
 Textile.SetFibreDiameter( BINDER, 0.007, &amp;quot;mm&amp;quot; )&lt;br /&gt;
 Textile.SetFibresPerYarn( WARP, 5000 )&lt;br /&gt;
 Textile.SetFibresPerYarn( WEFT, 8000 )&lt;br /&gt;
 Textile.SetFibresPerYarn( BINDER, 3500 )&lt;br /&gt;
 # Set the target thickness for the refined textile&lt;br /&gt;
 Textile.SetThickness(1.4)&lt;br /&gt;
 # Set the maximum volume fraction allowed in the refine process&lt;br /&gt;
 Textile.SetMaxVolFraction(0.78)&lt;br /&gt;
 # Reset the domain height to suit the refined textile&lt;br /&gt;
 Textile.SetDomainZValues()&lt;br /&gt;
&lt;br /&gt;
 # Add the textile&lt;br /&gt;
 AddTextile(Textile)&lt;br /&gt;
&lt;br /&gt;
The complete script is shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # Create an orthogonal textile with 6 warp and 4 weft yarns, 1.0 warp and weft spacing, &lt;br /&gt;
 # warp height 0.35 and weft height 0.25. True/False selects refinement&lt;br /&gt;
 Textile = CTextileOrthogonal( 6, 4, 1.0, 1.0, 0.35, 0.25, True)&lt;br /&gt;
&lt;br /&gt;
 # Set the ratio of warp/binder yarns&lt;br /&gt;
 Textile.SetWarpRatio( 2 )&lt;br /&gt;
 Textile.SetBinderRatio( 1 )&lt;br /&gt;
&lt;br /&gt;
 # Add yarn layers.  There must always be one NoYarn layer and one Bindery layer&lt;br /&gt;
 Textile.AddNoYarnLayer()&lt;br /&gt;
 Textile.AddYLayers()&lt;br /&gt;
 Textile.AddWarpLayer()&lt;br /&gt;
 Textile.AddYLayers()&lt;br /&gt;
 Textile.AddWarpLayer()&lt;br /&gt;
 Textile.AddYLayers()&lt;br /&gt;
 Textile.AddBinderLayer()&lt;br /&gt;
&lt;br /&gt;
 # Adjust the yarn widths, heights and spacings&lt;br /&gt;
 Textile.SetWarpYarnWidths( 3.6 )&lt;br /&gt;
 Textile.SetWarpYarnHeights( 0.35 )&lt;br /&gt;
 Textile.SetWarpYarnSpacings( 3.8 )&lt;br /&gt;
&lt;br /&gt;
 Textile.SetBinderYarnWidths( 1.375 )&lt;br /&gt;
 Textile.SetBinderYarnHeights( 0.16 )&lt;br /&gt;
 Textile.SetBinderYarnSpacings( 1.4 )&lt;br /&gt;
&lt;br /&gt;
 # Weft yarns&lt;br /&gt;
 Textile.SetYYarnWidths(2.58)  &lt;br /&gt;
 Textile.SetYYarnSpacings(2.8)&lt;br /&gt;
&lt;br /&gt;
 # Set the power of the power ellipses used&lt;br /&gt;
 Textile.SetWarpYarnPower(0.6)&lt;br /&gt;
 Textile.SetWeftYarnPower(0.6)&lt;br /&gt;
 Textile.SetBinderYarnPower(0.8)&lt;br /&gt;
&lt;br /&gt;
 # Binder yarns may only be at top/bottom position in orthogonal&lt;br /&gt;
 # In this case the binder layer was created as the top layer so switching will place them at the bottom&lt;br /&gt;
 Textile.SwapBinderPosition( 0,2)&lt;br /&gt;
 Textile.SwapBinderPosition( 2,2)&lt;br /&gt;
 Textile.SwapBinderPosition( 1,5)&lt;br /&gt;
 Textile.SwapBinderPosition( 3,5)&lt;br /&gt;
&lt;br /&gt;
 # Create a default domain to fit the textile&lt;br /&gt;
 Textile.AssignDefaultDomain()&lt;br /&gt;
&lt;br /&gt;
 # Set fibre properties&lt;br /&gt;
 Textile.SetFibreDiameter( WARP, 0.007, &amp;quot;mm&amp;quot; )&lt;br /&gt;
 Textile.SetFibreDiameter( WEFT, 0.007, &amp;quot;mm&amp;quot; )&lt;br /&gt;
 Textile.SetFibreDiameter( BINDER, 0.007, &amp;quot;mm&amp;quot; )&lt;br /&gt;
 Textile.SetFibresPerYarn( WARP, 5000 )&lt;br /&gt;
 Textile.SetFibresPerYarn( WEFT, 8000 )&lt;br /&gt;
 Textile.SetFibresPerYarn( BINDER, 3500 )&lt;br /&gt;
 # Set the target thickness for the refined textile&lt;br /&gt;
 Textile.SetThickness(1.4)&lt;br /&gt;
 # Set the maximum volume fraction allowed in the refine process&lt;br /&gt;
 Textile.SetMaxVolFraction(0.78)&lt;br /&gt;
 # Reset the domain height to suit the refined textile&lt;br /&gt;
 Textile.SetDomainZValues()&lt;br /&gt;
&lt;br /&gt;
 # Add the textile&lt;br /&gt;
 AddTextile(Textile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The finished textile is shown below.  The image on the right shows the textile produced using the same parameters but without using the refine option:&lt;br /&gt;
&lt;br /&gt;
[[Image:3DOrthogonal.png|left|450px]]&lt;br /&gt;
[[Image:3DOrthogonalNoRefine.png|right|450px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example 5: A sheared plain weave===&lt;br /&gt;
This example builds on [[Scripting Create Models#Example 2: Another plain weave (the hard way)|Example 2]], except this time we will be modeling a sheared unit cell. The final script can be found at the bottom, I will not step through each section of case as I have done for the previous cases since you should now be familiar with the basic procedure.&lt;br /&gt;
&lt;br /&gt;
You will notice at the top of the script the line &amp;lt;code&amp;gt;from math import *&amp;lt;/code&amp;gt;, this is a Python command to import the contents of the math module. We need this here because we will be making use of the value &amp;lt;code&amp;gt;pi&amp;lt;/code&amp;gt; and functions &amp;lt;code&amp;gt;cos&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sin&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In this script I have also defined some constants up front (spacing, height, shear angle, twist angle and shear offset) as they will get used frequently within the script. It is best to define them as variables so that they can easily be modified later.&lt;br /&gt;
&lt;br /&gt;
The position of the nodes are arranged as plain weave but displaced slightly by the shear offset. Note that if the shear angle is 0, the shear offset is also 0 and the position of the nodes is equivalent to [[Scripting Create Models#Example 2: Another plain weave (the hard way)|Example 2]].&lt;br /&gt;
&lt;br /&gt;
The next difference is how the cross-section is defined. When a plain woven fabric is sheared the yarn is likely to twist, so we can no longer use a constant cross-section all along the length of the yarn. Instead here I have defined a yarn which twists in one direction at 1/4 of its way along the length of the yarn and twists in the other direction at 3/4 of the way along the length of the yarn. This is to avoid intersections between the yarns. The cross-section is interpolated at other positions along the yarn.&lt;br /&gt;
&lt;br /&gt;
The repeat vectors are defined to take into account the shear and is fairly straight forwards.&lt;br /&gt;
&lt;br /&gt;
The next complication is defining a domain which is sheared. This is done by specifying 6 planes which define the bounds of the domain. The normals of the planes must point inwards, in the case of an unsheared fabric the normals are all in line with the global axes. But in order to create a lozenge shaped unit cell these normals must be rotated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from math import *&lt;br /&gt;
&lt;br /&gt;
# Create a textile&lt;br /&gt;
Textile = CTextile()&lt;br /&gt;
&lt;br /&gt;
# Create a python list containing 4 yarns&lt;br /&gt;
Yarns = [CYarn(), CYarn(), CYarn(), CYarn()]&lt;br /&gt;
&lt;br /&gt;
# Define some constants that will be used in further calculations&lt;br /&gt;
spacing = 0.22&lt;br /&gt;
height = 0.05&lt;br /&gt;
&lt;br /&gt;
shearAngle = pi/16&lt;br /&gt;
twistAngle = shearAngle&lt;br /&gt;
&lt;br /&gt;
shearOffset = spacing*sin(shearAngle)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Add nodes to the yarns to describe their paths, these are the sheared node positions&lt;br /&gt;
Yarns[0].AddNode(CNode(XYZ(0, 0, 0)))&lt;br /&gt;
Yarns[0].AddNode(CNode(XYZ(spacing, shearOffset, height)))&lt;br /&gt;
Yarns[0].AddNode(CNode(XYZ(2*spacing, 2*shearOffset, 0)))&lt;br /&gt;
&lt;br /&gt;
Yarns[1].AddNode(CNode(XYZ(0+shearOffset, spacing, height)))&lt;br /&gt;
Yarns[1].AddNode(CNode(XYZ(spacing+shearOffset, spacing+shearOffset, 0)))&lt;br /&gt;
Yarns[1].AddNode(CNode(XYZ(2*spacing+shearOffset, spacing+2*shearOffset, height)))&lt;br /&gt;
&lt;br /&gt;
Yarns[2].AddNode(CNode(XYZ(0, 0, height)))&lt;br /&gt;
Yarns[2].AddNode(CNode(XYZ(shearOffset, spacing, 0)))&lt;br /&gt;
Yarns[2].AddNode(CNode(XYZ(2*shearOffset, 2*spacing, height)))&lt;br /&gt;
&lt;br /&gt;
Yarns[3].AddNode(CNode(XYZ(spacing, 0+shearOffset, 0)))&lt;br /&gt;
Yarns[3].AddNode(CNode(XYZ(spacing+shearOffset, spacing+shearOffset, height)))&lt;br /&gt;
Yarns[3].AddNode(CNode(XYZ(spacing+2*shearOffset, 2*spacing+shearOffset, 0)))&lt;br /&gt;
&lt;br /&gt;
# Create a cross-section which twists along the length of the yarn to accommodate the sheared fabric architecture&lt;br /&gt;
ellipse = CSectionEllipse(0.18, 0.04)&lt;br /&gt;
sectionTwist1 = CYarnSectionInterpPosition()&lt;br /&gt;
sectionTwist1.AddSection(0.25, CSectionRotated(ellipse, -twistAngle))&lt;br /&gt;
sectionTwist1.AddSection(0.75, CSectionRotated(ellipse, twistAngle))&lt;br /&gt;
sectionTwist2 = CYarnSectionInterpPosition()&lt;br /&gt;
sectionTwist2.AddSection(0.25, CSectionRotated(ellipse, twistAngle))&lt;br /&gt;
sectionTwist2.AddSection(0.75, CSectionRotated(ellipse, -twistAngle))&lt;br /&gt;
&lt;br /&gt;
for Yarn in (Yarns[1], Yarns[3]):&lt;br /&gt;
    Yarn.AssignSection(sectionTwist1)&lt;br /&gt;
for Yarn in (Yarns[0], Yarns[2]):&lt;br /&gt;
    Yarn.AssignSection(sectionTwist2)&lt;br /&gt;
&lt;br /&gt;
# Loop over all the yarns in the list&lt;br /&gt;
for Yarn in Yarns:&lt;br /&gt;
    # Set the resolution of the surface mesh created&lt;br /&gt;
    Yarn.SetResolution(20)&lt;br /&gt;
&lt;br /&gt;
    # Add repeat vectors to the yarn&lt;br /&gt;
    Yarn.AddRepeat(XYZ(2*spacing, 2*shearOffset, 0))&lt;br /&gt;
    Yarn.AddRepeat(XYZ(2*shearOffset, 2*spacing, 0))&lt;br /&gt;
&lt;br /&gt;
    # Add the yarn to our textile&lt;br /&gt;
    Textile.AddYarn(Yarn)&lt;br /&gt;
&lt;br /&gt;
# Create a sheared domain with 6 planes&lt;br /&gt;
domain = CDomainPlanes()&lt;br /&gt;
d = (2*spacing-2*shearOffset*sin(shearAngle))/sqrt(1+sin(shearAngle)**2)&lt;br /&gt;
domain.AddPlane(PLANE(XYZ(1, -sin(shearAngle), 0), 0))&lt;br /&gt;
domain.AddPlane(PLANE(XYZ(-1, sin(shearAngle), 0), -d))&lt;br /&gt;
domain.AddPlane(PLANE(XYZ(-sin(shearAngle), 1, 0), 0))&lt;br /&gt;
domain.AddPlane(PLANE(XYZ(sin(shearAngle), -1, 0), -d))&lt;br /&gt;
domain.AddPlane(PLANE(XYZ(0, 0, 1), -height))&lt;br /&gt;
domain.AddPlane(PLANE(XYZ(0, 0, -1), -2*height))&lt;br /&gt;
Textile.AssignDomain(domain)&lt;br /&gt;
&lt;br /&gt;
# Add the textile with the name &amp;quot;polyester&amp;quot;&lt;br /&gt;
AddTextile(&amp;quot;polyester&amp;quot;, Textile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you run the script your model should look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Example4.png]]&lt;br /&gt;
&lt;br /&gt;
===Example 6: A layered textile===&lt;br /&gt;
This example shows how two textiles can be combined into one textile using the CLayeredTextile class.  &lt;br /&gt;
&lt;br /&gt;
First create a textile, in this case a 4x4 satin weave:&lt;br /&gt;
&lt;br /&gt;
 # Create a 4x4 satin weave with yarn spacing of 1 and thickness of 0.2&lt;br /&gt;
 weave = CTextileWeave2D(4, 4, 1, 0.2, True, True)&lt;br /&gt;
 weave.SetGapSize(0)&lt;br /&gt;
 &lt;br /&gt;
 # Set the weave pattern&lt;br /&gt;
 weave.SwapPosition(0, 3)&lt;br /&gt;
 weave.SwapPosition(1, 2)&lt;br /&gt;
 weave.SwapPosition(2, 1)&lt;br /&gt;
 weave.SwapPosition(3, 0)&lt;br /&gt;
 # Adjust the yarn widths and heights&lt;br /&gt;
 weave.SetYarnWidths(0.8)&lt;br /&gt;
 weave.SetYarnHeights(0.1)&lt;br /&gt;
&lt;br /&gt;
Create the default domain for the textile.  The x,y dimensions of the domain of the combined textile will be those of this weave.  The z dimension will be altered to include the other layer:&lt;br /&gt;
&lt;br /&gt;
 # Assign the domain and get its limits&lt;br /&gt;
 weave.AssignDefaultDomain()&lt;br /&gt;
&lt;br /&gt;
Now create a textile of type CTextileLayered.  An offset can be specified.  The x,y offset will be relative to the domain origin and the z offset will be relative to the lower surface of the bottom layer.  This is the first layer so the z offset is zero:&lt;br /&gt;
&lt;br /&gt;
 # Create a layered textile&lt;br /&gt;
 LayeredTextile = CTextileLayered()&lt;br /&gt;
&lt;br /&gt;
 # Add the first layer with specified offset&lt;br /&gt;
 Offset = XYZ(0.25, 0.5, 0)&lt;br /&gt;
 LayeredTextile.AddLayer( weave, Offset )&lt;br /&gt;
&lt;br /&gt;
Next create the weave pattern for the second layer, in this case a plain weave:&lt;br /&gt;
&lt;br /&gt;
 # Create 2nd textile: Plain weave, spacing of 1 and thickness 0.25&lt;br /&gt;
 weave1 = CTextileWeave2D(2, 2, 1, 0.25, True, True)&lt;br /&gt;
 weave1.SetGapSize(0)&lt;br /&gt;
 weave1.SetYarnWidths(0.8)&lt;br /&gt;
 weave1.SwapPosition(0, 1)&lt;br /&gt;
 weave1.SwapPosition(1, 0)&lt;br /&gt;
 weave1.SetXYarnWidths(0, 1.0)&lt;br /&gt;
 weave1.SetXYarnHeights(0, 0.15)&lt;br /&gt;
 weave1.SetXYarnSpacings(0, 1)&lt;br /&gt;
 weave1.SetXYarnWidths(1, 0.8)&lt;br /&gt;
 weave1.SetXYarnHeights(1, 0.1)&lt;br /&gt;
 weave1.SetXYarnSpacings(1, 1)&lt;br /&gt;
 weave1.SetYYarnWidths(0, 0.8)&lt;br /&gt;
 weave1.SetYYarnHeights(0, 0.1)&lt;br /&gt;
 weave1.SetYYarnSpacings(0, 1)&lt;br /&gt;
 weave1.SetYYarnWidths(1, 1.0)&lt;br /&gt;
 weave1.SetYYarnHeights(1, 0.15)&lt;br /&gt;
 weave1.SetYYarnSpacings(1, 1)&lt;br /&gt;
&lt;br /&gt;
 weave1.AssignDefaultDomain()&lt;br /&gt;
&lt;br /&gt;
This weave must be offset so that it lies above the first weave.  In this case it is offset by the height of the first weave:&lt;br /&gt;
&lt;br /&gt;
 # Offsets for second layer.  z offset is height of first textile&lt;br /&gt;
 Offset = XYZ(0.4,0.2,0.2)&lt;br /&gt;
&lt;br /&gt;
The offset is then applied to each node of the yarns and the yarns are then added to the layered textile:&lt;br /&gt;
&lt;br /&gt;
 # Add the second textile to the layered textile&lt;br /&gt;
 LayeredTextile.AddLayer( weave1, Offset )&lt;br /&gt;
&lt;br /&gt;
The domain is enlarged by the height of the domain of the second textile and this is then assigned for the layered textile:&lt;br /&gt;
&lt;br /&gt;
 # Get the size of the domain for the second textile&lt;br /&gt;
 Domain1 = weave1.GetDefaultDomain()&lt;br /&gt;
 Min = XYZ()&lt;br /&gt;
 Max = XYZ()&lt;br /&gt;
 Domain1.GetBoxLimits(Min, Max)&lt;br /&gt;
&lt;br /&gt;
 # Get the domain of the first textile&lt;br /&gt;
 Domain = weave.GetDefaultDomain()&lt;br /&gt;
 Plane = PLANE()&lt;br /&gt;
 # Get the domain upper surface&lt;br /&gt;
 index = Domain.GetPlane( XYZ(0,0,-1), Plane )&lt;br /&gt;
 # Offset the domain to include the second textile&lt;br /&gt;
 Plane.d -= Offset.z&lt;br /&gt;
 Domain.SetPlane( index, Plane )&lt;br /&gt;
&lt;br /&gt;
 LayeredTextile.AssignDomain( Domain )&lt;br /&gt;
&lt;br /&gt;
Finally the textile is added with the name &amp;quot;LayeredTextile&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 # Add the textile with the name &amp;quot;LayeredTextile&amp;quot;&lt;br /&gt;
 AddTextile(&amp;quot;LayeredTextile&amp;quot;, LayeredTextile)&lt;br /&gt;
&lt;br /&gt;
The completed script is shown below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create a 4x4 satin weave with yarn spacing of 1 and thickness of 0.2&lt;br /&gt;
weave = CTextileWeave2D(4, 4, 1, 0.2, True, True)&lt;br /&gt;
weave.SetGapSize(0)&lt;br /&gt;
&lt;br /&gt;
# Set the weave pattern&lt;br /&gt;
weave.SwapPosition(0, 3)&lt;br /&gt;
weave.SwapPosition(1, 2)&lt;br /&gt;
weave.SwapPosition(2, 1)&lt;br /&gt;
weave.SwapPosition(3, 0)&lt;br /&gt;
&lt;br /&gt;
# Adjust the yarn widths and heights&lt;br /&gt;
weave.SetYarnWidths(0.8)&lt;br /&gt;
weave.SetYarnHeights(0.1)&lt;br /&gt;
&lt;br /&gt;
# Assign the domain &lt;br /&gt;
weave.AssignDefaultDomain()&lt;br /&gt;
&lt;br /&gt;
# Create a layered textile&lt;br /&gt;
LayeredTextile = CTextileLayered()&lt;br /&gt;
&lt;br /&gt;
# Add the first layer with specified offset&lt;br /&gt;
Offset = XYZ(0.25, 0.5, 0)&lt;br /&gt;
LayeredTextile.AddLayer( weave, Offset );&lt;br /&gt;
&lt;br /&gt;
# Create 2nd textile: Plain weave, spacing of 1 and thickness 0.2&lt;br /&gt;
weave1 = CTextileWeave2D(2, 2, 1, 0.25, True, True)&lt;br /&gt;
weave1.SetGapSize(0)&lt;br /&gt;
weave1.SetYarnWidths(0.8)&lt;br /&gt;
weave1.SwapPosition(0, 1)&lt;br /&gt;
weave1.SwapPosition(1, 0)&lt;br /&gt;
weave1.SetXYarnWidths(0, 0.9)&lt;br /&gt;
weave1.SetXYarnHeights(0, 0.12)&lt;br /&gt;
weave1.SetXYarnSpacings(0, 1)&lt;br /&gt;
weave1.SetXYarnWidths(1, 0.8)&lt;br /&gt;
weave1.SetXYarnHeights(1, 0.1)&lt;br /&gt;
weave1.SetXYarnSpacings(1, 1)&lt;br /&gt;
weave1.SetYYarnWidths(0, 0.8)&lt;br /&gt;
weave1.SetYYarnHeights(0, 0.1)&lt;br /&gt;
weave1.SetYYarnSpacings(0, 1)&lt;br /&gt;
weave1.SetYYarnWidths(1, 0.9)&lt;br /&gt;
weave1.SetYYarnHeights(1, 0.12)&lt;br /&gt;
weave1.SetYYarnSpacings(1, 1)&lt;br /&gt;
&lt;br /&gt;
weave1.AssignDefaultDomain()&lt;br /&gt;
&lt;br /&gt;
# Offsets for second layer.  z offset is height of first textile&lt;br /&gt;
Offset = XYZ(0.4,0.2,0.2)&lt;br /&gt;
&lt;br /&gt;
# Add the second textile to the layered textile&lt;br /&gt;
LayeredTextile.AddLayer( weave1, Offset )&lt;br /&gt;
&lt;br /&gt;
# Get the size of the domain for the second textile&lt;br /&gt;
Domain1 = weave1.GetDefaultDomain()&lt;br /&gt;
Min = XYZ()&lt;br /&gt;
Max = XYZ()&lt;br /&gt;
Domain1.GetBoxLimits(Min, Max)&lt;br /&gt;
&lt;br /&gt;
# Get the domain of the first textile&lt;br /&gt;
Domain = weave.GetDefaultDomain()&lt;br /&gt;
Plane = PLANE()&lt;br /&gt;
# Get the domain upper surface&lt;br /&gt;
index = Domain.GetPlane( XYZ(0,0,-1), Plane )&lt;br /&gt;
# Offset the domain to include the second textile&lt;br /&gt;
Plane.d -= Max.z - Min.z&lt;br /&gt;
Domain.SetPlane( index, Plane )&lt;br /&gt;
&lt;br /&gt;
LayeredTextile.AssignDomain( Domain )&lt;br /&gt;
&lt;br /&gt;
# Add the textile with the name &amp;quot;LayeredTextile&amp;quot;&lt;br /&gt;
AddTextile(&amp;#039;LayeredTextile&amp;#039;, LayeredTextile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The finished textile is shown below:&lt;br /&gt;
&lt;br /&gt;
[[Image:LayeredTextile1.png|left|500px]]&lt;br /&gt;
[[Image:LowerLayer.png|right|500px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Saving to TG3 file format===&lt;br /&gt;
TexGen has its own file format for storing textile geometry with the extension .tg3. For more details on this file format please read the [[TG3 File Format]] page. Any textile models saved to this file format can be reloaded at a later time however it is also a good idea to keep the python script used to generate the geometry in case modifications need to be made. To save such a file it is simply a matter of adding an additional line at the end of your script like so:&lt;br /&gt;
&lt;br /&gt;
 SaveToXML(&amp;quot;MyTextile.tg3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The first parameter is the name of the file to save.  Note that if the .tg3 extension is omitted then it will automatically be appended for you. The second parameter is optional and if used should be the name of the textile to save, this is useful if you have several textiles loaded at once (i.e. you called AddTextile more than once) and you only want to save one of them. Note that if you don&amp;#039;t specify the second parameter and you do have several textiles loaded then it will save all of them to a single .tg3 file. The third parameter determines how much information is saved in the .tg3 file, see the [[TG3 File Format]] for more details.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Scripting Create Models</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-06-29T08:53:21Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Example 1: A plain weave===&lt;br /&gt;
First of all, a Python script is just a plain ASCII text file with a .py extension. To create one simply open up your favorite text editor. Notepad will do if you have nothing else but I suggest a more powerful freeware text editor like [http://www.pspad.com/ PSPad] or [http://notepad-plus.sourceforge.net/ Notepad++]. Code that goes into the python script will be displayed like so:&lt;br /&gt;
&lt;br /&gt;
 # All Python code will be shown in a box like this one.&lt;br /&gt;
 # Lines begining with a &amp;#039;#&amp;#039; character are comments&lt;br /&gt;
&lt;br /&gt;
In this example, we will create a simple 2x2 plain weave model with a Python script. Its time to dive in and see some actual Python code. At this point if you are completely lost please refer back to the resources on Python programming. The first step is to create an instance of the &amp;lt;code&amp;gt;CTextileWeave2D&amp;lt;/code&amp;gt; class and give it a name, &amp;lt;code&amp;gt;weave&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # Create a 2D weave textile&lt;br /&gt;
 weave = CTextileWeave2D(2, 2, 1, 0.2, True)&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;CTextileWeave2D&amp;lt;/code&amp;gt; class takes 5 parameters in the order shown below:&lt;br /&gt;
* Number of weft yarns in the unit cell&lt;br /&gt;
* Number of warp yarns in the unit cell&lt;br /&gt;
* Spacing between the yarns&lt;br /&gt;
* Thickness of the fabrics&lt;br /&gt;
* Refine model (True/False)&lt;br /&gt;
&lt;br /&gt;
The only parameter that really needs an explanation here is the Refine model option, this controls whether or not the interference correction algorithm will be applied to keep the yarn volumes from intersecting which is a common problem. The interference correction algorithm generally does a good job but is not instantaneous so sometimes it can be beneficial to switch it off.&lt;br /&gt;
&lt;br /&gt;
This is the bare minimum information necessary to create a 2D woven fabric. In the following steps we will add more information to create the model the way we want it.&lt;br /&gt;
&lt;br /&gt;
Let&amp;#039;s set the weave pattern, this determines whether a warp or weft yarn will appear on top at a particular cross over. Cross overs are arranged in 2d grid where the size of the grid depends on the number of warp and weft yarns created. To swap the positions of the weft and warp yarns, we call the function &amp;lt;code&amp;gt;SwapPosition&amp;lt;/code&amp;gt; with the grid coordinates of the cross over. In order to create a plain weave we need to do this on two diagonally opposite cross overs like so:&lt;br /&gt;
&lt;br /&gt;
 # Set the weave pattern&lt;br /&gt;
 weave.SwapPosition(0, 0)&lt;br /&gt;
 weave.SwapPosition(1, 1)&lt;br /&gt;
&lt;br /&gt;
Now let&amp;#039;s add our &amp;lt;code&amp;gt;weave&amp;lt;/code&amp;gt; model to the database of models so that TexGen can render it:&lt;br /&gt;
&lt;br /&gt;
 # Add the textile&lt;br /&gt;
 AddTextile(weave)&lt;br /&gt;
&lt;br /&gt;
Thats it! This is a very simple script but it will generate a plain weave model. To recap your Python script should look like this:&lt;br /&gt;
&lt;br /&gt;
 # Create a 2D weave textile&lt;br /&gt;
 weave = CTextileWeave2D(2, 2, 1, 0.2, True)&lt;br /&gt;
 &lt;br /&gt;
 # Set the weave pattern&lt;br /&gt;
 weave.SwapPosition(0, 0)&lt;br /&gt;
 weave.SwapPosition(1, 1)&lt;br /&gt;
 &lt;br /&gt;
 # Add the textile&lt;br /&gt;
 AddTextile(weave)&lt;br /&gt;
&lt;br /&gt;
Save it to disk as &amp;#039;&amp;#039;PlainWeave.py&amp;#039;&amp;#039; or give it whatever name you want as long as it has a &amp;#039;&amp;#039;.py&amp;#039;&amp;#039; extension.&lt;br /&gt;
&lt;br /&gt;
In order to test the Script we need to load it into TexGen. So start up the TexGen GUI and from the &amp;#039;&amp;#039;Python menu&amp;#039;&amp;#039; select &amp;#039;&amp;#039;Run Script&amp;#039;&amp;#039;. Select the file you have just saved and click ok. With a bit of luck you should see a 2d plain weave on screen:&lt;br /&gt;
&lt;br /&gt;
[[Image:Example1.png]]&lt;br /&gt;
&lt;br /&gt;
Congratulations you have created your first TexGen Python script!&lt;br /&gt;
&lt;br /&gt;
===Example 2: Another plain weave (the hard way)===&lt;br /&gt;
In the first example we made use of the &amp;lt;code&amp;gt;CTextileWeave2D&amp;lt;/code&amp;gt; which is the reason the script is so compact. This was great for creating a 2D Weave, but what if we want to create something other than a 2D Weave? Well, let&amp;#039;s stick to the 2D weave for now but in this example we will create geometric model in a generic way without the use of the &amp;lt;code&amp;gt;CTextileWeave2D&amp;lt;/code&amp;gt; class. This takes a little bit longer to do, but gives more control over the final geometry.&lt;br /&gt;
&lt;br /&gt;
First we will define a general textile and call it &amp;lt;code&amp;gt;Textile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # Create a textile&lt;br /&gt;
 Textile = CTextile()&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;CTextile&amp;lt;/code&amp;gt; class doesn&amp;#039;t take any parameters, instead yarns will be created and added to it. Next we will create 4 yarns to go inside our textile, it is convenient to make use of the Python lists to do this. Create a list called &amp;lt;code&amp;gt;Yarns&amp;lt;/code&amp;gt; with 4 elements, each one an instance of the class &amp;lt;code&amp;gt;CYarn&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 # Create a python list containing 4 yarns&lt;br /&gt;
 Yarns = [CYarn(), CYarn(), CYarn(), CYarn()]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Yarns&amp;lt;/code&amp;gt; now contains 4 empty yarns. Note that the yarns are not currently associated with the Textile, first we must fill in the details then make them a part of the textile. The first thing to do is define their paths with nodes. This is done like so:&lt;br /&gt;
&lt;br /&gt;
 # Add nodes to the yarns to describe their paths&lt;br /&gt;
 Yarns[0].AddNode(CNode(XYZ(0, 0, 0)))&lt;br /&gt;
 Yarns[0].AddNode(CNode(XYZ(0.22, 0, 0.05)))&lt;br /&gt;
 Yarns[0].AddNode(CNode(XYZ(0.44, 0, 0)))&lt;br /&gt;
 &lt;br /&gt;
 Yarns[1].AddNode(CNode(XYZ(0, 0.22, 0.05)))&lt;br /&gt;
 Yarns[1].AddNode(CNode(XYZ(0.22, 0.22, 0)))&lt;br /&gt;
 Yarns[1].AddNode(CNode(XYZ(0.44, 0.22, 0.05)))&lt;br /&gt;
 &lt;br /&gt;
 Yarns[2].AddNode(CNode(XYZ(0, 0, 0.05)))&lt;br /&gt;
 Yarns[2].AddNode(CNode(XYZ(0, 0.22, 0)))&lt;br /&gt;
 Yarns[2].AddNode(CNode(XYZ(0, 0.44, 0.05)))&lt;br /&gt;
 &lt;br /&gt;
 Yarns[3].AddNode(CNode(XYZ(0.22, 0, 0)))&lt;br /&gt;
 Yarns[3].AddNode(CNode(XYZ(0.22, 0.22, 0.05)))&lt;br /&gt;
 Yarns[3].AddNode(CNode(XYZ(0.22, 0.44, 0)))&lt;br /&gt;
&lt;br /&gt;
We have added 3 nodes to each yarn creating a woven pattern. The number in the square brackets after &amp;lt;code&amp;gt;Yarns&amp;lt;/code&amp;gt; refers to a particular yarn in the list. The function &amp;lt;code&amp;gt;AddNode&amp;lt;/code&amp;gt; is then called for the yarn. The function takes an instance of the class &amp;lt;code&amp;gt;CNode&amp;lt;/code&amp;gt; which in turn is constructed with an instance of the class &amp;lt;code&amp;gt;XYZ&amp;lt;/code&amp;gt; representing the position of the node. The class &amp;lt;code&amp;gt;XYZ&amp;lt;/code&amp;gt; is constructed with 3 numbers representing the X, Y and Z coordinates of the point.&lt;br /&gt;
&lt;br /&gt;
We still need to define a few more things to obtain a model. For the sake of simplicity, we will give all the yarns the same cross sectional shape, width, height, etc... The easiest way to do this is to loop over the yarns and assign the same properties to each yarn one by one. The syntax for looping over &amp;lt;code&amp;gt;Yarns&amp;lt;/code&amp;gt; is shown here:&lt;br /&gt;
&lt;br /&gt;
 # Loop over all the yarns in the list&lt;br /&gt;
 for Yarn in Yarns:&lt;br /&gt;
&lt;br /&gt;
Inside the loop, the variable &amp;lt;code&amp;gt;Yarn&amp;lt;/code&amp;gt; refers to the current yarn in the list. So within the loop we just assign properties to &amp;lt;code&amp;gt;Yarn&amp;lt;/code&amp;gt; and they will be applied to all the yarns in the list. In python the begining and end of a loop are defined by indentation, hence the following lines are indented to represent the contents of the loop.&lt;br /&gt;
&lt;br /&gt;
Let us define periodic cubic spline interpolation between the nodes:&lt;br /&gt;
&lt;br /&gt;
     # Set the interpolation function&lt;br /&gt;
     Yarn.AssignInterpolation(CInterpolationCubic())&lt;br /&gt;
&lt;br /&gt;
This is done with the function &amp;lt;code&amp;gt;AssignInterpolation&amp;lt;/code&amp;gt; which takes an instance of a class derived from &amp;lt;code&amp;gt;CInterpolation&amp;lt;/code&amp;gt;. In this case we used &amp;lt;code&amp;gt;CInterpolationCubic&amp;lt;/code&amp;gt; to specify periodic cubic spline interpolation.&lt;br /&gt;
&lt;br /&gt;
Next we need to define a cross section for the yarn, to keep things simple a constant cross section all along the length of the yarn will be defined:&lt;br /&gt;
&lt;br /&gt;
     # Assign a constant cross-section all along the yarn of elliptical shape&lt;br /&gt;
     Yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(0.18, 0.04)))&lt;br /&gt;
&lt;br /&gt;
The function &amp;lt;code&amp;gt;AssignSection&amp;lt;/code&amp;gt; takes an instance of a class derived from &amp;lt;code&amp;gt;CYarnSection&amp;lt;/code&amp;gt;. In this case we used &amp;lt;code&amp;gt;CYarnSectionConstant&amp;lt;/code&amp;gt; which in turns take an instance of a class derived from &amp;lt;code&amp;gt;CSection&amp;lt;/code&amp;gt; as a constructor. &amp;lt;code&amp;gt;CSectionEllipse&amp;lt;/code&amp;gt; defines an elliptical cross section with given width and height defined by the first and second parameters respectively.&lt;br /&gt;
&lt;br /&gt;
     # Set the resolution of the surface mesh created&lt;br /&gt;
     Yarn.SetResolution(20)&lt;br /&gt;
&lt;br /&gt;
This line sets the resolution of the surface mesh created. The first parameter to the function &amp;lt;code&amp;gt;SetResolution&amp;lt;/code&amp;gt; represents the number of points around a cross section. The number of points along the length of the yarns is automatically calculated such that the distance between points is similar to around the cross section.&lt;br /&gt;
&lt;br /&gt;
Next we must add repeat vectors to define how the yarns are repeated.&lt;br /&gt;
&lt;br /&gt;
     # Add repeat vectors to the yarn&lt;br /&gt;
     Yarn.AddRepeat(XYZ(0.44, 0, 0))&lt;br /&gt;
     Yarn.AddRepeat(XYZ(0, 0.44, 0))&lt;br /&gt;
&lt;br /&gt;
The function &amp;lt;code&amp;gt;AddRepeat&amp;lt;/code&amp;gt; takes an instance of the class &amp;lt;code&amp;gt;XYZ&amp;lt;/code&amp;gt;. As we saw earlier the class &amp;lt;code&amp;gt;XYZ&amp;lt;/code&amp;gt; is constructed with 3 numbers defining the X, Y and Z components.&lt;br /&gt;
&lt;br /&gt;
Finally the yarn is fully defined, it can now be added to &amp;lt;code&amp;gt;Textile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
     # Add the yarn to our textile&lt;br /&gt;
     Textile.AddYarn(Yarn)&lt;br /&gt;
&lt;br /&gt;
This is the end of the loop, hence the following lines return to the original indentation. Now let&amp;#039;s define a Domain within which the textile will be placed:&lt;br /&gt;
&lt;br /&gt;
 Textile.AssignDomain(CDomainPlanes(XYZ(0, 0, -0.02), XYZ(0.44, 0.44, 0.07)))&lt;br /&gt;
&lt;br /&gt;
The function &amp;lt;code&amp;gt;AssignDomain&amp;lt;/code&amp;gt; takes an instance of a class derived from &amp;lt;code&amp;gt;CDomain&amp;lt;/code&amp;gt;. In this case we will create a box shaped domain, this can be accomplished by using the class &amp;lt;code&amp;gt;CDomainPlanes&amp;lt;/code&amp;gt;. A box can be created by passing in opposite corners of the box (the minimum and maximum coordinates). This is done again with the class &amp;lt;code&amp;gt;XYZ&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And finally &amp;lt;code&amp;gt;Textile&amp;lt;/code&amp;gt; must be added to so that it can be rendered. Each Textile added must be assigned a name to identify it, this is the name that will appear at the top in the TexGen GUI. This name can either be generated automatically or we can specify it explicitly like so:&lt;br /&gt;
&lt;br /&gt;
 # Add the textile with the name &amp;quot;polyester&amp;quot;&lt;br /&gt;
 AddTextile(&amp;quot;polyester&amp;quot;, Textile)&lt;br /&gt;
&lt;br /&gt;
That&amp;#039;s it! You now have the knowledge to create any type of fabric imaginable. Well, almost. The model created here is pretty simple, there is plenty of opportunity to create more complex shapes. For example non-constant cross sections can be defined, complex domain shapes defined by arbitrary planes, different interpolation functions.&lt;br /&gt;
&lt;br /&gt;
Here is the completed script:&lt;br /&gt;
&lt;br /&gt;
 # Create a textile&lt;br /&gt;
 Textile = CTextile()&lt;br /&gt;
 &lt;br /&gt;
 # Create a python list containing 4 yarns&lt;br /&gt;
 Yarns = [CYarn(), CYarn(), CYarn(), CYarn()]&lt;br /&gt;
 &lt;br /&gt;
 # Add nodes to the yarns to describe their paths&lt;br /&gt;
 Yarns[0].AddNode(CNode(XYZ(0, 0, 0)))&lt;br /&gt;
 Yarns[0].AddNode(CNode(XYZ(0.22, 0, 0.05)))&lt;br /&gt;
 Yarns[0].AddNode(CNode(XYZ(0.44, 0, 0)))&lt;br /&gt;
 &lt;br /&gt;
 Yarns[1].AddNode(CNode(XYZ(0, 0.22, 0.05)))&lt;br /&gt;
 Yarns[1].AddNode(CNode(XYZ(0.22, 0.22, 0)))&lt;br /&gt;
 Yarns[1].AddNode(CNode(XYZ(0.44, 0.22, 0.05)))&lt;br /&gt;
 &lt;br /&gt;
 Yarns[2].AddNode(CNode(XYZ(0, 0, 0.05)))&lt;br /&gt;
 Yarns[2].AddNode(CNode(XYZ(0, 0.22, 0)))&lt;br /&gt;
 Yarns[2].AddNode(CNode(XYZ(0, 0.44, 0.05)))&lt;br /&gt;
 &lt;br /&gt;
 Yarns[3].AddNode(CNode(XYZ(0.22, 0, 0)))&lt;br /&gt;
 Yarns[3].AddNode(CNode(XYZ(0.22, 0.22, 0.05)))&lt;br /&gt;
 Yarns[3].AddNode(CNode(XYZ(0.22, 0.44, 0)))&lt;br /&gt;
 &lt;br /&gt;
 # Loop over all the yarns in the list&lt;br /&gt;
 for Yarn in Yarns:&lt;br /&gt;
 &lt;br /&gt;
     # Set the interpolation function&lt;br /&gt;
     Yarn.AssignInterpolation(CInterpolationCubic())&lt;br /&gt;
 &lt;br /&gt;
     # Assign a constant cross-section all along the yarn of elliptical shape&lt;br /&gt;
     Yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(0.18, 0.04)))&lt;br /&gt;
 &lt;br /&gt;
     # Set the resolution of the surface mesh created&lt;br /&gt;
     Yarn.SetResolution(20)&lt;br /&gt;
 &lt;br /&gt;
     # Add repeat vectors to the yarn&lt;br /&gt;
     Yarn.AddRepeat(XYZ(0.44, 0, 0))&lt;br /&gt;
     Yarn.AddRepeat(XYZ(0, 0.44, 0))&lt;br /&gt;
 &lt;br /&gt;
     # Add the yarn to our textile&lt;br /&gt;
     Textile.AddYarn(Yarn)&lt;br /&gt;
 &lt;br /&gt;
 # Create a domain and assign it to the textile&lt;br /&gt;
 Textile.AssignDomain(CDomainPlanes(XYZ(0, 0, -0.02), XYZ(0.44, 0.44, 0.07)))&lt;br /&gt;
 &lt;br /&gt;
 # Add the textile with the name &amp;quot;polyester&amp;quot;&lt;br /&gt;
 AddTextile(&amp;quot;polyester&amp;quot;, Textile)&lt;br /&gt;
&lt;br /&gt;
And the result:&lt;br /&gt;
&lt;br /&gt;
[[Image:Example2.png]]&lt;br /&gt;
&lt;br /&gt;
===Example 3: A 3d weave===&lt;br /&gt;
This example is similar to the [[Scripting Create Models#Example 2: Another plain weave (the hard way)|Example 2]] in that the yarns will be defined by nodes. This time we will create a 3d woven fabric that looks like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Example3.png]]&lt;br /&gt;
&lt;br /&gt;
We start by defining a new CTextile instance:&lt;br /&gt;
&lt;br /&gt;
 # Create a textile&lt;br /&gt;
 Textile = CTextile()&lt;br /&gt;
&lt;br /&gt;
Before starting to define the geometry using TexGen it is helpful to define a list of parameters which may need to be changed later. These typically include spacing between yarns and yarn dimensions:&lt;br /&gt;
&lt;br /&gt;
 # Define some parameters&lt;br /&gt;
 # Spacing between weft yarns&lt;br /&gt;
 sx = 2&lt;br /&gt;
 # Spacing between warp yarns&lt;br /&gt;
 sy = 0.8&lt;br /&gt;
 # Vertical distance between yarns at cross overs&lt;br /&gt;
 sz = 0.16&lt;br /&gt;
 &lt;br /&gt;
 # Width of the weft yarns is less than the weft spacing&lt;br /&gt;
 weftyarnwidth = 1.2&lt;br /&gt;
 # Width of the warp yarns set equal to the warp spacing&lt;br /&gt;
 warpyarnwidth = sy&lt;br /&gt;
 # Yarn height equal to the vertical distance between yarns at cross overs&lt;br /&gt;
 yarnheight = sz&lt;br /&gt;
&lt;br /&gt;
It is a good idea to define these up front rather than hard coding them in the rest of the script because if you want to tweak any parameters they can easily be located and will only need to be changed once. Lets start by defining the warp stuffer yarns, these are fairly easy to define since they all straight and parallel to each other:&lt;br /&gt;
&lt;br /&gt;
 # Create warp stuffer yarns&lt;br /&gt;
 for i in range(3):&lt;br /&gt;
     yarn = CYarn()&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(0, 0, 2*i*sz)))&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(2*sx, 0, 2*i*sz)))&lt;br /&gt;
 &lt;br /&gt;
     yarn.AssignInterpolation(CInterpolationCubic())&lt;br /&gt;
     yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(warpyarnwidth, yarnheight)))&lt;br /&gt;
     yarn.SetResolution(20)&lt;br /&gt;
     yarn.AddRepeat(XYZ(2*sx, 0, 0))&lt;br /&gt;
     yarn.AddRepeat(XYZ(0, 2*sy, 0))&lt;br /&gt;
 &lt;br /&gt;
     Textile.AddYarn(yarn)&lt;br /&gt;
&lt;br /&gt;
Next we define the weft stuffer yarns, again these are easy to define:&lt;br /&gt;
&lt;br /&gt;
 # Create weft stuffer yarns&lt;br /&gt;
 for i in range(4):&lt;br /&gt;
     yarn = CYarn()&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(0, 0, (2*i-1)*sz)))&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(0, 2*sy, (2*i-1)*sz)))&lt;br /&gt;
 &lt;br /&gt;
     yarn.AssignInterpolation(CInterpolationCubic())&lt;br /&gt;
     yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(weftyarnwidth, yarnheight)))&lt;br /&gt;
     yarn.SetResolution(20)&lt;br /&gt;
     yarn.AddRepeat(XYZ(sx, 0, 0))&lt;br /&gt;
     yarn.AddRepeat(XYZ(0, 2*sy, 0))&lt;br /&gt;
 &lt;br /&gt;
     Textile.AddYarn(yarn)&lt;br /&gt;
&lt;br /&gt;
And finally we need to insert the binder yarns. Making clever use of the repeat vectors it is only necessary to define a single instance of the binder yarn.&lt;br /&gt;
&lt;br /&gt;
 # Create warp binder yarns&lt;br /&gt;
 top = 6*sz&lt;br /&gt;
 bottom = -2*sz&lt;br /&gt;
 &lt;br /&gt;
 oh = 0.5*weftyarnwidth+0.12&lt;br /&gt;
 ov = 0.8*sz&lt;br /&gt;
 &lt;br /&gt;
 yarn = CYarn()&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(0, sy, top)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(oh, sy, top-ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(sx-oh, sy, bottom+ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(sx, sy, bottom)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(sx+oh, sy, bottom+ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(2*sx-oh, sy, top-ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(2*sx, sy, top)))&lt;br /&gt;
 &lt;br /&gt;
 yarn.AssignInterpolation(CInterpolationBezier())&lt;br /&gt;
 yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(warpyarnwidth, yarnheight)))&lt;br /&gt;
 yarn.SetResolution(20)&lt;br /&gt;
 yarn.AddRepeat(XYZ(2*sx, 0, 0))&lt;br /&gt;
 yarn.AddRepeat(XYZ(sx, 2*sy, 0))&lt;br /&gt;
 &lt;br /&gt;
 Textile.AddYarn(yarn)&lt;br /&gt;
&lt;br /&gt;
Now that the geometry is defined we shall define a domain and add the textile so that TexGen knows about it.&lt;br /&gt;
&lt;br /&gt;
 Textile.AssignDomain(CDomainPlanes(XYZ(-0.5*sx,-0.5*sy,bottom-sz), XYZ(1.5*sx,3.5*sy,top+sz)))&lt;br /&gt;
 &lt;br /&gt;
 # Add the textile to our TexGen singleton&lt;br /&gt;
 AddTextile(Textile)&lt;br /&gt;
&lt;br /&gt;
The completed scripts is shown below:&lt;br /&gt;
&lt;br /&gt;
 # Create a textile&lt;br /&gt;
 Textile = CTextile()&lt;br /&gt;
 &lt;br /&gt;
 # Define some parameters&lt;br /&gt;
 # Spacing between weft yarns&lt;br /&gt;
 sx = 2&lt;br /&gt;
 # Spacing between warp yarns&lt;br /&gt;
 sy = 0.8&lt;br /&gt;
 # Vertical distance between yarns at cross overs&lt;br /&gt;
 sz = 0.16&lt;br /&gt;
 &lt;br /&gt;
 # Width of the weft yarns is less than the weft spacing&lt;br /&gt;
 weftyarnwidth = 1.2&lt;br /&gt;
 # Width of the warp yarns set equal to the warp spacing&lt;br /&gt;
 warpyarnwidth = sy&lt;br /&gt;
 # Yarn height equal to the vertical distance between yarns at cross overs&lt;br /&gt;
 yarnheight = sz&lt;br /&gt;
 &lt;br /&gt;
 # Create warp stuffer yarns&lt;br /&gt;
 for i in range(3):&lt;br /&gt;
     yarn = CYarn()&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(0, 0, 2*i*sz)))&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(2*sx, 0, 2*i*sz)))&lt;br /&gt;
 &lt;br /&gt;
     yarn.AssignInterpolation(CInterpolationCubic())&lt;br /&gt;
     yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(warpyarnwidth, yarnheight)))&lt;br /&gt;
     yarn.SetResolution(20)&lt;br /&gt;
     yarn.AddRepeat(XYZ(2*sx, 0, 0))&lt;br /&gt;
     yarn.AddRepeat(XYZ(0, 2*sy, 0))&lt;br /&gt;
 &lt;br /&gt;
     Textile.AddYarn(yarn)&lt;br /&gt;
 &lt;br /&gt;
 # Create weft stuffer yarns&lt;br /&gt;
 for i in range(4):&lt;br /&gt;
     yarn = CYarn()&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(0, 0, (2*i-1)*sz)))&lt;br /&gt;
     yarn.AddNode(CNode(XYZ(0, 2*sy, (2*i-1)*sz)))&lt;br /&gt;
 &lt;br /&gt;
     yarn.AssignInterpolation(CInterpolationCubic())&lt;br /&gt;
     yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(weftyarnwidth, yarnheight)))&lt;br /&gt;
     yarn.SetResolution(20)&lt;br /&gt;
     yarn.AddRepeat(XYZ(sx, 0, 0))&lt;br /&gt;
     yarn.AddRepeat(XYZ(0, 2*sy, 0))&lt;br /&gt;
 &lt;br /&gt;
     Textile.AddYarn(yarn)&lt;br /&gt;
 &lt;br /&gt;
 # Create warp binder yarns&lt;br /&gt;
 top = 6*sz&lt;br /&gt;
 bottom = -2*sz&lt;br /&gt;
 &lt;br /&gt;
 oh = 0.5*weftyarnwidth+0.12&lt;br /&gt;
 ov = 0.8*sz&lt;br /&gt;
 &lt;br /&gt;
 yarn = CYarn()&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(0, sy, top)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(oh, sy, top-ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(sx-oh, sy, bottom+ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(sx, sy, bottom)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(sx+oh, sy, bottom+ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(2*sx-oh, sy, top-ov)))&lt;br /&gt;
 yarn.AddNode(CNode(XYZ(2*sx, sy, top)))&lt;br /&gt;
 &lt;br /&gt;
 yarn.AssignInterpolation(CInterpolationBezier())&lt;br /&gt;
 yarn.AssignSection(CYarnSectionConstant(CSectionEllipse(warpyarnwidth, yarnheight)))&lt;br /&gt;
 yarn.SetResolution(20)&lt;br /&gt;
 yarn.AddRepeat(XYZ(2*sx, 0, 0))&lt;br /&gt;
 yarn.AddRepeat(XYZ(sx, 2*sy, 0))&lt;br /&gt;
 &lt;br /&gt;
 Textile.AddYarn(yarn)&lt;br /&gt;
 &lt;br /&gt;
 Textile.AssignDomain(CDomainPlanes(XYZ(-0.5*sx,-0.5*sy,bottom-sz), XYZ(1.5*sx,3.5*sy,top+sz)))&lt;br /&gt;
 &lt;br /&gt;
 # Add the textile to our TexGen singleton&lt;br /&gt;
 AddTextile(Textile)&lt;br /&gt;
&lt;br /&gt;
===Example 4: A 3D Orthogonal Weave===&lt;br /&gt;
&lt;br /&gt;
First a textile of type CTextileOrthogonal is created.  The CTextileLayerToLayer, CTextileAngleInterlock and CTextileOffsetAngleInterlock classes can all be used in a similar way.&lt;br /&gt;
Selection of the refine option will automatically adjust the textile to a given thickness by adapting the cross sections.  The process used is described in this paper: [http://dx.doi.org/10.1016/j.compositesa.2013.10.004 ZENG, X., BROWN, L. P., ENDRUWEIT, A., MATVEEV, M. &amp;amp; LONG, A. C. 2014. Geometrical modelling of 3D woven reinforcements for polymer composites: Prediction of fabric permeability and composite mechanical properties. Composites Part A: Applied Science and Manufacturing, 56, 150-160.]:&lt;br /&gt;
&lt;br /&gt;
 # Create an orthogonal textile with 6 warp and 4 weft yarns, 1.0 warp and weft spacing, &lt;br /&gt;
 # warp height 0.35 and weft height 0.25. True/False selects refinement&lt;br /&gt;
 Textile = CTextileOrthogonal( 6, 4, 1.0, 1.0, 0.35, 0.25, True)&lt;br /&gt;
&lt;br /&gt;
The stack of yarn layers is added to the textile, typically alternating warp and weft(Y) layers.  For the angle interlock a no yarn layer should be added at the bottom and a binder yarn layer at the top (these could be reversed if wished):&lt;br /&gt;
&lt;br /&gt;
 # Add yarn layers.  There must always be one NoYarn layer and one Bindery layer&lt;br /&gt;
 Textile.AddNoYarnLayer()&lt;br /&gt;
 Textile.AddYLayers()&lt;br /&gt;
 Textile.AddWarpLayer()&lt;br /&gt;
 Textile.AddYLayers()&lt;br /&gt;
 Textile.AddWarpLayer()&lt;br /&gt;
 Textile.AddYLayers()&lt;br /&gt;
 Textile.AddBinderLayer()&lt;br /&gt;
&lt;br /&gt;
The size and shape of the yarns is then specified:&lt;br /&gt;
&lt;br /&gt;
 # Adjust the yarn widths, heights and spacings&lt;br /&gt;
 Textile.SetWarpYarnWidths( 3.6 )&lt;br /&gt;
 Textile.SetWarpYarnHeights( 0.35 )&lt;br /&gt;
 Textile.SetWarpYarnSpacings( 3.8 )&lt;br /&gt;
&lt;br /&gt;
 Textile.SetBinderYarnWidths( 1.375 )&lt;br /&gt;
 Textile.SetBinderYarnHeights( 0.16 )&lt;br /&gt;
 Textile.SetBinderYarnSpacings( 1.4 )&lt;br /&gt;
&lt;br /&gt;
 # Weft yarns&lt;br /&gt;
 Textile.SetYYarnWidths(2.58)  &lt;br /&gt;
 Textile.SetYYarnSpacings(2.8)&lt;br /&gt;
&lt;br /&gt;
 # Set the power of the power ellipses used&lt;br /&gt;
 Textile.SetWarpYarnPower(0.6)&lt;br /&gt;
 Textile.SetWeftYarnPower(0.6)&lt;br /&gt;
 Textile.SetBinderYarnPower(0.8)&lt;br /&gt;
&lt;br /&gt;
The positions of the binder yarns are set.  Calling the SwapBinderPosition function will toggle the binder yarn between the top and bottom layer:&lt;br /&gt;
&lt;br /&gt;
 # Binder yarns may only be at top/bottom position in orthogonal&lt;br /&gt;
 # In this case the binder layer was created as the top layer so switching will place them at the bottom&lt;br /&gt;
 Textile.SwapBinderPosition( 0,2)&lt;br /&gt;
 Textile.SwapBinderPosition( 2,2)&lt;br /&gt;
 Textile.SwapBinderPosition( 1,5)&lt;br /&gt;
 Textile.SwapBinderPosition( 3,5)&lt;br /&gt;
&lt;br /&gt;
A default domain is created to fit the textile.  By default an extra 5% is added at the top and bottom:&lt;br /&gt;
&lt;br /&gt;
 # Create a default domain to fit the textile&lt;br /&gt;
 Textile.AssignDefaultDomain()&lt;br /&gt;
&lt;br /&gt;
If the refine option is being used then yarn properties must be specified.  The target thickness is set and also a maximum volume fraction.  The refine algorithm changes the cross-sections of the textile to achieve the target thickness, checking that the maximum volume fraction has not been exceeded where cross-sections are reduced.  An error message will be displayed if the target thickness cannot be achieved without exceeding the maximum volume fraction specified:&lt;br /&gt;
&lt;br /&gt;
 # Set fibre properties&lt;br /&gt;
 Textile.SetFibreDiameter( WARP, 0.007, &amp;quot;mm&amp;quot; )&lt;br /&gt;
 Textile.SetFibreDiameter( WEFT, 0.007, &amp;quot;mm&amp;quot; )&lt;br /&gt;
 Textile.SetFibreDiameter( BINDER, 0.007, &amp;quot;mm&amp;quot; )&lt;br /&gt;
 Textile.SetFibresPerYarn( WARP, 5000 )&lt;br /&gt;
 Textile.SetFibresPerYarn( WEFT, 8000 )&lt;br /&gt;
 Textile.SetFibresPerYarn( BINDER, 3500 )&lt;br /&gt;
 # Set the target thickness for the refined textile&lt;br /&gt;
 Textile.SetThickness(1.4)&lt;br /&gt;
 # Set the maximum volume fraction allowed in the refine process&lt;br /&gt;
 Textile.SetMaxVolFraction(0.78)&lt;br /&gt;
 # Reset the domain height to suit the refined textile&lt;br /&gt;
 Textile.SetDomainZValues()&lt;br /&gt;
&lt;br /&gt;
 # Add the textile&lt;br /&gt;
 AddTextile(Textile)&lt;br /&gt;
&lt;br /&gt;
The complete script is shown below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # Create an orthogonal textile with 6 warp and 4 weft yarns, 1.0 warp and weft spacing, &lt;br /&gt;
 # warp height 0.35 and weft height 0.25. True/False selects refinement&lt;br /&gt;
 Textile = CTextileOrthogonal( 6, 4, 1.0, 1.0, 0.35, 0.25, True)&lt;br /&gt;
&lt;br /&gt;
 # Set the ratio of warp/binder yarns&lt;br /&gt;
 Textile.SetWarpRatio( 2 )&lt;br /&gt;
 Textile.SetBinderRatio( 1 )&lt;br /&gt;
&lt;br /&gt;
 # Add yarn layers.  There must always be one NoYarn layer and one Bindery layer&lt;br /&gt;
 Textile.AddNoYarnLayer()&lt;br /&gt;
 Textile.AddYLayers()&lt;br /&gt;
 Textile.AddWarpLayer()&lt;br /&gt;
 Textile.AddYLayers()&lt;br /&gt;
 Textile.AddWarpLayer()&lt;br /&gt;
 Textile.AddYLayers()&lt;br /&gt;
 Textile.AddBinderLayer()&lt;br /&gt;
&lt;br /&gt;
 # Adjust the yarn widths, heights and spacings&lt;br /&gt;
 Textile.SetWarpYarnWidths( 3.6 )&lt;br /&gt;
 Textile.SetWarpYarnHeights( 0.35 )&lt;br /&gt;
 Textile.SetWarpYarnSpacings( 3.8 )&lt;br /&gt;
&lt;br /&gt;
 Textile.SetBinderYarnWidths( 1.375 )&lt;br /&gt;
 Textile.SetBinderYarnHeights( 0.16 )&lt;br /&gt;
 Textile.SetBinderYarnSpacings( 1.4 )&lt;br /&gt;
&lt;br /&gt;
 # Weft yarns&lt;br /&gt;
 Textile.SetYYarnWidths(2.58)  &lt;br /&gt;
 Textile.SetYYarnSpacings(2.8)&lt;br /&gt;
&lt;br /&gt;
 # Set the power of the power ellipses used&lt;br /&gt;
 Textile.SetWarpYarnPower(0.6)&lt;br /&gt;
 Textile.SetWeftYarnPower(0.6)&lt;br /&gt;
 Textile.SetBinderYarnPower(0.8)&lt;br /&gt;
&lt;br /&gt;
 # Binder yarns may only be at top/bottom position in orthogonal&lt;br /&gt;
 # In this case the binder layer was created as the top layer so switching will place them at the bottom&lt;br /&gt;
 Textile.SwapBinderPosition( 0,2)&lt;br /&gt;
 Textile.SwapBinderPosition( 2,2)&lt;br /&gt;
 Textile.SwapBinderPosition( 1,5)&lt;br /&gt;
 Textile.SwapBinderPosition( 3,5)&lt;br /&gt;
&lt;br /&gt;
 # Create a default domain to fit the textile&lt;br /&gt;
 Textile.AssignDefaultDomain()&lt;br /&gt;
&lt;br /&gt;
 # Set fibre properties&lt;br /&gt;
 Textile.SetFibreDiameter( WARP, 0.007, &amp;quot;mm&amp;quot; )&lt;br /&gt;
 Textile.SetFibreDiameter( WEFT, 0.007, &amp;quot;mm&amp;quot; )&lt;br /&gt;
 Textile.SetFibreDiameter( BINDER, 0.007, &amp;quot;mm&amp;quot; )&lt;br /&gt;
 Textile.SetFibresPerYarn( WARP, 5000 )&lt;br /&gt;
 Textile.SetFibresPerYarn( WEFT, 8000 )&lt;br /&gt;
 Textile.SetFibresPerYarn( BINDER, 3500 )&lt;br /&gt;
 # Set the target thickness for the refined textile&lt;br /&gt;
 Textile.SetThickness(1.4)&lt;br /&gt;
 # Set the maximum volume fraction allowed in the refine process&lt;br /&gt;
 Textile.SetMaxVolFraction(0.78)&lt;br /&gt;
 # Reset the domain height to suit the refined textile&lt;br /&gt;
 Textile.SetDomainZValues()&lt;br /&gt;
&lt;br /&gt;
 # Add the textile&lt;br /&gt;
 AddTextile(Textile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The finished textile is shown below.  The image on the right shows the textile produced using the same parameters but without using the refine option:&lt;br /&gt;
&lt;br /&gt;
[[Image:3DOrthogonal.png|left|450px]]&lt;br /&gt;
[[Image:3DOrthogonalNoRefine.png|right|450px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example 5: A sheared plain weave===&lt;br /&gt;
This example builds on [[Scripting Create Models#Example 2: Another plain weave (the hard way)|Example 2]], except this time we will be modeling a sheared unit cell. The final script can be found at the bottom, I will not step through each section of case as I have done for the previous cases since you should now be familiar with the basic procedure.&lt;br /&gt;
&lt;br /&gt;
You will notice at the top of the script the line &amp;lt;code&amp;gt;from math import *&amp;lt;/code&amp;gt;, this is a Python command to import the contents of the math module. We need this here because we will be making use of the value &amp;lt;code&amp;gt;pi&amp;lt;/code&amp;gt; and functions &amp;lt;code&amp;gt;cos&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sin&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In this script I have also defined some constants up front (spacing, height, shear angle, twist angle and shear offset) as they will get used frequently within the script. It is best to define them as variables so that they can easily be modified later.&lt;br /&gt;
&lt;br /&gt;
The position of the nodes are arranged as plain weave but displaced slightly by the shear offset. Note that if the shear angle is 0, the shear offset is also 0 and the position of the nodes is equivalent to [[Scripting Create Models#Example 2: Another plain weave (the hard way)|Example 2]].&lt;br /&gt;
&lt;br /&gt;
The next difference is how the cross-section is defined. When a plain woven fabric is sheared the yarn is likely to twist, so we can no longer use a constant cross-section all along the length of the yarn. Instead here I have defined a yarn which twists in one direction at 1/4 of its way along the length of the yarn and twists in the other direction at 3/4 of the way along the length of the yarn. This is to avoid intersections between the yarns. The cross-section is interpolated at other positions along the yarn.&lt;br /&gt;
&lt;br /&gt;
The repeat vectors are defined to take into account the shear and is fairly straight forwards.&lt;br /&gt;
&lt;br /&gt;
The next complication is defining a domain which is sheared. This is done by specifying 6 planes which define the bounds of the domain. The normals of the planes must point inwards, in the case of an unsheared fabric the normals are all in line with the global axes. But in order to create a lozenge shaped unit cell these normals must be rotated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from math import *&lt;br /&gt;
&lt;br /&gt;
# Create a textile&lt;br /&gt;
Textile = CTextile()&lt;br /&gt;
&lt;br /&gt;
# Create a python list containing 4 yarns&lt;br /&gt;
Yarns = [CYarn(), CYarn(), CYarn(), CYarn()]&lt;br /&gt;
&lt;br /&gt;
# Define some constants that will be used in further calculations&lt;br /&gt;
spacing = 0.22&lt;br /&gt;
height = 0.05&lt;br /&gt;
&lt;br /&gt;
shearAngle = pi/16&lt;br /&gt;
twistAngle = shearAngle&lt;br /&gt;
&lt;br /&gt;
shearOffset = spacing*sin(shearAngle)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Add nodes to the yarns to describe their paths, these are the sheared node positions&lt;br /&gt;
Yarns[0].AddNode(CNode(XYZ(0, 0, 0)))&lt;br /&gt;
Yarns[0].AddNode(CNode(XYZ(spacing, shearOffset, height)))&lt;br /&gt;
Yarns[0].AddNode(CNode(XYZ(2*spacing, 2*shearOffset, 0)))&lt;br /&gt;
&lt;br /&gt;
Yarns[1].AddNode(CNode(XYZ(0+shearOffset, spacing, height)))&lt;br /&gt;
Yarns[1].AddNode(CNode(XYZ(spacing+shearOffset, spacing+shearOffset, 0)))&lt;br /&gt;
Yarns[1].AddNode(CNode(XYZ(2*spacing+shearOffset, spacing+2*shearOffset, height)))&lt;br /&gt;
&lt;br /&gt;
Yarns[2].AddNode(CNode(XYZ(0, 0, height)))&lt;br /&gt;
Yarns[2].AddNode(CNode(XYZ(shearOffset, spacing, 0)))&lt;br /&gt;
Yarns[2].AddNode(CNode(XYZ(2*shearOffset, 2*spacing, height)))&lt;br /&gt;
&lt;br /&gt;
Yarns[3].AddNode(CNode(XYZ(spacing, 0+shearOffset, 0)))&lt;br /&gt;
Yarns[3].AddNode(CNode(XYZ(spacing+shearOffset, spacing+shearOffset, height)))&lt;br /&gt;
Yarns[3].AddNode(CNode(XYZ(spacing+2*shearOffset, 2*spacing+shearOffset, 0)))&lt;br /&gt;
&lt;br /&gt;
# Create a cross-section which twists along the length of the yarn to accommodate the sheared fabric architecture&lt;br /&gt;
ellipse = CSectionEllipse(0.18, 0.04)&lt;br /&gt;
sectionTwist1 = CYarnSectionInterpPosition()&lt;br /&gt;
sectionTwist1.AddSection(0.25, CSectionRotated(ellipse, -twistAngle))&lt;br /&gt;
sectionTwist1.AddSection(0.75, CSectionRotated(ellipse, twistAngle))&lt;br /&gt;
sectionTwist2 = CYarnSectionInterpPosition()&lt;br /&gt;
sectionTwist2.AddSection(0.25, CSectionRotated(ellipse, twistAngle))&lt;br /&gt;
sectionTwist2.AddSection(0.75, CSectionRotated(ellipse, -twistAngle))&lt;br /&gt;
&lt;br /&gt;
for Yarn in (Yarns[1], Yarns[3]):&lt;br /&gt;
    Yarn.AssignSection(sectionTwist1)&lt;br /&gt;
for Yarn in (Yarns[0], Yarns[2]):&lt;br /&gt;
    Yarn.AssignSection(sectionTwist2)&lt;br /&gt;
&lt;br /&gt;
# Loop over all the yarns in the list&lt;br /&gt;
for Yarn in Yarns:&lt;br /&gt;
    # Set the resolution of the surface mesh created&lt;br /&gt;
    Yarn.SetResolution(20)&lt;br /&gt;
&lt;br /&gt;
    # Add repeat vectors to the yarn&lt;br /&gt;
    Yarn.AddRepeat(XYZ(2*spacing, 2*shearOffset, 0))&lt;br /&gt;
    Yarn.AddRepeat(XYZ(2*shearOffset, 2*spacing, 0))&lt;br /&gt;
&lt;br /&gt;
    # Add the yarn to our textile&lt;br /&gt;
    Textile.AddYarn(Yarn)&lt;br /&gt;
&lt;br /&gt;
# Create a sheared domain with 6 planes&lt;br /&gt;
domain = CDomainPlanes()&lt;br /&gt;
d = (2*spacing-2*shearOffset*sin(shearAngle))/sqrt(1+sin(shearAngle)**2)&lt;br /&gt;
domain.AddPlane(PLANE(XYZ(1, -sin(shearAngle), 0), 0))&lt;br /&gt;
domain.AddPlane(PLANE(XYZ(-1, sin(shearAngle), 0), -d))&lt;br /&gt;
domain.AddPlane(PLANE(XYZ(-sin(shearAngle), 1, 0), 0))&lt;br /&gt;
domain.AddPlane(PLANE(XYZ(sin(shearAngle), -1, 0), -d))&lt;br /&gt;
domain.AddPlane(PLANE(XYZ(0, 0, 1), -height))&lt;br /&gt;
domain.AddPlane(PLANE(XYZ(0, 0, -1), -2*height))&lt;br /&gt;
Textile.AssignDomain(domain)&lt;br /&gt;
&lt;br /&gt;
# Add the textile with the name &amp;quot;polyester&amp;quot;&lt;br /&gt;
AddTextile(&amp;quot;polyester&amp;quot;, Textile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you run the script your model should look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Example4.png]]&lt;br /&gt;
&lt;br /&gt;
===Example 6: A layered textile===&lt;br /&gt;
This example shows how two textiles can be combined into one textile using the CLayeredTextile class.  &lt;br /&gt;
&lt;br /&gt;
First create a textile, in this case a 4x4 satin weave:&lt;br /&gt;
&lt;br /&gt;
 # Create a 4x4 satin weave with yarn spacing of 1 and thickness of 0.2&lt;br /&gt;
 weave = CTextileWeave2D(4, 4, 1, 0.2, 1, False)&lt;br /&gt;
 weave.SetGapSize(0)&lt;br /&gt;
 &lt;br /&gt;
 # Set the weave pattern&lt;br /&gt;
 weave.SwapPosition(0, 3)&lt;br /&gt;
 weave.SwapPosition(1, 2)&lt;br /&gt;
 weave.SwapPosition(2, 1)&lt;br /&gt;
 weave.SwapPosition(3, 0)&lt;br /&gt;
 # Adjust the yarn widths and heights&lt;br /&gt;
 weave.SetYarnWidths(0.8)&lt;br /&gt;
 weave.SetYarnHeights(0.1)&lt;br /&gt;
&lt;br /&gt;
Create the default domain for the textile.  The x,y dimensions of the domain of the combined textile will be those of this weave.  The z dimension will be altered to include the other layer:&lt;br /&gt;
&lt;br /&gt;
 # Assign the domain and get its limits&lt;br /&gt;
 weave.AssignDefaultDomain()&lt;br /&gt;
&lt;br /&gt;
Now create a textile of type CTextileLayered.  An offset can be specified.  The x,y offset will be relative to the domain origin and the z offset will be relative to the lower surface of the bottom layer.  This is the first layer so the z offset is zero:&lt;br /&gt;
&lt;br /&gt;
 # Create a layered textile&lt;br /&gt;
 LayeredTextile = CTextileLayered()&lt;br /&gt;
&lt;br /&gt;
 # Add the first layer with specified offset&lt;br /&gt;
 Offset = XYZ(0.25, 0.5, 0)&lt;br /&gt;
 LayeredTextile.AddLayer( weave, Offset )&lt;br /&gt;
&lt;br /&gt;
Next create the weave pattern for the second layer, in this case a plain weave:&lt;br /&gt;
&lt;br /&gt;
 # Create 2nd textile: Plain weave, spacing of 1 and thickness 0.25&lt;br /&gt;
 weave1 = CTextileWeave2D(2, 2, 1, 0.25, 1, False)&lt;br /&gt;
 weave1.SetGapSize(0)&lt;br /&gt;
 weave1.SetYarnWidths(0.8)&lt;br /&gt;
 weave1.SwapPosition(0, 1)&lt;br /&gt;
 weave1.SwapPosition(1, 0)&lt;br /&gt;
 weave1.SetXYarnWidths(0, 1.0)&lt;br /&gt;
 weave1.SetXYarnHeights(0, 0.15)&lt;br /&gt;
 weave1.SetXYarnSpacings(0, 1)&lt;br /&gt;
 weave1.SetXYarnWidths(1, 0.8)&lt;br /&gt;
 weave1.SetXYarnHeights(1, 0.1)&lt;br /&gt;
 weave1.SetXYarnSpacings(1, 1)&lt;br /&gt;
 weave1.SetYYarnWidths(0, 0.8)&lt;br /&gt;
 weave1.SetYYarnHeights(0, 0.1)&lt;br /&gt;
 weave1.SetYYarnSpacings(0, 1)&lt;br /&gt;
 weave1.SetYYarnWidths(1, 1.0)&lt;br /&gt;
 weave1.SetYYarnHeights(1, 0.15)&lt;br /&gt;
 weave1.SetYYarnSpacings(1, 1)&lt;br /&gt;
&lt;br /&gt;
 weave1.AssignDefaultDomain()&lt;br /&gt;
&lt;br /&gt;
This weave must be offset so that it lies above the first weave.  In this case it is offset by the height of the first weave:&lt;br /&gt;
&lt;br /&gt;
 # Offsets for second layer.  z offset is height of first textile&lt;br /&gt;
 Offset = XYZ(0.4,0.2,0.2)&lt;br /&gt;
&lt;br /&gt;
The offset is then applied to each node of the yarns and the yarns are then added to the layered textile:&lt;br /&gt;
&lt;br /&gt;
 # Add the second textile to the layered textile&lt;br /&gt;
 LayeredTextile.AddLayer( weave1, Offset )&lt;br /&gt;
&lt;br /&gt;
The domain is enlarged by the height of the domain of the second textile and this is then assigned for the layered textile:&lt;br /&gt;
&lt;br /&gt;
 # Get the size of the domain for the second textile&lt;br /&gt;
 Domain1 = weave1.GetDefaultDomain()&lt;br /&gt;
 Min = XYZ()&lt;br /&gt;
 Max = XYZ()&lt;br /&gt;
 Domain1.GetBoxLimits(Min, Max)&lt;br /&gt;
&lt;br /&gt;
 # Get the domain of the first textile&lt;br /&gt;
 Domain = weave.GetDefaultDomain()&lt;br /&gt;
 Plane = PLANE()&lt;br /&gt;
 # Get the domain upper surface&lt;br /&gt;
 index = Domain.GetPlane( XYZ(0,0,-1), Plane )&lt;br /&gt;
 # Offset the domain to include the second textile&lt;br /&gt;
 Plane.d -= Offset.z&lt;br /&gt;
 Domain.SetPlane( index, Plane )&lt;br /&gt;
&lt;br /&gt;
 LayeredTextile.AssignDomain( Domain )&lt;br /&gt;
&lt;br /&gt;
Finally the textile is added with the name &amp;quot;LayeredTextile&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 # Add the textile with the name &amp;quot;LayeredTextile&amp;quot;&lt;br /&gt;
 AddTextile(&amp;quot;LayeredTextile&amp;quot;, LayeredTextile)&lt;br /&gt;
&lt;br /&gt;
The completed script is shown below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create a 4x4 satin weave with yarn spacing of 1 and thickness of 0.2&lt;br /&gt;
weave = CTextileWeave2D(4, 4, 1, 0.2, False, False)&lt;br /&gt;
weave.SetGapSize(0)&lt;br /&gt;
&lt;br /&gt;
# Set the weave pattern&lt;br /&gt;
weave.SwapPosition(0, 3)&lt;br /&gt;
weave.SwapPosition(1, 2)&lt;br /&gt;
weave.SwapPosition(2, 1)&lt;br /&gt;
weave.SwapPosition(3, 0)&lt;br /&gt;
&lt;br /&gt;
# Adjust the yarn widths and heights&lt;br /&gt;
weave.SetYarnWidths(0.8)&lt;br /&gt;
weave.SetYarnHeights(0.1)&lt;br /&gt;
&lt;br /&gt;
# Assign the domain &lt;br /&gt;
weave.AssignDefaultDomain()&lt;br /&gt;
&lt;br /&gt;
# Create a layered textile&lt;br /&gt;
LayeredTextile = CTextileLayered()&lt;br /&gt;
&lt;br /&gt;
# Add the first layer with specified offset&lt;br /&gt;
Offset = XYZ(0.25, 0.5, 0)&lt;br /&gt;
LayeredTextile.AddLayer( weave, Offset );&lt;br /&gt;
&lt;br /&gt;
# Create 2nd textile: Plain weave, spacing of 1 and thickness 0.2&lt;br /&gt;
weave1 = CTextileWeave2D(2, 2, 1, 0.25, False, False)&lt;br /&gt;
weave1.SetGapSize(0)&lt;br /&gt;
weave1.SetYarnWidths(0.8)&lt;br /&gt;
weave1.SwapPosition(0, 1)&lt;br /&gt;
weave1.SwapPosition(1, 0)&lt;br /&gt;
weave1.SetXYarnWidths(0, 0.9)&lt;br /&gt;
weave1.SetXYarnHeights(0, 0.12)&lt;br /&gt;
weave1.SetXYarnSpacings(0, 1)&lt;br /&gt;
weave1.SetXYarnWidths(1, 0.8)&lt;br /&gt;
weave1.SetXYarnHeights(1, 0.1)&lt;br /&gt;
weave1.SetXYarnSpacings(1, 1)&lt;br /&gt;
weave1.SetYYarnWidths(0, 0.8)&lt;br /&gt;
weave1.SetYYarnHeights(0, 0.1)&lt;br /&gt;
weave1.SetYYarnSpacings(0, 1)&lt;br /&gt;
weave1.SetYYarnWidths(1, 0.9)&lt;br /&gt;
weave1.SetYYarnHeights(1, 0.12)&lt;br /&gt;
weave1.SetYYarnSpacings(1, 1)&lt;br /&gt;
&lt;br /&gt;
weave1.AssignDefaultDomain()&lt;br /&gt;
&lt;br /&gt;
# Offsets for second layer.  z offset is height of first textile&lt;br /&gt;
Offset = XYZ(0.4,0.2,0.2)&lt;br /&gt;
&lt;br /&gt;
# Add the second textile to the layered textile&lt;br /&gt;
LayeredTextile.AddLayer( weave1, Offset )&lt;br /&gt;
&lt;br /&gt;
# Get the size of the domain for the second textile&lt;br /&gt;
Domain1 = weave1.GetDefaultDomain()&lt;br /&gt;
Min = XYZ()&lt;br /&gt;
Max = XYZ()&lt;br /&gt;
Domain1.GetBoxLimits(Min, Max)&lt;br /&gt;
&lt;br /&gt;
# Get the domain of the first textile&lt;br /&gt;
Domain = weave.GetDefaultDomain()&lt;br /&gt;
Plane = PLANE()&lt;br /&gt;
# Get the domain upper surface&lt;br /&gt;
index = Domain.GetPlane( XYZ(0,0,-1), Plane )&lt;br /&gt;
# Offset the domain to include the second textile&lt;br /&gt;
Plane.d -= Max.z - Min.z&lt;br /&gt;
Domain.SetPlane( index, Plane )&lt;br /&gt;
&lt;br /&gt;
LayeredTextile.AssignDomain( Domain )&lt;br /&gt;
&lt;br /&gt;
# Add the textile with the name &amp;quot;LayeredTextile&amp;quot;&lt;br /&gt;
AddTextile(&amp;#039;LayeredTextile&amp;#039;, LayeredTextile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The finished textile is shown below:&lt;br /&gt;
&lt;br /&gt;
[[Image:LayeredTextile1.png|left|500px]]&lt;br /&gt;
[[Image:LowerLayer.png|right|500px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Saving to TG3 file format===&lt;br /&gt;
TexGen has its own file format for storing textile geometry with the extension .tg3. For more details on this file format please read the [[TG3 File Format]] page. Any textile models saved to this file format can be reloaded at a later time however it is also a good idea to keep the python script used to generate the geometry in case modifications need to be made. To save such a file it is simply a matter of adding an additional line at the end of your script like so:&lt;br /&gt;
&lt;br /&gt;
 SaveToXML(&amp;quot;MyTextile.tg3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The first parameter is the name of the file to save.  Note that if the .tg3 extension is omitted then it will automatically be appended for you. The second parameter is optional and if used should be the name of the textile to save, this is useful if you have several textiles loaded at once (i.e. you called AddTextile more than once) and you only want to save one of them. Note that if you don&amp;#039;t specify the second parameter and you do have several textiles loaded then it will save all of them to a single .tg3 file. The third parameter determines how much information is saved in the .tg3 file, see the [[TG3 File Format]] for more details.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Publications</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2022-12-07T12:22:02Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A selection of publications using TexGen:&lt;br /&gt;
* Brown, L.P., [https://doi.org/10.1007/978-3-030-91515-5_6 TexGen], in Advanced Weaving Technology, Y. Kyosev and F. Boussu, Editors. 2022, Springer International Publishing: Cham. p. 253-291.&lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Gommer, Frank and Zeng, Xuesen and Long, Andrew C. (2016) [http://eprints.nottingham.ac.uk/id/eprint/37018 Modelling framework for optimum multiaxial 3D woven textile composites]. In: 7th World Conference in 3D Fabrics and Their Applications, 8-9 Sept 2016, Roubaix, France.&lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Yan, Shibo and Zeng, Xuesen and Long, Andrew C. (2015) [http://eprints.nottingham.ac.uk/id/eprint/28919 Mesoscale geometric modelling of bifurcation in 3D woven T-beam preforms]. In: 12th International Conference on Textile Composites, 26-29 May 2015, Raleigh, NC, USA.. &lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Zeng, Xuesen and Long, Andrew C. and Brooks, Richard and Jones, I. Arthur (2013) [http://eprints.nottingham.ac.uk/id/eprint/3268 Predicting the coefficient of thermal expansion for textile composites based on a unit cell approach]. In: Texcomp-11 Conference, 16-20 September 2013, Leuven, Belgium. &lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Zeng, Xuesen and Long, Andrew.C. and Jones, I. Arthur (2013) [http://eprints.nottingham.ac.uk/id/eprint/3267 Recent developments in the realistic geometric modelling of textile structures using TexGen]. In: 1st International Conference on Digital Technologies for the Textile Industries, 5-6 Sept 2013, Manchester, UK.&lt;br /&gt;
&lt;br /&gt;
* Espadas-Escalante, J.J., N.P. van Dijk, and P. Isaksson, [https://www.sciencedirect.com/science/article/pii/S0263822316317901 A study on the influence of boundary conditions in computational homogenization of periodic structures with application to woven composites]. Composite Structures, 2017. 160: p. 529-537.&lt;br /&gt;
&lt;br /&gt;
* Espadas-Escalante, J.J., N.P. van Dijk, and P. Isaksson, [https://www.sciencedirect.com/science/article/pii/S0263822317320202?via%3Dihub The effect of free-edges and layer shifting on intralaminar and interlaminar stresses in woven composites]. Composite Structures, 2018. 185: p. 212-220.&lt;br /&gt;
&lt;br /&gt;
* Ferguson, J.C., F. Semeraro, J.M. Thornton, F. Panerai, A. Borner, and N.N. Mansour, [https://www-sciencedirect-com.nottingham.idm.oclc.org/science/article/pii/S235271102100090X?via%3Dihub Update 3.0 to “PuMA: The Porous Microstructure Analysis software&amp;quot;], (PII:S2352711018300281). SoftwareX, 2021. 15: p. 100775.&lt;br /&gt;
** [https://www.youtube.com/watch?v=zWFCNtA_xJo&amp;amp;list=PLSrX6q3Z64cHlCAtnoOQpYv6b2HPhSoq7&amp;amp;index=10 Video on pumapy: Weave Generation]&lt;br /&gt;
&lt;br /&gt;
* Gommer, F. and Endruweit, A. and Long, A.C. (2016) [ 	http://eprints.nottingham.ac.uk/id/eprint/33276 Quantification of micro-scale variability in fibre bundles]. Composites Part A: Applied Science and Manufacturing, 87 . pp. 131-137. ISSN 1359-835X &lt;br /&gt;
&lt;br /&gt;
* Gommer, Frank and Wedgwood, Kyle C.A. and Brown, Louise P. (2015) [http://eprints.nottingham.ac.uk/id/eprint/29642 Stochastic reconstruction of filament paths in fibre bundles based on two-dimensional input data]. Composites Part A: Applied Science and Manufacturing, 76 . pp. 262-271. ISSN 1359-835X &lt;br /&gt;
&lt;br /&gt;
* F Gommer, L P Brown, and K C A Wedgwood, [http://dx.doi.org/10.1016/j.compositesa.2015.11.031 Analytical method using gamma functions for determining areas of power elliptical shapes for use in geometrical textile models], Composites Part A: Applied Science and Manufacturing, 2016. 81: p. 222-224.&lt;br /&gt;
&lt;br /&gt;
* F Gommer, L P Brown, and R. Brooks, [http://eprints.nottingham.ac.uk/id/eprint/31111 Quantification of mesoscale variability and geometrical reconstruction of a textile]. Journal of Composite Materials, 2015. 0(0): p. 1-12&lt;br /&gt;
&lt;br /&gt;
* Green, S.D., M.Y. Matveev, A.C. Long, D. Ivanov, and S.R. Hallett, Mechanical modelling of 3D woven composites considering realistic unit cell geometry. Composite Structures, 2014. 118: p. 284-293.&lt;br /&gt;
&lt;br /&gt;
* Lin, H., L.P. Brown, and A.C. Long, [http://www.scientific.net/AMR.331.44 Modelling and Simulating Textile Structures using TexGen]. Advanced Materials Research, 2011. 331: p. 44-47.&lt;br /&gt;
&lt;br /&gt;
* H. Lin, A.C. Long, M. Sherburn, M. J. Clifford, [https://link.springer.com/content/pdf/10.1007%2Fs12289-008-0241-7.pdf Modelling of mechanical behaviour for woven fabrics under combined loading], International Journal of material forming, Spring/ESAFORM 2008&lt;br /&gt;
&lt;br /&gt;
* H Lin, M Sherburn, J Crookston, A C Long, M J Clifford, I A Jones. [http://iopscience.iop.org/article/10.1088/0965-0393/16/3/035010 Finite element modelling of fabric compression], Modelling and Simulation in Materials Science and Engineering, Vol.16, n3, 2008&lt;br /&gt;
&lt;br /&gt;
* H Lin, M J Clifford, A C Long, M Sherburn. [http://iopscience.iop.org/article/10.1088/0965-0393/17/1/015008/pdf Finite element modelling of fabric shear], Modelling and Simulation in Materials Science and Engineering, Vol.17, n1, 2009&lt;br /&gt;
&lt;br /&gt;
* H. Lin, X. Zeng, M. Sherburn, A. C. Long and M. J. Clifford. [http://journals.sagepub.com/doi/pdf/10.1177/0040517511418562 Automated geometric modelling of textile structures], Textile Research Journal, v82, n16, 2012, pp. 1689-1702.&lt;br /&gt;
&lt;br /&gt;
* Kaushik, V., P. Sharma, P. Priyanka, and H.S. Mali, [https://onlinelibrary.wiley.com/doi/10.1002/mawe.202200032 Numerical modeling of fiber reinforced polymer textile composites for characterizing the mechanical behavior – a review]. Materialwissenschaft und Werkstofftechnik, 2022. 53(10): p. 1263-1289.&lt;br /&gt;
&lt;br /&gt;
* Matveev, Mikhail Y. (2015) [http://eprints.nottingham.ac.uk/id/eprint/29419 Effect of variabilities on mechanical properties of textile composites]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Matveev, Mikhail Y. and Long, Andrew C. and Brown, Louise P. and Jones, I. Arthur (2016) [http://eprints.nottingham.ac.uk/id/eprint/34301 Effects of layer shift and yarn path variability on mechanical properties of a twill weave composite]. Journal of Composite Materials . ISSN 0021-9983 &lt;br /&gt;
&lt;br /&gt;
* Pan, Qing (2016) [http://eprints.nottingham.ac.uk/id/eprint/33396 Multi-scale modelling and material characterisation of textile composites for aerospace applications]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Ruijter, Wout (2009) [http://eprints.nottingham.ac.uk/id/eprint/10761 Analysis of mechanical properties of woven textile composites as a function of textile geometry]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Sherburn, M., A. Long, A. Jones, J. Crookston, and L. Brown, Prediction of textile geometry using an energy minimization approach. Journal of Industrial Textiles, 2012. 41(4): p. 345-369.&lt;br /&gt;
&lt;br /&gt;
* Sherburn, Martin (2007) [http://eprints.nottingham.ac.uk/id/eprint/10303 Geometric and Mechanical Modelling of Textiles]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Spackman, G., Brown, L. &amp;amp; Turner, T. [https://doi-org.nottingham.idm.oclc.org/10.1007/s10443-021-09978-9 Weft Yarn Interlacement Modelling for 3D Profiled Structures]. Appl Compos Mater (2021). &lt;br /&gt;
&lt;br /&gt;
* Wong, Chee Chiew (2006) [http://eprints.nottingham.ac.uk/id/eprint/10294 Modelling the effects of textile preform architecture on permeability]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* C.C. Wong, A.C. Long, M. Sherburn, F. Robitaille, P. Harrison, C.D. Rudd. [https://www.sciencedirect.com/science/article/pii/S1359835X05000424 Comparisons of novel and efficient approaches for permeability prediction based on the fabric architecture], Composites Part A 37(6) 2006 847-857&lt;br /&gt;
&lt;br /&gt;
* C.C. Wong, A.C. Long. [ https://doi.org/10.1179/174328906X103088 Modelling variations of textile fabric permeability at mesoscopic scale], Plastics Rubber and Composites, 35(3) 2006 101-111&lt;br /&gt;
&lt;br /&gt;
* X Zeng, A Endruweit, L P Brown, and A.C. Long, [http://www.sciencedirect.com/science/article/pii/S1359835X15001232 Numerical prediction of in-plane permeability for multilayer woven fabrics with manufacture-induced deformation]. Composites Part A: Applied Science and Manufacturing, 2015. 77: p. 266-274.&lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Brown, Louise P. and Endruweit, Andreas and Long, Andrew C. (2012) [http://eprints.nottingham.ac.uk/id/eprint/2052 Advanced geometry modelling of 3D woven reinforcements in polymer composites: processing and performance analysis]. In: Fourth World Conference on 3D Fabrics and their Applications, 10-11 Sep 2012, Aachen, Germany.&lt;br /&gt;
&lt;br /&gt;
* X Zeng, L P Brown, A Endruweit, M Matveev, and A.C. Long, [http://www.sciencedirect.com/science/article/pii/S1359835X13002704 Geometrical modelling of 3D woven reinforcements for polymer composites: Prediction of fabric permeability and composite mechanical properties]. Composites Part A, 2014. 56(0): p. 150-160.&lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Long, A.C. and Clifford, M.J. and Probst-Schendzielorz, S. and Schmitt, M.W. (2011) [http://eprints.nottingham.ac.uk/id/eprint/2805 Automated finite element modelling of 3D woven textiles]. In: Third World Conference on 3D Fabrics and their Applications., 20-21 April 2011, Wuhan, China.. &lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Long, Andew C.A. and Ashcroft, Ian and Potluri, Prasad (2015) [http://eprints.nottingham.ac.uk/id/eprint/28920 Fibre architecture design of 3D woven composite with genetic algorithms: a unit cell based optimisation framework and performance assessment]. In: 20th International Conference on Composite Materials, 19-24 July 2015, Copenhagen, Denmark.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Compiling from Source</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2022-07-12T13:37:48Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* VTK */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to compile TexGen and &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; of its modules, the following software is required:&lt;br /&gt;
&lt;br /&gt;
The following programs are needed to build TexGen:&lt;br /&gt;
* [http://www.cmake.org/ CMake]&lt;br /&gt;
* [http://www.swig.org/ SWIG]&lt;br /&gt;
&lt;br /&gt;
The following libraries are needed to link to TexGen:&lt;br /&gt;
* [http://www.vtk.org/ VTK]&lt;br /&gt;
* [http://www.wxwidgets.org/ wxWidgets]&lt;br /&gt;
* [http://www.opencascade.org/ OpenCascade]&lt;br /&gt;
* [http://www.python.org/ Python]&lt;br /&gt;
&lt;br /&gt;
However to perform a minimum build of TexGen with none of the additional modules you only require CMake and a C++ compiler. It is recommended to begin with a minimum build, once that is working try adding modules one at a time. A list of modules along with dependencies is shown below:&lt;br /&gt;
&lt;br /&gt;
* Python interface: Python, SWIG&lt;br /&gt;
* Renderer: VTK&lt;br /&gt;
* Export: OpenCascade&lt;br /&gt;
* GUI: wxWidgets, Renderer, Python interface&lt;br /&gt;
* Unit tests: CPPUnit&lt;br /&gt;
&lt;br /&gt;
A graphical representation of the modules and their dependencies can also be found in the [http://texgen.sourceforge.net/api/ TexGen API].&lt;br /&gt;
&lt;br /&gt;
If you want to get the source code from GitHub you will need to install [https://git-scm.com/downloads Git] by following the instructions below. Note that this is the very latest development source and so may it contain some bugs and unfinished features. However it is very easy to keep up to date with the latest version of TexGen using this method and will allow you to keep any modifications you have made to the source when updating. If you find a bug or implement new features that may be useful to the rest of the community please send a pull request and they will be incorporated into TexGen following review.&lt;br /&gt;
&lt;br /&gt;
Alternatively the stable source code can be downloaded as a [http://sourceforge.net/project/showfiles.php?group_id=181000 tarball]. Download the latest file release named &amp;#039;&amp;#039;texgen-3.x.x.tar.gz&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Windows (Microsoft Visual Studio C++, recommended method) ==&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
It is assumed that Microsoft Visual Studio is already installed.  If it isn&amp;#039;t and you plan to use it, then install it.  It may be possible to use the free [http://www.microsoft.com/express/ Visual Studio Express]; if anyone tries this and finds out one way or the other, please post the information either here or in the [http://texgen.sourceforge.net/phpBB2/index.php forum]. Brief instructions on how to install the various 3rd party libraries under windows are given below. Note that you do not need to install all of these in order to perform the minimal build. Only CMake is absolutely required.&lt;br /&gt;
TexGen 3.11.0 was built with VS2017. All of the libraries used can be built with this version of Visual Studio.&lt;br /&gt;
&lt;br /&gt;
==== CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and install, selecting &amp;#039;Add CMake to the system PATH for all users&amp;#039; (select current user if this is not permissible on your system).&lt;br /&gt;
&lt;br /&gt;
==== Git ====&lt;br /&gt;
&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and install it.&lt;br /&gt;
&lt;br /&gt;
==== SWIG ====&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/ Download] version 4.0.0 of the windows .zip files and extract to a suitable location (e.g. c:\Program Files\swigwin-4.0.0).&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/ Download Python] and install.  Note that TexGen is currently built with Python 2.7.&lt;br /&gt;
&lt;br /&gt;
For a Release build the include files and python27.lib provided with the standard installation can be used. &lt;br /&gt;
&lt;br /&gt;
For a Debug build it is necessary to build a debug version of Python. Download the latest [https://www.python.org/downloads/source/ source release] and follow the instructions in the README for building for your environment. For Visual Studio use the VS solution in the PCBuild folder. &lt;br /&gt;
Note that for newer VS versions it is necessary to apply this [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/issues/161 patch] in order for the build to be successful.&lt;br /&gt;
&lt;br /&gt;
==== OpenCascade ====&lt;br /&gt;
&lt;br /&gt;
[http://www.opencascade.org/getocc/download/ Download OpenCascade] and install; this extracts the files to a directory. If the installation doesn&amp;#039;t start automatically, run the &amp;#039;install.bat&amp;#039; file located the directory where the files where extracted (read &amp;#039;readme.htm&amp;#039; file in the same directory for more information).  Choose &amp;#039;complete installation&amp;#039; and tick the box to set the environment variables.  The current version of TexGen is built with OpenCascade version 7.0.0.&lt;br /&gt;
&lt;br /&gt;
==== VTK ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/louisepb/VTK-6.3 Download] version 6.3.0 of the source files and extract them. Instructions for building VTK using CMake are given on the [https://vtk.org/Wiki/VTK/Configure_and_Build VTK webpage] The following CMake settings should be set:&lt;br /&gt;
&lt;br /&gt;
 BUILD_EXAMPLES           OFF&lt;br /&gt;
 BUILD_SHARED_LIBS        OFF&lt;br /&gt;
 VTK_USE_MPEG2_ENCODER    OFF&lt;br /&gt;
 VTK_USE_PARALLEL         OFF&lt;br /&gt;
 VTK_USE_RENDERING        ON&lt;br /&gt;
 VTK_WRAP_JAVA            OFF&lt;br /&gt;
 VTK_WRAP_PYTHON          OFF&lt;br /&gt;
 VTK_WRAP_TCL             OFF&lt;br /&gt;
&lt;br /&gt;
(Version 6.3 is no longer available on the VTK webpage so the link above makes this available until TexGen has been modified to work with more recent VTK versions).&lt;br /&gt;
You may be able to get things working with different settings, however these are the settings I use and are known to work.&lt;br /&gt;
&lt;br /&gt;
==== wxWidgets ====&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/downloads/ Download] and install the windows version 3.0.4 of wxWidgets (wxMSW). It is then necessary to compile wxWidgets from source, detailed instructions on how to do this can be found in &amp;#039;install.txt&amp;#039; located in the &amp;#039;docs\msw&amp;#039; subfolder. The main steps are to open &amp;#039;wx.dsw&amp;#039; with MSVC located in the &amp;#039;build\msw&amp;#039; subfolder and compile both Release and Debug configurations (The configuration can be selected from the drop down box on the main toolbar in Visual Studio. Universal and DLL versions need not be compiled).&lt;br /&gt;
&lt;br /&gt;
==== CppUnit ====&lt;br /&gt;
To build the test module download [https://www.freedesktop.org/wiki/Software/cppunit/ cppunit]&lt;br /&gt;
&lt;br /&gt;
The VS solution is in the Examples folder. When this is run, accept the option to upgrade to your version of VS and then build. The resulting cppunit.lib file can then be found in the /lib folder.&lt;br /&gt;
&lt;br /&gt;
=== Checkout TexGen source code from GitHub ===&lt;br /&gt;
* Create a directory where you would like to store the TexGen source code in Windows Explorer. &lt;br /&gt;
* Open a Git Bash shell within that folder.&lt;br /&gt;
* Type &lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
A new TexGen folder will have been created which contains a downloaded copy of the TexGen repository.&lt;br /&gt;
&lt;br /&gt;
=== Configuring the build system with CMake ===&lt;br /&gt;
Run CMake from its shortcut on the Start menu. There are some general instructions on using CMake on the [https://cmake.org/cmake-tutorial/ CMake website] which are worth reading. You will need to fill in the source code location, this should point to where you checked out out the latest TexGen GitHub code or where you extracted the source code from the zip file. Also set where to place the binary files once they are compiled, this can be the same as the source directory, a subdirectory within the source directory or any other location.&lt;br /&gt;
&lt;br /&gt;
Once that is entered click &amp;#039;Configure&amp;#039; and choose the Visual Studio version which you have installed and click ok. You will initially get a number of error messages such as:&lt;br /&gt;
&lt;br /&gt;
 CMake Error: Swig was not found on the system. Please specify the location of Swig. (click OK)&lt;br /&gt;
 CMake Error: Error in configuration process, project files may be invalid. (click OK)&lt;br /&gt;
&lt;br /&gt;
This is normal, in order to get rid of the errors you will need to tell CMake where the various libraries you have installed can be found. This is done in the Cache Values sections.&lt;br /&gt;
&lt;br /&gt;
It is recommended to begin with a minimal build, this is achieved by setting the cache values as follows:&lt;br /&gt;
&lt;br /&gt;
 BUILD_CASCADE_EXPORT           OFF&lt;br /&gt;
 BUILD_DOCUMENTATION            OFF&lt;br /&gt;
 BUILD_EXAMPLES                 OFF&lt;br /&gt;
 BUILD_GUI                      OFF&lt;br /&gt;
 BUILD_PYTHON_INTERFACE         OFF&lt;br /&gt;
 BUILD_RENDERER                 OFF&lt;br /&gt;
 BUILD_SHARED                   ON&lt;br /&gt;
 BUILD_UNIT_TESTS               OFF&lt;br /&gt;
&lt;br /&gt;
Once these are set press configure again and you shouldn&amp;#039;t have any more errors/warnings. Press &amp;#039;OK&amp;#039; to generate the MSVC solution and project files. Configuring the various optional modules is explained in [[#Configuring optional modules]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring optional modules ===&lt;br /&gt;
&lt;br /&gt;
Once the minimal build is working you may want to switch on the optional modules. To do this open up CMake again and switch the modules you want to ON in the Cache Values then click Configure. You will most likely see some errors telling you it is unable to automatically find certain directories. You will need to specify these manually. An explanation of the different locations is listed below:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039;&amp;#039;&amp;#039; - This should be the folder where the TexGen python modules will be placed. Usually located in &amp;#039;C:\Python27\Lib\site-packages&amp;#039;, but this will depend on the version of Python installed and where you decided to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_DIR&amp;#039;&amp;#039;&amp;#039; -  This is the location where you extracted the SWIG executable. e.g. &amp;#039;C:\Program Files\swigwin-2.0.10&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_EXECUTABLE&amp;#039;&amp;#039;&amp;#039; - Same as root directory followed by &amp;#039;swig.exe&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_ROOT_DIR&amp;#039;&amp;#039;&amp;#039; - Location where you install wxWidgets. e.g. &amp;#039;C:/wxWidgets-3.0.4&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_LIB_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the wxWidgets libraries were compiled to, should be the same as the root directory followed by &amp;#039;lib/vc_lib&amp;#039; or &amp;#039;lib/vc_x64_lib&amp;#039; for 64-bit builds.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WX&amp;#039;&amp;#039;&amp;#039; - CMake may not automatically pick up the location of all libraries in which case these may need to be input manually. The image below shows the CMake GUI part way through specifying the library locations&lt;br /&gt;
[[Image:wxWidgetsCMake.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_INCLUDE_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade header files are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/inc&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/lib&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_DEBUG_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade debug libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/libd&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VTK_DIR&amp;#039;&amp;#039;&amp;#039; - Location of the VTK binary directory (note: not the source directory).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CPPUNIT_LIBRARY&amp;#039;&amp;#039;&amp;#039; - Location where the cppunit library file is located. e.g. &amp;#039;C:/cppunit-1.15.1/lib/cppunit.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After setting the directories manually, click on configure again. You may need to go through several iterations of changing parameters then pressing configure. Once you have finished changing parameters and have successfully pressed configure without error messages you can press the OK button to generate the build. Note: you can always come back to this at a later time to make changes.&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Find &amp;#039;TexGen.sln&amp;#039; which should be located in the directory where you told CMake to output the binary files to and open it with Microsoft Visual Studio.&lt;br /&gt;
&lt;br /&gt;
Set the configuration to &amp;#039;Release&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
If building the Graphical User Interface with Visual Studio 2008 or later open the properties page for the TexGenGUI project.  Select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Build the solution. Hopefully the project will have been compiled without errors.&lt;br /&gt;
&lt;br /&gt;
If you want to compile and execute the Graphical User Interface you will need to install it, you will not be able to execute it directly from the build directory. This is done by right click on the &amp;#039;INSTALL&amp;#039; project in the Solution Explorer and selecting Build. This will copy the Python modules into the Python site-packages directory so that they can be imported into scripts, and it will copy the executable along with other necessary files into &amp;#039;C:\Program Files\TexGen\&amp;#039; by default (this can be changed with the CMAKE_INSTALL_PREFIX cache value in CMake). TexGenGUI.exe should then be run from the installed location, if you attempt to run it directly from where it was compiled you will get some errors on launch.&lt;br /&gt;
&lt;br /&gt;
=== Building the documentation ===&lt;br /&gt;
&lt;br /&gt;
To build the documentation, [http://www.doxygen.nl/download.html Doxygen] and [https://graphviz.gitlab.io/download/ Graphviz] are required.  Open a command prompt in the &amp;#039;Docs&amp;#039; subdirectory of the source code and run &amp;#039;doxygen&amp;#039;. If the doxygen directory is not in your path, you must add it, or give the full path on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Integrating TexGen with ABAQUS ===&lt;br /&gt;
&lt;br /&gt;
If you are using ABAQUS and wish to use TexGen Python scripting from within the ABAQUS/CAE environment, there are a few extra steps to perform. This is because ABAQUS comes packaged with its own version of Python, so any modules added to your standalone python installation will not be accessible by ABAQUS. You must compile the TexGen Python modules with the same version of Python as ABAQUS uses. The following table shows which version of Python is used in specific ABAQUS versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ABAQUS Version !! Python Version&lt;br /&gt;
|-&lt;br /&gt;
| 6.6-1  || 2.3.3&lt;br /&gt;
|- &lt;br /&gt;
| 6.7-1  || 2.4.3 &lt;br /&gt;
|- &lt;br /&gt;
| 6.10-2 || 2.6.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.14-1 || 2.7.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If your version of ABAQUS is not listed in the table above you can type &amp;#039;abaqus python -V&amp;#039; to check what version of Python is used (then please edit this page to update the table). You can obtain specific versions of Python from https://www.python.org/downloads/source/ .&lt;br /&gt;
&lt;br /&gt;
Additionally you will need to place the TexGen python modules inside ABAQUS&amp;#039; version of python. There are a few ways to accomplish this, the easiest is perhaps to set the CMake cache variable &amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039; point to the ABAQUS&amp;#039; python directory, e.g.:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR     C:\Abaqus\6.14-1\Python\Lib\&lt;br /&gt;
&lt;br /&gt;
Then when you build the INSTALL project in MSVC++ it will automatically copy the TexGen python modules to the ABAQUS&amp;#039; Python. Alternatively you can simply copy the files manually or modify Python&amp;#039;s search path to include the TexGen python modules, e.g. In python:&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.path.append(&amp;#039;C:/Python27/Lib/site-packages/&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
There may also be a need to modify the file [source code location]/Installer/texgen.nsi.  The original version, lines 1-3 are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python25.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while on Jon&amp;#039;s version they are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python24.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error LNK1104: cannot open file &amp;#039;python25_d.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; The windows installation of Python doesn&amp;#039;t come with the debug library (&amp;#039;python25_d.lib&amp;#039;, the _d part means debug). You should be able to compile in release mode however. If you really want to compile in debug mode you will need to compile Python from source and link to that. Or you can try to link to the release library &amp;#039;python25.lib&amp;#039; instead, easiest way to do that is to copy &amp;#039;python25.lib&amp;#039; to &amp;#039;python25_d.lib&amp;#039; but this may cause problems during linking or execution.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error C1083: Cannot open include file: &amp;#039;wx/wxprec.h&amp;#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Make sure that you have compiled wxWidgets and that the wxWidgets_XXX cache variables are set correctly in CMake.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I do not have a &amp;#039;libd&amp;#039; folder in &amp;#039;ros/win32&amp;#039; for OpenCASCADE.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; If you do not compile OpenCASCADE yourself then this folder does not exist. However it can be ignored if you are only interested in building the release version of TexGen. If you really want to compile the debug version please refer to the OpenCASCADE documentation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; Why do I get the error message: &amp;quot;The parameter is incorrect.&amp;quot; when launching TexGenGUI.exe?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; In the TexGenGUI Property Pages select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I am getting error messages at the stage of building GUI:[ 86%] Building CXX object GUI/CMakeFiles/TexGenGUI.dir/PrecompiledHeaders.cpp.o&lt;br /&gt;
In file included from /usr/include/python2.4/pyconfig.h:6,&lt;br /&gt;
                 from /usr/include/python2.4/Python.h:8,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:30,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/usr/include/python2.4/pyconfig-64.h:823:1: warning: &amp;quot;_FILE_OFFSET_BITS&amp;quot; redefined&lt;br /&gt;
&amp;lt;command line&amp;gt;:1:1: warning: this is the location of the previous definition&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/wx.h:15,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/defs.h:42:13: error: #error &amp;quot;No Target! You should use wx-config program for compilation flags!&amp;quot;&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/cmndata.h:17,&lt;br /&gt;
                 from /data/include/wx-2.8/wx/wx.h:65,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/encinfo.h:64:6: error: #error &amp;quot;Unsupported toolkit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and lots of othe warnings and error messages afterwards.&lt;br /&gt;
&lt;br /&gt;
The location of wx-config is correct in cmake; wxWidgets installation appears to have been successful; the system is Red Hat Linux 64-bit&lt;br /&gt;
&lt;br /&gt;
== Windows (Cygwin and gcc, alternate method) ==&lt;br /&gt;
A limited build (without graphics) can be made under cygwin, this is a UNIX emulation environment available at [http://www.cygwin.com www.cygwin.com]. &lt;br /&gt;
This can exist peacefully next to the native windows version. &lt;br /&gt;
Cygwin creates a unix-style file system within your windows installation. If you choose c:/cygwin as your install directory, your HOME will be at c:/cygwin/home/&amp;lt;username&amp;gt;/. &lt;br /&gt;
&lt;br /&gt;
=== Download cygwin and install packages ===&lt;br /&gt;
Install gcc, g++, wget, make and cmake using the setup.exe program from the cygwin website. &lt;br /&gt;
For the mesh generator and python interface to work we currently need VTK and swig. &lt;br /&gt;
&lt;br /&gt;
This downloads and installs swig from source (when starting the cygwin shell you can paste this into the command line, otherwise write it to a file and run it with sh). &lt;br /&gt;
 mkdir progs&lt;br /&gt;
 cd progs &lt;br /&gt;
 SWIG=swig-1.3.31&lt;br /&gt;
 wget -nc http://kent.dl.sourceforge.net/sourceforge/swig/$SWIG.tar.gz&lt;br /&gt;
 tar xzvf $SWIG.tar.gz &lt;br /&gt;
 cd $SWIG&lt;br /&gt;
 ./configure &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This downloads and installs VTK from source, in the ccmake stage, use the cmake graphical commands to get a working install. &lt;br /&gt;
 VTK=vtk-6.3.0&lt;br /&gt;
 wget -nc https://vtk.org/download/&lt;br /&gt;
 tar xzvf $VTK.tar.gz&lt;br /&gt;
 mkdir vtkbin&lt;br /&gt;
 cd vtkbin&lt;br /&gt;
 ccmake ../VTK&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Install TexGen from source ===&lt;br /&gt;
Now we can proceed to install texgen, as an example we&amp;#039;ll work in ~/temp/texgen&lt;br /&gt;
 cd ~; mkdir temp; cd temp; mkdir texgen; cd texgen&lt;br /&gt;
 svn checkout svn//svn.code.sf.net/p/texgen/code/TexGen/trunk/ TexGen&lt;br /&gt;
 cd .. ; mkdir tbin; cd tbin&lt;br /&gt;
 ccmake ../texgen&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This should result in a working texgen install in ~/temp/texgen/tbin.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
=== Notes ===&lt;br /&gt;
If you are installing to a system where you don&amp;#039;t have root access (i.e. this computer does not belong to you) you won&amp;#039;t be able to install the software using the default configure script. This is because by default software is installed to the /usr/local directory. If you are not a systems administrator then you will quite rightly not have write access to this folder. All is not lost! You can still install software into your home directory. In order to do this you should always call the configure script with the following parameter: --prefix=$HOME. This goes for all the software to be installed below. All executables will then be placed in ~/bin, libraries in ~/lib, includes in ~/include, etc...&lt;br /&gt;
&lt;br /&gt;
In the guide below the parameter is included in italic. If you do in fact have root access then it is recommended to omit this parameter and install to the default directory so that other users will also have access to the software.&lt;br /&gt;
&lt;br /&gt;
=== Get TexGen from GitHub repository ===&lt;br /&gt;
&lt;br /&gt;
==== Install Git ====&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and unpack.&lt;br /&gt;
&lt;br /&gt;
==== Clone TexGen ====&lt;br /&gt;
Open a shell in folder you wish to place TexGen (e.g. ~/):&lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
&lt;br /&gt;
=== Compile source ===&lt;br /&gt;
&lt;br /&gt;
==== Install CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and unpack.&lt;br /&gt;
Open a shell in extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==== Compile TexGen core ====&lt;br /&gt;
Open a shell in the folder with the TexGen source code (e.g. ~/TexGen):&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 cd bin&lt;br /&gt;
 ccmake ../&lt;br /&gt;
Press &amp;#039;c&amp;#039; to configure. When a warning pops up telling you it can&amp;#039;t find such and such a file press &amp;#039;e&amp;#039; to close it. You will now need to specify which components of TexGen to build and where their dependencies can be found. Use the up and down arrows to move the caret and press enter to modify options. Do this to set BUILD_GUI, BUILD_PYTHON_INTERFACE and BUILD_RENDERER to OFF. You are basically telling CMake not to attempt to build these components, which means that you won&amp;#039;t need to have installed their dependencies.&lt;br /&gt;
&lt;br /&gt;
Similarly to the --prefix=$HOME parameter to the configure script, you can tell CMake to install TexGen to your home directory by changing CMAKE_INSTALL_PREFIX to ~/. Note that it won&amp;#039;t actually install anything until you get type make install.&lt;br /&gt;
&lt;br /&gt;
Now press &amp;#039;c&amp;#039; again to update the changes.&lt;br /&gt;
&lt;br /&gt;
Hopefully now that all the additional modules have been switched off no errors will be shown. Press &amp;#039;g&amp;#039; to generate the makefiles and exit. At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Note that at this point you have only built and installed the TexGen Core library which doesn&amp;#039;t actually do anything on its own. If you plan to incorporate TexGen into your own C++ program then this is enough, however if you would like to interface with TexGen from a Python script or Graphical User Interface then follow the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Compiling optional modules ===&lt;br /&gt;
==== Python interface ====&lt;br /&gt;
[http://www.python.org/download/ Download Python] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/download.html Download SWIG] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Open a shell in the folder where you called ccmake from for the first time (e.g. ~/TexGen/bin):&lt;br /&gt;
 ccmake ../&lt;br /&gt;
&lt;br /&gt;
Use the up and down arrows to reach BUILD_PYTHON_INTERFACE and press Enter to set it to ON. Then press &amp;#039;c&amp;#039; to configure. You will probably get a warning saying you need to specify the location of SWIG and/or Python, press &amp;#039;e&amp;#039; to close it.&lt;br /&gt;
&lt;br /&gt;
Set the PYTHON_INCLUDE_PATH, PYTHON_LIBRARY, PYTHON_SITEPACKAGES_DIR, SWIG_DIR and SWIG_EXECUTABLE parameters correctly where necessary. If you have installed packages to your home directory then they should look something like this:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_INCLUDE_PATH: ~/include/python2.7&lt;br /&gt;
 PYTHON_LIBRARY: ~/lib/python2.5/config/libpython2.7.a&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR: ~/lib/python2.7/site-packages&lt;br /&gt;
 SWIG_DIR: ~/bin&lt;br /&gt;
 SWIG_EXECUTABLE: ~/bin/swig&lt;br /&gt;
&lt;br /&gt;
Once that is done press &amp;#039;c&amp;#039; again. You may need perform this process over several iterations. When everything is set correctly press &amp;#039;g&amp;#039; to generate the makefiles.&lt;br /&gt;
&lt;br /&gt;
At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Assuming the build completed without errors you should now be able to access TexGen functions from within Python. In order to check everything worked as planned open Python in interactive mode by typing:&lt;br /&gt;
 python&lt;br /&gt;
&lt;br /&gt;
Then from within Python type:&lt;br /&gt;
 from TexGen.Core import *&lt;br /&gt;
 CTexGen.GetInstance().GetVersion()&lt;br /&gt;
&lt;br /&gt;
This should display the version of TexGen installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when linking _Core.so:&lt;br /&gt;
 libpython2.5.a(abstract.o): relocation R_X86_64_32 against `a local symbol&amp;#039;&lt;br /&gt;
 can not be used when making a shared object; recompile with -fPIC&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Try removing libpython2.5.a from the libraries to link to by setting PYTHON_LIBRARY to a bogus path, e.g.:&lt;br /&gt;
&lt;br /&gt;
PYTHON_LIBRARY: ~/&lt;br /&gt;
&lt;br /&gt;
By doing so you may receive a warning similar to this:&lt;br /&gt;
 Warning: Ignoring path found in link libraries for target: _Core, path is:&lt;br /&gt;
 /home/username. Expected a library name or a full path to a library name.&lt;br /&gt;
This warning may be ignored.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Publications</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2022-06-14T08:24:29Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A selection of publications using TexGen:&lt;br /&gt;
* Brown, L.P., [https://doi.org/10.1007/978-3-030-91515-5_6 TexGen], in Advanced Weaving Technology, Y. Kyosev and F. Boussu, Editors. 2022, Springer International Publishing: Cham. p. 253-291.&lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Gommer, Frank and Zeng, Xuesen and Long, Andrew C. (2016) [http://eprints.nottingham.ac.uk/id/eprint/37018 Modelling framework for optimum multiaxial 3D woven textile composites]. In: 7th World Conference in 3D Fabrics and Their Applications, 8-9 Sept 2016, Roubaix, France.&lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Yan, Shibo and Zeng, Xuesen and Long, Andrew C. (2015) [http://eprints.nottingham.ac.uk/id/eprint/28919 Mesoscale geometric modelling of bifurcation in 3D woven T-beam preforms]. In: 12th International Conference on Textile Composites, 26-29 May 2015, Raleigh, NC, USA.. &lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Zeng, Xuesen and Long, Andrew C. and Brooks, Richard and Jones, I. Arthur (2013) [http://eprints.nottingham.ac.uk/id/eprint/3268 Predicting the coefficient of thermal expansion for textile composites based on a unit cell approach]. In: Texcomp-11 Conference, 16-20 September 2013, Leuven, Belgium. &lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Zeng, Xuesen and Long, Andrew.C. and Jones, I. Arthur (2013) [http://eprints.nottingham.ac.uk/id/eprint/3267 Recent developments in the realistic geometric modelling of textile structures using TexGen]. In: 1st International Conference on Digital Technologies for the Textile Industries, 5-6 Sept 2013, Manchester, UK.&lt;br /&gt;
&lt;br /&gt;
* Espadas-Escalante, J.J., N.P. van Dijk, and P. Isaksson, [https://www.sciencedirect.com/science/article/pii/S0263822316317901 A study on the influence of boundary conditions in computational homogenization of periodic structures with application to woven composites]. Composite Structures, 2017. 160: p. 529-537.&lt;br /&gt;
&lt;br /&gt;
* Espadas-Escalante, J.J., N.P. van Dijk, and P. Isaksson, [https://www.sciencedirect.com/science/article/pii/S0263822317320202?via%3Dihub The effect of free-edges and layer shifting on intralaminar and interlaminar stresses in woven composites]. Composite Structures, 2018. 185: p. 212-220.&lt;br /&gt;
&lt;br /&gt;
* Ferguson, J.C., F. Semeraro, J.M. Thornton, F. Panerai, A. Borner, and N.N. Mansour, [https://www-sciencedirect-com.nottingham.idm.oclc.org/science/article/pii/S235271102100090X?via%3Dihub Update 3.0 to “PuMA: The Porous Microstructure Analysis software&amp;quot;], (PII:S2352711018300281). SoftwareX, 2021. 15: p. 100775.&lt;br /&gt;
** [https://www.youtube.com/watch?v=zWFCNtA_xJo&amp;amp;list=PLSrX6q3Z64cHlCAtnoOQpYv6b2HPhSoq7&amp;amp;index=10 Video on pumapy: Weave Generation]&lt;br /&gt;
&lt;br /&gt;
* Gommer, F. and Endruweit, A. and Long, A.C. (2016) [ 	http://eprints.nottingham.ac.uk/id/eprint/33276 Quantification of micro-scale variability in fibre bundles]. Composites Part A: Applied Science and Manufacturing, 87 . pp. 131-137. ISSN 1359-835X &lt;br /&gt;
&lt;br /&gt;
* Gommer, Frank and Wedgwood, Kyle C.A. and Brown, Louise P. (2015) [http://eprints.nottingham.ac.uk/id/eprint/29642 Stochastic reconstruction of filament paths in fibre bundles based on two-dimensional input data]. Composites Part A: Applied Science and Manufacturing, 76 . pp. 262-271. ISSN 1359-835X &lt;br /&gt;
&lt;br /&gt;
* F Gommer, L P Brown, and K C A Wedgwood, [http://dx.doi.org/10.1016/j.compositesa.2015.11.031 Analytical method using gamma functions for determining areas of power elliptical shapes for use in geometrical textile models], Composites Part A: Applied Science and Manufacturing, 2016. 81: p. 222-224.&lt;br /&gt;
&lt;br /&gt;
* F Gommer, L P Brown, and R. Brooks, [http://eprints.nottingham.ac.uk/id/eprint/31111 Quantification of mesoscale variability and geometrical reconstruction of a textile]. Journal of Composite Materials, 2015. 0(0): p. 1-12&lt;br /&gt;
&lt;br /&gt;
* Green, S.D., M.Y. Matveev, A.C. Long, D. Ivanov, and S.R. Hallett, Mechanical modelling of 3D woven composites considering realistic unit cell geometry. Composite Structures, 2014. 118: p. 284-293.&lt;br /&gt;
&lt;br /&gt;
* Lin, H., L.P. Brown, and A.C. Long, [http://www.scientific.net/AMR.331.44 Modelling and Simulating Textile Structures using TexGen]. Advanced Materials Research, 2011. 331: p. 44-47.&lt;br /&gt;
&lt;br /&gt;
* H. Lin, A.C. Long, M. Sherburn, M. J. Clifford, [https://link.springer.com/content/pdf/10.1007%2Fs12289-008-0241-7.pdf Modelling of mechanical behaviour for woven fabrics under combined loading], International Journal of material forming, Spring/ESAFORM 2008&lt;br /&gt;
&lt;br /&gt;
* H Lin, M Sherburn, J Crookston, A C Long, M J Clifford, I A Jones. [http://iopscience.iop.org/article/10.1088/0965-0393/16/3/035010 Finite element modelling of fabric compression], Modelling and Simulation in Materials Science and Engineering, Vol.16, n3, 2008&lt;br /&gt;
&lt;br /&gt;
* H Lin, M J Clifford, A C Long, M Sherburn. [http://iopscience.iop.org/article/10.1088/0965-0393/17/1/015008/pdf Finite element modelling of fabric shear], Modelling and Simulation in Materials Science and Engineering, Vol.17, n1, 2009&lt;br /&gt;
&lt;br /&gt;
* H. Lin, X. Zeng, M. Sherburn, A. C. Long and M. J. Clifford. [http://journals.sagepub.com/doi/pdf/10.1177/0040517511418562 Automated geometric modelling of textile structures], Textile Research Journal, v82, n16, 2012, pp. 1689-1702.&lt;br /&gt;
&lt;br /&gt;
* Matveev, Mikhail Y. (2015) [http://eprints.nottingham.ac.uk/id/eprint/29419 Effect of variabilities on mechanical properties of textile composites]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Matveev, Mikhail Y. and Long, Andrew C. and Brown, Louise P. and Jones, I. Arthur (2016) [http://eprints.nottingham.ac.uk/id/eprint/34301 Effects of layer shift and yarn path variability on mechanical properties of a twill weave composite]. Journal of Composite Materials . ISSN 0021-9983 &lt;br /&gt;
&lt;br /&gt;
* Pan, Qing (2016) [http://eprints.nottingham.ac.uk/id/eprint/33396 Multi-scale modelling and material characterisation of textile composites for aerospace applications]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Ruijter, Wout (2009) [http://eprints.nottingham.ac.uk/id/eprint/10761 Analysis of mechanical properties of woven textile composites as a function of textile geometry]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Sherburn, M., A. Long, A. Jones, J. Crookston, and L. Brown, Prediction of textile geometry using an energy minimization approach. Journal of Industrial Textiles, 2012. 41(4): p. 345-369.&lt;br /&gt;
&lt;br /&gt;
* Sherburn, Martin (2007) [http://eprints.nottingham.ac.uk/id/eprint/10303 Geometric and Mechanical Modelling of Textiles]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Spackman, G., Brown, L. &amp;amp; Turner, T. [https://doi-org.nottingham.idm.oclc.org/10.1007/s10443-021-09978-9 Weft Yarn Interlacement Modelling for 3D Profiled Structures]. Appl Compos Mater (2021). &lt;br /&gt;
&lt;br /&gt;
* Wong, Chee Chiew (2006) [http://eprints.nottingham.ac.uk/id/eprint/10294 Modelling the effects of textile preform architecture on permeability]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* C.C. Wong, A.C. Long, M. Sherburn, F. Robitaille, P. Harrison, C.D. Rudd. [https://www.sciencedirect.com/science/article/pii/S1359835X05000424 Comparisons of novel and efficient approaches for permeability prediction based on the fabric architecture], Composites Part A 37(6) 2006 847-857&lt;br /&gt;
&lt;br /&gt;
* C.C. Wong, A.C. Long. [ https://doi.org/10.1179/174328906X103088 Modelling variations of textile fabric permeability at mesoscopic scale], Plastics Rubber and Composites, 35(3) 2006 101-111&lt;br /&gt;
&lt;br /&gt;
* X Zeng, A Endruweit, L P Brown, and A.C. Long, [http://www.sciencedirect.com/science/article/pii/S1359835X15001232 Numerical prediction of in-plane permeability for multilayer woven fabrics with manufacture-induced deformation]. Composites Part A: Applied Science and Manufacturing, 2015. 77: p. 266-274.&lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Brown, Louise P. and Endruweit, Andreas and Long, Andrew C. (2012) [http://eprints.nottingham.ac.uk/id/eprint/2052 Advanced geometry modelling of 3D woven reinforcements in polymer composites: processing and performance analysis]. In: Fourth World Conference on 3D Fabrics and their Applications, 10-11 Sep 2012, Aachen, Germany.&lt;br /&gt;
&lt;br /&gt;
* X Zeng, L P Brown, A Endruweit, M Matveev, and A.C. Long, [http://www.sciencedirect.com/science/article/pii/S1359835X13002704 Geometrical modelling of 3D woven reinforcements for polymer composites: Prediction of fabric permeability and composite mechanical properties]. Composites Part A, 2014. 56(0): p. 150-160.&lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Long, A.C. and Clifford, M.J. and Probst-Schendzielorz, S. and Schmitt, M.W. (2011) [http://eprints.nottingham.ac.uk/id/eprint/2805 Automated finite element modelling of 3D woven textiles]. In: Third World Conference on 3D Fabrics and their Applications., 20-21 April 2011, Wuhan, China.. &lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Long, Andew C.A. and Ashcroft, Ian and Potluri, Prasad (2015) [http://eprints.nottingham.ac.uk/id/eprint/28920 Fibre architecture design of 3D woven composite with genetic algorithms: a unit cell based optimisation framework and performance assessment]. In: 20th International Conference on Composite Materials, 19-24 July 2015, Copenhagen, Denmark.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>User Guide</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2022-04-14T10:36:25Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This user guide gives instructions for using TexGen via the graphical user interface (GUI). A practical introduction to using TexGen with worked examples and exercises can be found in the [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6 TexGen chapter] in the book Advanced Weaving Technology, DOI https://doi.org/10.1007/978-3-030-91515-5.&lt;br /&gt;
&lt;br /&gt;
==Layout==&lt;br /&gt;
[[Image:layout.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There are several other windows which can be switched on and off via the drop-down menu at the top in the &amp;quot;Window&amp;quot; section. By default the controls and logs windows will be visible.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The log windows at the bottom contains an interactive &amp;#039;&amp;#039;Python Console&amp;#039;&amp;#039; along with &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; and &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;Python Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;TexGen Output&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Textiles Menu==&lt;br /&gt;
&lt;br /&gt;
===Create Empty Textile===&lt;br /&gt;
This option creates an empty textile ready to have yarns added using the Modeller options.&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
A Textile Name dialog will then be displayed for entering a name for the textile.  Leave blank for a default name of Textile, Textile-2 etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Weave===&lt;br /&gt;
&lt;br /&gt;
[[Image:WeavewizardShear.png]]&lt;br /&gt;
&lt;br /&gt;
To use the weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Weave...&lt;br /&gt;
&lt;br /&gt;
====Create 2D Weave====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
* Warp Yarns, Weft Yarns - select number of yarns required&lt;br /&gt;
* Yarn Spacing - by default this is the same for both warp and weft yarns&lt;br /&gt;
* Yarn Width - by default this is the same for both warp and weft yarns&lt;br /&gt;
* 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&lt;br /&gt;
* Create 3D Weave - leave unchecked for 2D weave&lt;br /&gt;
* Create Layered Textile - when checked the Number of Weave Layers control is enabled for selection of the number of layers of the 2D textile.&lt;br /&gt;
* Create Default Domain - the default domain is the same as the unit cell, producing a box shaped domain with orthogonal faces.&lt;br /&gt;
* Create Sheared Domain - enabled when the Shear textile option is selected.  Generates a unit cell domain which lines up with the angle of the sheared yarns in the &amp;#039;&amp;#039;x&amp;#039;&amp;#039;-&amp;#039;&amp;#039;y&amp;#039;&amp;#039; plane.&lt;br /&gt;
* 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&lt;br /&gt;
** Gap Size - Specify the gap between yarns when Refine Model is selected&lt;br /&gt;
* Shear textile - if selected this will generate a textile with the weft yarns sheared at the shear angle specified.&lt;br /&gt;
** Shear angle - Specify the shear angle in degrees when Shear Textile is selected&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:2DWeavePatternDialog.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
* Click on yarn cross-over to switch the vertical order of the crossing yarns and thus define the weave pattern.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** 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.&lt;br /&gt;
&lt;br /&gt;
====Create 3D Weave====&lt;br /&gt;
&lt;br /&gt;
* Create 3D Weave - check this box&lt;br /&gt;
* Refine Model/Gap size - these options will now be greyed&lt;br /&gt;
* Fill in the rest of the textile data on the Weave Wizard as described for a 2D weave above &lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to Weave Pattern dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:weavepattern.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Add/remove layers&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and Click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu.&lt;br /&gt;
*** Select Add Layers/Remove Layers to add/remove one yarn to each set of yarns chosen&lt;br /&gt;
* Set yarn spacing, width and height as for 2D Weave described above&lt;br /&gt;
&lt;br /&gt;
===Create 3D Weave===&lt;br /&gt;
&lt;br /&gt;
To use the 3D weave wizard either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; 3D Weave, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create 3D Weave...&lt;br /&gt;
&lt;br /&gt;
First select the weave type to be created and then select Next to continue to the next page.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardPage1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardWeftPage.png]]&lt;br /&gt;
&lt;br /&gt;
* Yarns - select number of yarns required&lt;br /&gt;
* Number of Yarn Layers - select the number of weft yarn layers&lt;br /&gt;
** 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.&lt;br /&gt;
* Yarn Spacing - this is the spacing allowed for the yarn, the yarn being positioned centrally within the space assigned.&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to warp yarn input dialog.  Enter data as for the weft yarns.&lt;br /&gt;
[[Image:3DWizardWarpPage.png]]&lt;br /&gt;
*Total number of yarns in warp direction: This is the total of both straight warp yarns and through thickness binder yarns.&lt;br /&gt;
* Ratio of Binder Yarns to Warp Yarns: Specifies the order of binder/warp yarns.  If the warp ratio is 0 then all yarns in the warp direction are binder yarns.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the binder yarn input dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardBinderPage.png]]&lt;br /&gt;
* Yarn Width - specify the yarn width&lt;br /&gt;
* Yarn Height - specify the yarn height&lt;br /&gt;
* Yarn Spacing - specify the yarn spacing&lt;br /&gt;
* Gap size - where possible this forces a gap of the given size between yarns&lt;br /&gt;
* Power Ellipse Section Power - specify power. The resulting shape is shown on the dialog&lt;br /&gt;
* Number of Binder Yarn Layers - this is only enabled for layer-to-layer weaves&lt;br /&gt;
* Refine - this option is only available for orthogonal weaves. Check the box to refine the textile.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select Next to proceed to the Weave Pattern dialog or to the Yarn Properties dialogs if the Refine option is selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:3dWizardWeaveControl.png]]&lt;br /&gt;
&lt;br /&gt;
This window allows the weave pattern to be set and yarn spacing, width, and height to be adjusted.&lt;br /&gt;
&lt;br /&gt;
Binder yarns are green, warp yarns blue.&lt;br /&gt;
* Orthogonal weave - click on binder yarn crossover point on top view to toggle the binder yarn between top and bottom of the weave.&lt;br /&gt;
* Angle interlock - click on binder yarn crossover point on top view to assign top point of binder yarn pattern.&lt;br /&gt;
* Layer-to-layer&lt;br /&gt;
** 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.&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
* Set yarn spacing, width and height&lt;br /&gt;
** Click on boxes running along left and top of window to select one yarn&lt;br /&gt;
** Control or Shift and right click to select multiple yarns&lt;br /&gt;
*** Boxes representing selected yarns now appear in red&lt;br /&gt;
*** Right click to give pop-up menu. Select required option and enter value in subsequent dialog box&lt;br /&gt;
*** Changes will be applied to all selected yarns.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:3DWizardYarnProperties.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Layered===&lt;br /&gt;
Either:&lt;br /&gt;
# Select Controls -&amp;gt; Textiles -&amp;gt; Layered, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Layered...&lt;br /&gt;
&lt;br /&gt;
[[Image:SelectLayersDialog.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The Select Textile Layers dialog will be displayed.  On the left hand side this lists all of the textiles currently loaded in the GUI. These can be selected and then the Add Layer button used to add them to the Layers window on the right hand side.  The textiles listed in the Layers window can then be selected and the Remove Layer, Move Layer Up and Move Layer Down buttons used to select the order required.  The layered textile will be created with the textiles in the order shown in the dialog as shown below.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredTextile.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Set Layer Offsets===&lt;br /&gt;
[[Image:Layer Offsets Dialog.png|right]]&lt;br /&gt;
Select Main Menu -&amp;gt; Textiles -&amp;gt; Set Layer Offsets&lt;br /&gt;
&lt;br /&gt;
The Layer Offsets dialog will be displayed.&lt;br /&gt;
* Constant - enter an x and y offset. This offset will be applied from the bottom of the stack to each layer, relative to the one below.&lt;br /&gt;
* Random - random offsets are allocated and are displayed in the table on the dialog.&lt;br /&gt;
* Edit Offsets - the table can be edited and the offsets entered.&lt;br /&gt;
[[Image:4LayeredOffset.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Nest Layers===&lt;br /&gt;
Two nesting options are available, either maintaining the layer offsets already set or moving the layers relative to each other in order to achieve the maximum nesting.&lt;br /&gt;
&lt;br /&gt;
* Maintaining offset&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Keep Offsets&lt;br /&gt;
**The layers will be moved together, in the z direction, as much as possible without causing intersections.  The current x,y offsets between layers is maintained.&lt;br /&gt;
&lt;br /&gt;
* Maximum nesting&lt;br /&gt;
**Select Main Menu -&amp;gt; Textiles -&amp;gt; Nest Layers -&amp;gt; Maximum nesting&lt;br /&gt;
**The layers will be moved together adjusting the x and y offset between the layers in order to achieve the maximum z movement without causing intersections.&lt;br /&gt;
&lt;br /&gt;
[[Image:4LayeredNested.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Edit Textile===&lt;br /&gt;
&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Edit Textile..&lt;br /&gt;
or&lt;br /&gt;
* Select Edit from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Note: If the textile has been edited (eg. nodes have been moved) this will not be reflected in the regenerated textile.&lt;br /&gt;
&lt;br /&gt;
===Rotate Textile===&lt;br /&gt;
[[Image:RotateTextileDialog.png|right]]&lt;br /&gt;
Either&lt;br /&gt;
* Select Textiles -&amp;gt; Rotate Textile&lt;br /&gt;
or&lt;br /&gt;
* Select Rotate from the Textiles menu in the Controls window&lt;br /&gt;
&lt;br /&gt;
The Rotate Textile dialog will be displayed&lt;br /&gt;
* Rotation Axis - select the axis of rotation. For in plane rotation select the z-axis&lt;br /&gt;
* Angle - rotation angle in degrees&lt;br /&gt;
* Rotate Domain - Check to rotate the domain with the yarns. This will result in the section of yarns contained in the domain remaining unchanged (left below). If unchecked the domain will be unchanged and just the yarns rotated (right below).&lt;br /&gt;
&lt;br /&gt;
[[Image:RotateTextileAndDomain.png|400px]]           [[Image:RotateTextile.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==File Menu==&lt;br /&gt;
===Import===&lt;br /&gt;
====Weave Pattern File====&lt;br /&gt;
This option generates a TexGen model from a weave pattern file in the format specified below.&lt;br /&gt;
*Select File-&amp;gt;Import-&amp;gt;Weave Pattern File...&lt;br /&gt;
*The Open Weave Pattern File dialog is displayed, from which a file for import may be selected.&lt;br /&gt;
** Weave Pattern File Format&lt;br /&gt;
2D Satin Weave:&lt;br /&gt;
&lt;br /&gt;
 1 1 1 1                         &amp;#039;&amp;#039;First line is layer data, space delimited&amp;#039;&amp;#039;&lt;br /&gt;
 1000                            &amp;#039;&amp;#039;Weave pattern: 1 = warp lifted&amp;#039;&amp;#039;&lt;br /&gt;
 0010                            &amp;#039;&amp;#039;Italic text&amp;#039;&amp;#039;0 = warp lowered&lt;br /&gt;
 0100		          &lt;br /&gt;
 0001                            &amp;#039;&amp;#039;No spacing between entries&amp;#039;&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
 WEFT_REPEAT                     &amp;#039;&amp;#039;Use this keyword to generate pattern repeat&amp;#039;&amp;#039;&lt;br /&gt;
 WIDTH	6		mm       &amp;#039;&amp;#039;Yarn data. Row order is unimportant&amp;#039;&amp;#039;&lt;br /&gt;
 TOW_AREA	0.2    mm^2      &amp;#039;&amp;#039;Width, tow area and weft density must all be&amp;#039;&amp;#039;&lt;br /&gt;
 WEFT_DENSITY	8	/cm      &amp;#039;&amp;#039;specified otherwise default values will be used&amp;#039;&amp;#039; &lt;br /&gt;
                          	 &amp;#039;&amp;#039;to generate the TexGen model&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Additional yarn data. This is optional and will be saved in the yarn properties in the TexGen model&lt;br /&gt;
 LINEAR_DENSITY	800	tex&lt;br /&gt;
 FIBRE_DIAMETER	7	um&lt;br /&gt;
 FIBRE_DENSITY	1.8	g/cm^3&lt;br /&gt;
 FIBRE_COUNT	12000&lt;br /&gt;
&lt;br /&gt;
The TexGen model is generated using the tow area specified to calculate the width and height of the yarns, assuming a width to height ratio of 6:1 and an elliptical cross-section.  Warp and weft spacings are calculated using the width and weft density information. The data above will generate the model shown below:&lt;br /&gt;
&lt;br /&gt;
[[file:SatinFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
3D Orthogonal Weave:&lt;br /&gt;
 1 1 2 3 4 1 1 2 3 4            &amp;#039;&amp;#039;Warp layer data, numbered from bottom. Single &amp;#039;1&amp;#039; gives binder yarn&amp;#039;&amp;#039;&lt;br /&gt;
 1000000000&lt;br /&gt;
 1100001000&lt;br /&gt;
 1110001100&lt;br /&gt;
 1111001110&lt;br /&gt;
 1111101111&lt;br /&gt;
 0000010000&lt;br /&gt;
 0100011000&lt;br /&gt;
 0110011100&lt;br /&gt;
 0111011110&lt;br /&gt;
 0111111111&lt;br /&gt;
 &lt;br /&gt;
 ORTHOGONAL                     &amp;#039;&amp;#039;Use orthogonal keyword to automatically stack weft insertions&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[file:OrthogonalFromWeavePattern.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Export===&lt;br /&gt;
====Surface Mesh====&lt;br /&gt;
This option creates a surface mesh corresponding to the mesh shown when using the Rendering -&amp;gt; X-Ray option.&lt;br /&gt;
&lt;br /&gt;
=====VTU and STL File=====&lt;br /&gt;
[[file:SurfaceVTUDialog.png|right]]&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;STL, VTU File...&lt;br /&gt;
*The Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Export Yarns: Select to create a mesh of the yarn surfaces&lt;br /&gt;
**Trim Surface to Domain: Select to create yarn meshes conforming to domain bounds&lt;br /&gt;
**Export Domain: Select to create a triangulated mesh of the domain surfaces&lt;br /&gt;
***Mesh Yarn Ends: Select to create a triangulated mesh across the yarn ends&lt;br /&gt;
***Seed size: Used to adjust size of triangulation&lt;br /&gt;
*The Save Mesh file menu will be displayed&lt;br /&gt;
**Save as type: Use the drop-down menu to select the file type - VTU, STL (ASCII or binary, or SciRun format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS File=====&lt;br /&gt;
[[file:SurfaceAbaqusDialog.png|right]]&lt;br /&gt;
This option will export the surface mesh of the yarns only&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Surface Mesh-&amp;gt;ABAQUS File...&lt;br /&gt;
*The ABAQUS Surface Mesh Options dialog will be displayed&lt;br /&gt;
**Trim Surface to Domain: Select to output mesh of the yarns bounded by the domain, otherwise the yarns will be output as specified, without repeats&lt;br /&gt;
**Contact Surfaces: Outputs element sets for the contact surfaces, either for the upper and lower surfaces separately, or for the whole yarn. Choose Whole Yarn where surfaces are not clearly defined, for example in knitted textiles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Volume Mesh====&lt;br /&gt;
[[file:VolumeMeshDialog.png|right]]&lt;br /&gt;
This option creates a tetrahedral mesh of both the yarns and matrix (ie of the whole domain).  Please note that this algorithm does not work well with textiles with vertical or near-vertical yarns.&lt;br /&gt;
*Select File-&amp;gt;Export-&amp;gt;Volume Mesh&lt;br /&gt;
*The Volume Mesh Options dialog will be displayed&lt;br /&gt;
**Element Order: Linear creates 4 noded tetrahedra, Quadratic creates 10 noded tetrahedra&lt;br /&gt;
**Periodic Meshing: Select to create matching elements on opposite boundaries&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates tetrahedra which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
**Seed size: Controls the mesh density and corresponds to the approximates edge length of the elements.  The default value is 1/20th of the domain diagonal length.&lt;br /&gt;
**Merge Tolerance:Any gaps between yarns that are smaller than this tolerance will be merged together.  This can help to reduce the number of bad quality elements.&lt;br /&gt;
&lt;br /&gt;
After the Volume Mesh Options dialog is accepted the Save Mesh File dialog will be dispayed.  The default type for output is an ABAQUS .inp file.  This will create the requested boundary conditions and also associated .ele and .ori files containing yarn orientation and volume fraction information.&lt;br /&gt;
Alternatively a VTK unstructured grid file (.vtu) can be selected which will just output the mesh.&lt;br /&gt;
&lt;br /&gt;
====Tetgen Mesh====&lt;br /&gt;
[[file:TetgenOptions.png|right]]&lt;br /&gt;
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.&lt;br /&gt;
:*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. Use the o2 parameter to generate second order elements.&lt;br /&gt;
:*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.&lt;br /&gt;
:*The Periodic check box should be unchecked for non-periodic textiles.  In this case the the domain faces will not be triangulated prior to calling the Tetgen tetrahedralization.&lt;br /&gt;
:*The Set Resolution check box allows the textile resolution to be changed. This sets the resolution for the surface mesh which is used as input for the Tetgen meshing&lt;br /&gt;
&lt;br /&gt;
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.  &amp;#039;&amp;#039;It is strongly recommended that the textile is saved before using this option.&amp;#039;&amp;#039;  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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Voxel Mesh====&lt;br /&gt;
&lt;br /&gt;
Textiles can be exported in voxel mesh format, either as an ABAQUS file including periodic boundary conditions or at a VTU file containing just the nodes and elements.&lt;br /&gt;
&lt;br /&gt;
=====ABAQUS Voxel File=====&lt;br /&gt;
[[file:AbaqusVoxelDialog.png|300px|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; ABAQUS Voxel File&lt;br /&gt;
*The Abaqus Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Select whether to output yarns, matrix or both&lt;br /&gt;
**Select whether to use octree refinement and/or smoothing on the voxel mesh. The Octree Refinement dialog will be displayed when OK is selected.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Periodic Boundary Conditions&lt;br /&gt;
***Material Continuum: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
***Single Layer RVE: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
***Staggered (Reduced Domain): Applies an offset to the x axis dimension in order to reduce the unit cell size&lt;br /&gt;
****X Offset: Enabled when Staggered PBC is selected. Input the proportion of the x axis dimension by which the domain is offset when applying periodic boundary conditions.&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain and creates corresponding periodic boundary conditions.&lt;br /&gt;
***None: No boundary conditions are output.&lt;br /&gt;
**Periodic boundary condition equations are generated based on the paper &amp;quot;Unit cells for micromechanical analyses of particle-refined composites&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&lt;br /&gt;
&lt;br /&gt;
=====Octree Refinement=====&lt;br /&gt;
[[file:OctreeRefinementDialog.png|300px|right]]&lt;br /&gt;
*Output Surfaces - generate sets of nodes for surfaces between yarns and matrix &lt;br /&gt;
*Output cohesive elements – define cohesive contact between yarns and matrix &lt;br /&gt;
**Only available if surfaces are output. Nodes on the surfaces between yarns and matrix will be duplicated to &amp;quot;decouple&amp;quot; the yarns and matrix. Cohesive contacts will be created&lt;br /&gt;
*Refinement level - Each level of refinement reduces the size of element by the factor of 2. Only elements on the interface between two materials or close to it will be refined to this level of refinement.&lt;br /&gt;
======Smoothing Options======&lt;br /&gt;
The smoothing algorithm will move the yarn surface nodes according to the [http://www.cs.jhu.edu/~misha/Fall07/Papers/Taubin00.pdf Laplacian smoothing algorithm]&lt;br /&gt;
*Smoothing&lt;br /&gt;
**None - no smoothing applied&lt;br /&gt;
**Laplacian - Apply Laplacian smoothing to nodes belonging to yarn-matrix surfaces. Each node will be moved by C1*sum(x_i) where x_i are coordinates of neighbouring nodes&lt;br /&gt;
**Non-shrinking - Apply two Laplacian smoothings consecutively with coefficients C1 and C1, where C1 &amp;lt; abs(-C2)&lt;br /&gt;
*Iterations - number of smoothing iterations&lt;br /&gt;
*Coefficient 1 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 1] &lt;br /&gt;
*Coefficient 2 – [https://diglib.eg.org/handle/10.2312/egst20001029 smoothing coefficient 2]&lt;br /&gt;
&lt;br /&gt;
=====VTU Voxel File=====&lt;br /&gt;
[[file:VoxelVTUDialog.png|right]]&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; Voxel Mesh -&amp;gt; VTU Voxel File&lt;br /&gt;
*The VTU Voxel Options dialog will be displayed&lt;br /&gt;
**Select the number of voxels required in x,y and z directions&lt;br /&gt;
**Domain Type&lt;br /&gt;
***Box Domain: Default domain created by weave wizards consisting of 6 orthogonal planes&lt;br /&gt;
***Sheared Domain: Only select if 2D sheared textile has been created. Creates parallelepiped shaped voxels which conform to the sheared domain&lt;br /&gt;
***Rotated Domain: Select when a textile has been rotated using the Rotate Textile option with the Rotate Domain option selected. A voxel mesh will be generated which conforms to the rotated domain&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ABAQUS Dry Fibre File====&lt;br /&gt;
[[file:DryFibreDialog.png|right]]&lt;br /&gt;
&lt;br /&gt;
This will create a mesh of just the yarns in the same form as shown by the Rendering-&amp;gt;Render Textile Volume option.&lt;br /&gt;
*Select File -&amp;gt; Export -&amp;gt; ABAQUS File -&amp;gt; ABAQUS Dry Fibre File..&lt;br /&gt;
*The Abaqus Options dialog will be displayed&lt;br /&gt;
**X, Y and Z Scale:From the scales entered displacements are calculated and applied to the centre node of each yarn, effectively providing the loading for the Abaqus simulation&lt;br /&gt;
**Checking the Compression Plates box will add a pair of plates at the top and bottom surface of the domain.&lt;br /&gt;
**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.&lt;br /&gt;
**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.&lt;br /&gt;
**Element Type: Select either C3D8R or C3D8&lt;br /&gt;
**Contact Surfaces: This option allows contact surfaces to be generated for either the whole yarns or for the upper and lower surfaces. For woven textiles select Upper and Lower. For textiles where there is not a clearly defined upper and lower surface, eg knitted fabric, choose Whole Yarn&lt;br /&gt;
&lt;br /&gt;
==Modeller==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Create Textile===&lt;br /&gt;
To invoke the modeller either:&lt;br /&gt;
# Select Controls -&amp;gt; Textile -&amp;gt; Empty, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Textiles -&amp;gt; Create Empty...&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Add Yarns===&lt;br /&gt;
&lt;br /&gt;
To add a single yarn either:&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn, or&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Create Yarn...&lt;br /&gt;
&lt;br /&gt;
In the Create Yarn dialog:&lt;br /&gt;
* Enter start and end coordinates for the yarn&lt;br /&gt;
* Enter number of nodes&lt;br /&gt;
** The yarn will always initially be created as a straight line with equispaced nodes.&lt;br /&gt;
** Once the yarn has been placed it will be visible on screen in wire frame mode.&lt;br /&gt;
&lt;br /&gt;
====Edit Yarn/Node Position====&lt;br /&gt;
&lt;br /&gt;
Select yarn/node using one of the following methods:&lt;br /&gt;
# Click on the yarn/node with the left mouse button&lt;br /&gt;
# Hold Shift while selecting yarn/node to select multiple yarns&lt;br /&gt;
# Click on the yarn/node in the Outliner tree control&lt;br /&gt;
# Hold Shift or Ctrl while clicking on yarns/nodes in outliner tree to select multiple yarns&lt;br /&gt;
&lt;br /&gt;
Nodes are displayed as spheres on the centreline of the yarns.&lt;br /&gt;
&lt;br /&gt;
When either yarn or nodes have been selected they will turn white.  X, Y and Z axes will be displayed.&lt;br /&gt;
&lt;br /&gt;
To move yarn/node once it has been selected either:&lt;br /&gt;
* Click and drag one of the axes displayed.  The yarn/node will be moved in the corresponding direction.&lt;br /&gt;
** Precise positioning can be achieved by enabling snapping using Controls -&amp;gt; Modeller -&amp;gt; Snapping&lt;br /&gt;
* Edit the coordinates in the Controls -&amp;gt; Modeller -&amp;gt; Position boxes.&lt;br /&gt;
&lt;br /&gt;
====Add Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select node&lt;br /&gt;
# Click Outliner -&amp;gt; Insert Node, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Insert&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Duplicate Yarns====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Duplicate Yarn, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039; on the keyboard&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Delete Yarns/Nodes====&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Click Outliner -&amp;gt; Delete Selected, or&lt;br /&gt;
# Press the &amp;#039;&amp;#039;&amp;#039;Delete&amp;#039;&amp;#039;&amp;#039; key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Path Interpolation===&lt;br /&gt;
&lt;br /&gt;
This specifies how the yarn path is interpolated between the nodes.&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Interpolation... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Interpolation&lt;br /&gt;
# Select interpolation type from drop-down menu&lt;br /&gt;
# Periodic - check to give continuity across yarn repeats as follows:&lt;br /&gt;
## Linear - continuity of cross-section&lt;br /&gt;
## Bezier - continuity of cross-section and tangent(first order continuity)&lt;br /&gt;
## Natural Cubic - continuity of cross-section and both first and second order continuity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Yarn Cross-Sections===&lt;br /&gt;
&lt;br /&gt;
# Select yarn&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Section... , or&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Section&lt;br /&gt;
# Select from the drop-down menu how the cross-section will vary along the length of the yarn&lt;br /&gt;
## Constant&lt;br /&gt;
## Interpolate Between Nodes - see below&lt;br /&gt;
## Interpolate Between Sections - see below&lt;br /&gt;
# Select Edit Section to change section shape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Nodes====&lt;br /&gt;
** Highlight node to be edited&lt;br /&gt;
** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Smooth - check this box to give smooth interpolation between section&lt;br /&gt;
** Polar - check this box to give polar rather than linear interpolation between sections, useful if there are large rotations between sections&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Interpolate Between Sections====&lt;br /&gt;
** Sections can be specified at specific positions along the length of the yarn&lt;br /&gt;
** To add a section:&lt;br /&gt;
*** Click on Insert Section&lt;br /&gt;
*** Highlight the section which appears in the text box&lt;br /&gt;
*** Select the position along the yarn by using the slider or typing into the text box at the bottom of the dialog&lt;br /&gt;
** To remove a section:&lt;br /&gt;
*** Highlight the section to be removed&lt;br /&gt;
*** Click on Remove Section&lt;br /&gt;
*** Smooth and Polar - check as required, see Interpolate Between Nodes&lt;br /&gt;
*** Highlight node to be edited&lt;br /&gt;
*** Hold Ctrl or Shift key down to select multiple nodes&lt;br /&gt;
** Select Edit Section to change selected sections&lt;br /&gt;
&lt;br /&gt;
====Specify Cross-sections====&lt;br /&gt;
&lt;br /&gt;
After selecting the Edit Section button the Select Cross-section Shape dialog will be displayed.&lt;br /&gt;
&lt;br /&gt;
The shape at the top of the dialog gives a preview of the shape currently specified.&lt;br /&gt;
&lt;br /&gt;
* Select Cross-section from drop-down list and enter parameters as follows:&lt;br /&gt;
** Ellipse - Width and height&lt;br /&gt;
** 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.&lt;br /&gt;
** Power Ellipse - A modified ellipse.  Power = 1 gives an ellipse. Power &amp;lt; 1 gives a rectangle with rounded corners (power = 0 gives a rectangle). Power &amp;gt; 1 gives a shape similar to lenticular with rounded ends.&lt;br /&gt;
** 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 ).&lt;br /&gt;
** Hybrid - This allows a complex section to be created by combining two or more of the above cross-section shapes.&lt;br /&gt;
[[file:HybridSection.png|frame|left]]&lt;br /&gt;
[[file:HybridSectionDialog3.png|right|frame]]&lt;br /&gt;
::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.&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
::The example shows: &lt;br /&gt;
:::Red section   - ellipse, width = 1.0, height = 0.5&lt;br /&gt;
:::Blue section  - lenticular, width = 1.0, height = 0.5, distortion = 0&lt;br /&gt;
:::Green section - ellipse, width = 0.75, height = 0.75&lt;br /&gt;
&lt;br /&gt;
::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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rotate - if this is checked then input an angle by which the shape should be rotated.&lt;br /&gt;
* Scale - if this is checked then input scale factors for the x and y directions.&lt;br /&gt;
&lt;br /&gt;
===Repeats===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Repeats... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Repeats&lt;br /&gt;
# Select yarn or multiple yarns as described in Edit Yarn/Node Position&lt;br /&gt;
# 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Properties===&lt;br /&gt;
Properties can be set for yarns, either individually or for the whole textile, and matrix.&lt;br /&gt;
&lt;br /&gt;
For all properties both the value and the units can be set in the dialog box.  Units are set by entering a string, eg kg/m^3&lt;br /&gt;
&lt;br /&gt;
[[file:YarnProperties.png|right]]&lt;br /&gt;
To set yarn properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Yarn Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Yarn Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the whole textile:&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Areal Density, or...&lt;br /&gt;
# To set properties for individual yarns select one or more yarns (use Shift+Mouse Click to select multiple yarns) and enter values and units in the Properties dialog:&lt;br /&gt;
[[file:TextilePropetiesDialog.png|right]]&lt;br /&gt;
## Yarn Linear Density&lt;br /&gt;
## Fibre Density&lt;br /&gt;
## Total Fibre Area&lt;br /&gt;
## Fibre Diameter&lt;br /&gt;
## Fibres Per Yarn&lt;br /&gt;
## Young&amp;#039;s Modulus X&lt;br /&gt;
## Young&amp;#039;s Modulus Y&lt;br /&gt;
## Young&amp;#039;s Modulus Z&lt;br /&gt;
## Shear Modulus XY&lt;br /&gt;
## Shear Modulus XZ&lt;br /&gt;
## Shear Modulus YZ&lt;br /&gt;
## Poisson&amp;#039;s Ratio X&lt;br /&gt;
## Poisson&amp;#039;s Ratio Y&lt;br /&gt;
## Poisson&amp;#039;s Ratio Z&lt;br /&gt;
## Alpha X&lt;br /&gt;
## Alpha Y&lt;br /&gt;
## Alpha Z&lt;br /&gt;
[[file:MatrixProperties.png|right]]&lt;br /&gt;
To set the matrix properties:&lt;br /&gt;
# Select Main Menu -&amp;gt; Modeller -&amp;gt; Assign Matrix Properties... or,&lt;br /&gt;
# Select Controls -&amp;gt; Modeller -&amp;gt; Matrix Properties&lt;br /&gt;
# In the Properties dialog enter values and units for the matrix:&lt;br /&gt;
## Matrix Young&amp;#039;s Modulus&lt;br /&gt;
## Matrix Poisson&amp;#039;s Ratio&lt;br /&gt;
## Matrix Alpha&lt;br /&gt;
&lt;br /&gt;
==Domain==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The domain is specified by planes where the space on the negative side of the plane is&lt;br /&gt;
considered to be outside of the domain. Each plane is defined as:&lt;br /&gt;
Ax + By + Cz + D = 0&lt;br /&gt;
&lt;br /&gt;
The vector (A, B, C) represents the unit normal to the plane, and D represents the distance&lt;br /&gt;
from the plane to the origin. In order to specify an axis aligned bounding box&lt;br /&gt;
with minimum of (x1, y1, z1) and maximum of (x2, y2, z2), six planes P need to be defined&lt;br /&gt;
as shown in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  !! A !! B !! C !! D&lt;br /&gt;
|-&lt;br /&gt;
! P0&lt;br /&gt;
| 1 || 0 || 0 || x1&lt;br /&gt;
|-&lt;br /&gt;
! P1&lt;br /&gt;
| -1 || 0 || 0 || -x2&lt;br /&gt;
|-&lt;br /&gt;
! P2&lt;br /&gt;
| 0 || 1 || 0 || y1&lt;br /&gt;
|-&lt;br /&gt;
! P3&lt;br /&gt;
| 0 || -1 || 0 || -y2&lt;br /&gt;
|-&lt;br /&gt;
! P4&lt;br /&gt;
| 0 || 0 || 1 || z1&lt;br /&gt;
|-&lt;br /&gt;
! P5&lt;br /&gt;
| 0 || 0 || -1 || -z2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The user interface gives two methods of specifying the domain:&lt;br /&gt;
# Specify a bounding box with minimum and maximum x, y and z values&lt;br /&gt;
# Specify the planes as described above&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Bounding Box===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Box... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Box&lt;br /&gt;
# In the Box Domain dialog enter the minimum and maximum x, y and z coordinates&lt;br /&gt;
&lt;br /&gt;
===Specify Domain Using Planes===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Create Planes... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Planes&lt;br /&gt;
# Enter planes using the Domain Editor dialog:&lt;br /&gt;
## Enter x, y, z and d values for a plane as specified above&lt;br /&gt;
## Select Add Plane&lt;br /&gt;
## Repeat for each plane required&lt;br /&gt;
# To edit a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Alter the values as required&lt;br /&gt;
## Select Replace Plane&lt;br /&gt;
# To delete a plane:&lt;br /&gt;
## Select the plane in the text box&lt;br /&gt;
## Select Delete Plane&lt;br /&gt;
&lt;br /&gt;
===Edit Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Edit Domain... or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Edit&lt;br /&gt;
# The Domain Editor dialog will be displayed and is used as described in the previous section&lt;br /&gt;
&lt;br /&gt;
===Delete Domain===&lt;br /&gt;
&lt;br /&gt;
# Select Main Menu -&amp;gt; Domain -&amp;gt; Delete or,&lt;br /&gt;
# Select Controls -&amp;gt; Domain -&amp;gt; Delete&lt;br /&gt;
&lt;br /&gt;
Both of these actions will completely delete the domain&lt;br /&gt;
&lt;br /&gt;
==Rendering==&lt;br /&gt;
&lt;br /&gt;
===Render Fibre Orientation===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Refresh View===&lt;br /&gt;
&lt;br /&gt;
Forces the textile to be re-rendered so that any updates (eg made using Python commands) are shown.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Create Pattern Draft===&lt;br /&gt;
&lt;br /&gt;
This function will create a pattern draft for textiles created using the 2D and 3D textile weave types. It is not currently implemented for 3D angle interlock textiles.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Select Pattern Draft&lt;br /&gt;
** A dialog will be displayed showing the pattern draft for the current textile as shown below:&lt;br /&gt;
[[Image:Pattern4x4.png|400px]]    [[Image:2dWeavePatternDraft.png|200px]]&lt;br /&gt;
&lt;br /&gt;
* Select Print to print in the format shown in the dialog&lt;br /&gt;
* Select Save to create a text file with a binary version of the pattern as shown below:&lt;br /&gt;
&lt;br /&gt;
 1000	0001&lt;br /&gt;
 0100	0010&lt;br /&gt;
 0010	0100&lt;br /&gt;
 0001	1000&lt;br /&gt;
 &lt;br /&gt;
 0111	1110&lt;br /&gt;
 1101	1011&lt;br /&gt;
 1011	1101&lt;br /&gt;
 1110	0111&lt;br /&gt;
&lt;br /&gt;
* For 3d textiles the ordering of weft yarn insertion is selected using the dialog below:&lt;br /&gt;
[[Image:WeftOrderingDialog.png]]&lt;br /&gt;
* The pattern draft will then be displayed and may be printed and saved as before.&lt;br /&gt;
[[Image:LayerToLayerTextile.png|400px]]    [[Image:LayerToLayerPattern.png|300px]]&lt;br /&gt;
&lt;br /&gt;
===Quick Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Quick Calculate Domain Volume Fraction&lt;br /&gt;
** The volume fraction will be calculated using the volume fraction for the whole yarn. This may introduce inaccuracies if the domain does not correlate to the size of the yarn and the yarn cross-section changes along its length.  The Calculate Domain Volume Fraction gives a more accurate value but is slower.  This option is useful where a quick approximation is acceptable.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:QuickVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Calculate Domain Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Calculate Domain Volume Fraction&lt;br /&gt;
** This calculates the volume fraction for the domain based on the localised volume fractions for each element of a volume mesh.&lt;br /&gt;
** The result is displayed in a dialog as shown:&lt;br /&gt;
[[File:DomainVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Yarn Fibre Volume Fraction===&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Tools -&amp;gt; Yarn Fibre Volume Fraction&lt;br /&gt;
** Select yarn using the left mouse button. (Shift + left button to select more than one yarn)&lt;br /&gt;
** The volume fraction for each yarn is displayed in a dialog as shown:&lt;br /&gt;
[[File:YarnVfDialog.png]]&lt;br /&gt;
&lt;br /&gt;
===Correct Small Intersections===&lt;br /&gt;
&lt;br /&gt;
*Select Main Menu-&amp;gt;Tools-&amp;gt;Correct Small Intersections&lt;br /&gt;
**Adjusts small interferences in the fibre volume mesh&lt;br /&gt;
**Takes the individual yarn meshes and corrects intersections based on Textile.DetectInterference()&lt;br /&gt;
**Only intended to be used for minor adjustments so will abort if intersections are greater than one volume element in depth&lt;br /&gt;
&lt;br /&gt;
==Options==&lt;br /&gt;
&lt;br /&gt;
===Switch Off Messages===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Select Main Menu -&amp;gt; Options -&amp;gt; Output Messages to switch on/off&lt;br /&gt;
** The option will be marked with a tick if messages are switched on&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
===Zoom===&lt;br /&gt;
&lt;br /&gt;
Press and hold right mouse button.  Drag in an upwards direction to zoom in, downwards to zoom out.&lt;br /&gt;
&lt;br /&gt;
===Pan===&lt;br /&gt;
&lt;br /&gt;
Press and hold middle mouse button at point to be moved, then drag to required position.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Publications</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2022-04-14T10:31:02Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A selection of publications using TexGen:&lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Gommer, Frank and Zeng, Xuesen and Long, Andrew C. (2016) [http://eprints.nottingham.ac.uk/id/eprint/37018 Modelling framework for optimum multiaxial 3D woven textile composites]. In: 7th World Conference in 3D Fabrics and Their Applications, 8-9 Sept 2016, Roubaix, France.&lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Yan, Shibo and Zeng, Xuesen and Long, Andrew C. (2015) [http://eprints.nottingham.ac.uk/id/eprint/28919 Mesoscale geometric modelling of bifurcation in 3D woven T-beam preforms]. In: 12th International Conference on Textile Composites, 26-29 May 2015, Raleigh, NC, USA.. &lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Zeng, Xuesen and Long, Andrew C. and Brooks, Richard and Jones, I. Arthur (2013) [http://eprints.nottingham.ac.uk/id/eprint/3268 Predicting the coefficient of thermal expansion for textile composites based on a unit cell approach]. In: Texcomp-11 Conference, 16-20 September 2013, Leuven, Belgium. &lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Zeng, Xuesen and Long, Andrew.C. and Jones, I. Arthur (2013) [http://eprints.nottingham.ac.uk/id/eprint/3267 Recent developments in the realistic geometric modelling of textile structures using TexGen]. In: 1st International Conference on Digital Technologies for the Textile Industries, 5-6 Sept 2013, Manchester, UK.&lt;br /&gt;
&lt;br /&gt;
* Espadas-Escalante, J.J., N.P. van Dijk, and P. Isaksson, [https://www.sciencedirect.com/science/article/pii/S0263822316317901 A study on the influence of boundary conditions in computational homogenization of periodic structures with application to woven composites]. Composite Structures, 2017. 160: p. 529-537.&lt;br /&gt;
&lt;br /&gt;
* Espadas-Escalante, J.J., N.P. van Dijk, and P. Isaksson, [https://www.sciencedirect.com/science/article/pii/S0263822317320202?via%3Dihub The effect of free-edges and layer shifting on intralaminar and interlaminar stresses in woven composites]. Composite Structures, 2018. 185: p. 212-220.&lt;br /&gt;
&lt;br /&gt;
* Ferguson, J.C., F. Semeraro, J.M. Thornton, F. Panerai, A. Borner, and N.N. Mansour, [https://www-sciencedirect-com.nottingham.idm.oclc.org/science/article/pii/S235271102100090X?via%3Dihub Update 3.0 to “PuMA: The Porous Microstructure Analysis software&amp;quot;], (PII:S2352711018300281). SoftwareX, 2021. 15: p. 100775.&lt;br /&gt;
** [https://www.youtube.com/watch?v=zWFCNtA_xJo&amp;amp;list=PLSrX6q3Z64cHlCAtnoOQpYv6b2HPhSoq7&amp;amp;index=10 Video on pumapy: Weave Generation]&lt;br /&gt;
&lt;br /&gt;
* Gommer, F. and Endruweit, A. and Long, A.C. (2016) [ 	http://eprints.nottingham.ac.uk/id/eprint/33276 Quantification of micro-scale variability in fibre bundles]. Composites Part A: Applied Science and Manufacturing, 87 . pp. 131-137. ISSN 1359-835X &lt;br /&gt;
&lt;br /&gt;
* Gommer, Frank and Wedgwood, Kyle C.A. and Brown, Louise P. (2015) [http://eprints.nottingham.ac.uk/id/eprint/29642 Stochastic reconstruction of filament paths in fibre bundles based on two-dimensional input data]. Composites Part A: Applied Science and Manufacturing, 76 . pp. 262-271. ISSN 1359-835X &lt;br /&gt;
&lt;br /&gt;
* F Gommer, L P Brown, and K C A Wedgwood, [http://dx.doi.org/10.1016/j.compositesa.2015.11.031 Analytical method using gamma functions for determining areas of power elliptical shapes for use in geometrical textile models], Composites Part A: Applied Science and Manufacturing, 2016. 81: p. 222-224.&lt;br /&gt;
&lt;br /&gt;
* F Gommer, L P Brown, and R. Brooks, [http://eprints.nottingham.ac.uk/id/eprint/31111 Quantification of mesoscale variability and geometrical reconstruction of a textile]. Journal of Composite Materials, 2015. 0(0): p. 1-12&lt;br /&gt;
&lt;br /&gt;
* Green, S.D., M.Y. Matveev, A.C. Long, D. Ivanov, and S.R. Hallett, Mechanical modelling of 3D woven composites considering realistic unit cell geometry. Composite Structures, 2014. 118: p. 284-293.&lt;br /&gt;
&lt;br /&gt;
* Lin, H., L.P. Brown, and A.C. Long, [http://www.scientific.net/AMR.331.44 Modelling and Simulating Textile Structures using TexGen]. Advanced Materials Research, 2011. 331: p. 44-47.&lt;br /&gt;
&lt;br /&gt;
* H. Lin, A.C. Long, M. Sherburn, M. J. Clifford, [https://link.springer.com/content/pdf/10.1007%2Fs12289-008-0241-7.pdf Modelling of mechanical behaviour for woven fabrics under combined loading], International Journal of material forming, Spring/ESAFORM 2008&lt;br /&gt;
&lt;br /&gt;
* H Lin, M Sherburn, J Crookston, A C Long, M J Clifford, I A Jones. [http://iopscience.iop.org/article/10.1088/0965-0393/16/3/035010 Finite element modelling of fabric compression], Modelling and Simulation in Materials Science and Engineering, Vol.16, n3, 2008&lt;br /&gt;
&lt;br /&gt;
* H Lin, M J Clifford, A C Long, M Sherburn. [http://iopscience.iop.org/article/10.1088/0965-0393/17/1/015008/pdf Finite element modelling of fabric shear], Modelling and Simulation in Materials Science and Engineering, Vol.17, n1, 2009&lt;br /&gt;
&lt;br /&gt;
* H. Lin, X. Zeng, M. Sherburn, A. C. Long and M. J. Clifford. [http://journals.sagepub.com/doi/pdf/10.1177/0040517511418562 Automated geometric modelling of textile structures], Textile Research Journal, v82, n16, 2012, pp. 1689-1702.&lt;br /&gt;
&lt;br /&gt;
* Matveev, Mikhail Y. (2015) [http://eprints.nottingham.ac.uk/id/eprint/29419 Effect of variabilities on mechanical properties of textile composites]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Matveev, Mikhail Y. and Long, Andrew C. and Brown, Louise P. and Jones, I. Arthur (2016) [http://eprints.nottingham.ac.uk/id/eprint/34301 Effects of layer shift and yarn path variability on mechanical properties of a twill weave composite]. Journal of Composite Materials . ISSN 0021-9983 &lt;br /&gt;
&lt;br /&gt;
* Pan, Qing (2016) [http://eprints.nottingham.ac.uk/id/eprint/33396 Multi-scale modelling and material characterisation of textile composites for aerospace applications]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Ruijter, Wout (2009) [http://eprints.nottingham.ac.uk/id/eprint/10761 Analysis of mechanical properties of woven textile composites as a function of textile geometry]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Sherburn, M., A. Long, A. Jones, J. Crookston, and L. Brown, Prediction of textile geometry using an energy minimization approach. Journal of Industrial Textiles, 2012. 41(4): p. 345-369.&lt;br /&gt;
&lt;br /&gt;
* Sherburn, Martin (2007) [http://eprints.nottingham.ac.uk/id/eprint/10303 Geometric and Mechanical Modelling of Textiles]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Spackman, G., Brown, L. &amp;amp; Turner, T. [https://doi-org.nottingham.idm.oclc.org/10.1007/s10443-021-09978-9 Weft Yarn Interlacement Modelling for 3D Profiled Structures]. Appl Compos Mater (2021). &lt;br /&gt;
&lt;br /&gt;
* Wong, Chee Chiew (2006) [http://eprints.nottingham.ac.uk/id/eprint/10294 Modelling the effects of textile preform architecture on permeability]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* C.C. Wong, A.C. Long, M. Sherburn, F. Robitaille, P. Harrison, C.D. Rudd. [https://www.sciencedirect.com/science/article/pii/S1359835X05000424 Comparisons of novel and efficient approaches for permeability prediction based on the fabric architecture], Composites Part A 37(6) 2006 847-857&lt;br /&gt;
&lt;br /&gt;
* C.C. Wong, A.C. Long. [ https://doi.org/10.1179/174328906X103088 Modelling variations of textile fabric permeability at mesoscopic scale], Plastics Rubber and Composites, 35(3) 2006 101-111&lt;br /&gt;
&lt;br /&gt;
* X Zeng, A Endruweit, L P Brown, and A.C. Long, [http://www.sciencedirect.com/science/article/pii/S1359835X15001232 Numerical prediction of in-plane permeability for multilayer woven fabrics with manufacture-induced deformation]. Composites Part A: Applied Science and Manufacturing, 2015. 77: p. 266-274.&lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Brown, Louise P. and Endruweit, Andreas and Long, Andrew C. (2012) [http://eprints.nottingham.ac.uk/id/eprint/2052 Advanced geometry modelling of 3D woven reinforcements in polymer composites: processing and performance analysis]. In: Fourth World Conference on 3D Fabrics and their Applications, 10-11 Sep 2012, Aachen, Germany.&lt;br /&gt;
&lt;br /&gt;
* X Zeng, L P Brown, A Endruweit, M Matveev, and A.C. Long, [http://www.sciencedirect.com/science/article/pii/S1359835X13002704 Geometrical modelling of 3D woven reinforcements for polymer composites: Prediction of fabric permeability and composite mechanical properties]. Composites Part A, 2014. 56(0): p. 150-160.&lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Long, A.C. and Clifford, M.J. and Probst-Schendzielorz, S. and Schmitt, M.W. (2011) [http://eprints.nottingham.ac.uk/id/eprint/2805 Automated finite element modelling of 3D woven textiles]. In: Third World Conference on 3D Fabrics and their Applications., 20-21 April 2011, Wuhan, China.. &lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Long, Andew C.A. and Ashcroft, Ian and Potluri, Prasad (2015) [http://eprints.nottingham.ac.uk/id/eprint/28920 Fibre architecture design of 3D woven composite with genetic algorithms: a unit cell based optimisation framework and performance assessment]. In: 20th International Conference on Composite Materials, 19-24 July 2015, Copenhagen, Denmark.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2022-04-14T10:19:06Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:3Tex Vf 0.55.png|thumb|3d orthogonal woven fabric]]&lt;br /&gt;
[[Image:2DWeave.png|thumb|2d woven fabric]]&lt;br /&gt;
[[Image:Ncf.png|thumb|Non-crimp fabric]]&lt;br /&gt;
[[Image:Tufted laminate.png|thumb|Tufted laminate]]&lt;br /&gt;
[[Image:Triaxialbraid.png|thumb|Triaxial braid fabric]]&lt;br /&gt;
[[Image:Weftknit.png|thumb|Weft knit fabric]]&lt;br /&gt;
&lt;br /&gt;
TexGen is open source software licensed under the General Public License developed at the University of Nottingham for modelling the geometry of textile structures. TexGen has been used by the Nottingham team as the basis of models for a variety of properties, including textile mechanics, permeability and composite mechanical behaviour.&lt;br /&gt;
&lt;br /&gt;
A summary of our work involving TexGen can be found on the [[TexGen Applications]] page and a list of publications using TexGen can be found on the [[Publications]] page. Please also visit the [http://www.nottingham.ac.uk/research/groups/composites-research-group/research/textile-composites/textile-composites.aspx University of Nottingham Textile Composites Research] website for more details about our research group.&lt;br /&gt;
&lt;br /&gt;
A User Guide can be found here [[User_Guide]]. Also on this website you will find all the information necessary to get started with TexGen by using the sidebar for navigation. &lt;br /&gt;
&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [https://github.com/louisepb/TexGen GitHub issue tracker].&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
=== TexGen Chapter in new book: Advanced Weaving Technology ===&lt;br /&gt;
Published on 3rd April 2022 this book provides state-of-the-art information on weaving technology and 3D fabrics. It examines weaving preparation, mechanics and limits of the weaving processes, pattern design and applications. The TexGen chapter gives a practical overview and introduction to the use of TexGen and the modelling theory used in the software. There is a guide to creating automatically generated textile models using the built-in weave wizards and a detailed example of the method for creating a textile model using the functionality within the graphical user interface (GUI). An overview of the Python application programming interface (API) is given, illustrated by an example script, as well as information on how to use the Python functions to edit existing textiles. Finally there is an overview of the options for different meshing and export options used to prepare models as input for simulations.&lt;br /&gt;
&lt;br /&gt;
The TexGen chapter is available [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6 here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:17, 14 April 2022 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== TexGen Webinar: Exporting TexGen Models for Simulation===&lt;br /&gt;
====27th April 2021, 2pm (BST) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will describe the use of TexGen as a preprocessor for simulations using textile models and will cover:&lt;br /&gt;
*The different export options available, including file formats and meshing options&lt;br /&gt;
*Examples of different types of simulations using TexGen models, e.g. prediction of mechanical properties and permeability&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/BVME9evj0kc Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/webinar2_TexGenExport.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
=== TexGen Webinar: Introduction to Creating Textile Models Using TexGen===&lt;br /&gt;
==== 23rd March 2021, 2pm (GMT) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will give an introduction to TexGen and will cover:&lt;br /&gt;
*The use of the TexGen graphical user interface (GUI) to create and edit 2D woven structures.&lt;br /&gt;
*An outline of the modelling theory used in the TexGen software which will enable users to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/xDYRhVvwd2E Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/Webinar1_IntroductionToTexGen.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.2 Released! ===&lt;br /&gt;
Version 3.12.2 has been released. This contains a bugfix to octree refinement when starting with a number of voxels other than 1x1x1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:15, 15 March 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.1 Released! ===&lt;br /&gt;
Version 3.12.1 has been released. This contains extension of the ABAQUS Voxel File export to provide access to the octree refinement with Laplacian smoothing from the GUI. The octree refinement can now be started with a user-specified number of voxels.&lt;br /&gt;
&lt;br /&gt;
Correct Small Intersections tool has been added to the Tools menu (previously only accessible via the ABAQUS Dry Fibre export option).&lt;br /&gt;
&lt;br /&gt;
Tetgen export has been updated to include the o2 option allowing export of quadratic tet element.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.1/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17:00, 12 February 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.0 Released! ===&lt;br /&gt;
Version 3.12.0 has been released. This contains functions for octree refinement of voxel meshes with Laplacian smoothing. These are available using Python commands and instructions for their use are given here: [[Using Octree Refinement and Mesh Smoothing]]&lt;br /&gt;
&lt;br /&gt;
There are new options to create surface meshes in ABAQUS inp format and voxel meshes in vtu format.&lt;br /&gt;
&lt;br /&gt;
There is a bugfix to the correct reversal of G13 and G23 when calculating material properies using periodic boundary conditions as set up inthe voxel mesh export (issue 22 on GitHub).&lt;br /&gt;
&lt;br /&gt;
A Refresh View option has been added.&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:12, 11 March 2020 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Workshop: A Practical Introduction to Creating Textile Models===&lt;br /&gt;
====15th November 2019, CMSC, Purdue University, USA====&lt;br /&gt;
•	This interactive workshop will demonstrate the use of the TexGen graphical user interface (GUI) to create and edit 2D and 3D woven structures.  An outline of the modelling theory used in the TexGen software will be given which will enable the user to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
•	Python scripting for TexGen will be introduced and will be demonstrated both for editing models within the GUI and for creating custom scripts for maximum control over the textile structures created.&lt;br /&gt;
&lt;br /&gt;
•	An overview will be given of the use of TexGen as a pre-processor for generating textile models and its use in the multiscale modelling process, including export options which allow TexGen models to be easily exported to third-party software such as ABAQUS which can then be used in simulations for prediction of material properties.&lt;br /&gt;
&lt;br /&gt;
The workshop will be held at the [http://www.Purdue.edu/cmsc Composites Manufacturing and Simulation Centre], Purdue University and is free to attend but places are limited, so booking is essential. Participants will be required to bring their own laptops in order to follow the exercises. &lt;br /&gt;
&lt;br /&gt;
To book a place please register via [https://www.eventbrite.com/e/texgen-workshop-a-practical-introduction-to-creating-textile-models-tickets-73971830737 Eventbrite]&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.11.0 Released! ===&lt;br /&gt;
Version 3.11.0 has been released. This contains upgrades to the VTK, wxWidgets, triangle and OpenCASCADE libraries to address issues with the Python 27 version running on Windows 10.&lt;br /&gt;
&lt;br /&gt;
Periodic boundary conditions have been added for rotated textiles in the voxel mesh export.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.11.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:15, 7 June 2019 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.10.0 Released! ===&lt;br /&gt;
Version 3.10.0 has been released. This contains a Rotate Textile option which can be used in conjunction with the Layer Textile option to create laminates with different textile orientations.&lt;br /&gt;
&lt;br /&gt;
There are new options to import weave patterns and then create pattern drafts from certain types of weave patterns.&lt;br /&gt;
&lt;br /&gt;
There has been some code optimisation to speed up the functions which calculate volume fraction and yarn orientations in the export functions.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.10.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;18:00, 13 December 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Survey ===&lt;br /&gt;
The latest version of TexGen (3.9.0) included an invitation to complete a survey on exit from the program. This takes just a few minutes and can be found [https://nottingham.limequery.com/728617?lang=en here].  If you are a TexGen user we would be grateful if you could find the time to complete this.&lt;br /&gt;
&lt;br /&gt;
The information in the survey is crucial to us as it will help us to put together the case for continued funding of the TexGen project which, for the most part, is supported by UK Research Council funding.&lt;br /&gt;
&lt;br /&gt;
Many thanks for your help!&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.9.0 Released! ===&lt;br /&gt;
Version 3.9.0 has been released.  This contains functions to create a mesh of the centre plane of yarns using quad elements and functions to find the point on a yarn surface which is closest to a specified point.&lt;br /&gt;
&lt;br /&gt;
On exit from the program a dialog is triggered which points the user to an online survey.  This is entirely optional but information about usage and benefit from using the software will help us to make the case with research councils to continue funding the project.  This will enable us to continue its development and to keep it as free software.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.9.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:15, 14 February 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.2 Released! ===&lt;br /&gt;
Version 3.8.2 has been released. This contains functions to calculate fibre volume fractions of specified domains (unit cells if these correspond) and yarns. Functionality has been added to allow an angle to be specified at a node so that a cross-section can be angled relative to the yarn tangent.  Creation of pattern draft for layer-to-layer textiles. Added option to wizards to select whether or not 10% is added to height of default domain.&lt;br /&gt;
&lt;br /&gt;
Windows installation files are available with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issues on some machines with the Python27 bundled versions. If Python27 is required install Python from here https://www.python.org/downloads/ and then use any of the Python27 files.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.2/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:11, 19 January 2016 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.0 Released! ===&lt;br /&gt;
Version 3.8.0 has been released. This contains the addition of a maximum nesting function to layered textiles.  Changes to the 2D weave refine options have been implemented to allow more flexibility as to which functions are called when using the API. These have also been changed to allow refinement of non-periodic textiles. Option to select non-periodic mesh when using Tetgen meshing has been implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:08, 16 March 2015 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.7.0 Released! ===&lt;br /&gt;
Version 3.7.0 has been released. This contains the addition of layered textiles.  These can be created from the 2D weave wizard where a number of layers can be specified or from an option in the Textiles menu where different textiles can be stacked by making a selection from those loaded in the GUI.  Offsets can be set between the layers and simple nesting is implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.7.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:36, 7 August 2014 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.1 Released! ===&lt;br /&gt;
Version 3.6.1 has been released.  This contains changes to the Volume Mesh export to give matching nodes and elements on opposite faces of the unit cell.  ABAQUS input files can then be generated with periodic boundary conditions. (Note that this meshing method is not suitable for 3D weaves with vertical or near-vertical yarns).  Changes have been made to the 3D Weave Wizard to allow all warp yarns to be binder yarns.  The Window installation files now use Python 2.6 thus giving compatibility with recent versions of ABAQUS.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:19, 27 January 2014 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.0 Released! ===&lt;br /&gt;
Version 3.6.0 has been released.  This contains the addition of a sheared textile option to the 2D weave wizard.  This will automatically generate sheared 2D textiles and includes a refine option to minimise yarn intersections.  Associated sheared domain, sheared voxels and periodic boundary conditions may also be created. An option to create staggered periodic boundary conditions has been added for textiles which include an offset repeat, so as to minimise unit cell size.  There are various other small changes and bugfixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:41, 8 August 2013 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.3 Released! ===&lt;br /&gt;
Version 3.5.3 has been released.  This contains modification of the PointInsideYarn function to give correct solutions for yarns with both convex and concave yarn sections.  There are improvements to the 3D orthogonal weave refine option.  Scripts have been made available to give automatic extraction of material properties following simulations using the Abaqus voxel mesh option.  There are various optimisation changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.3/README/view here].&lt;br /&gt;
&amp;lt;small&amp;gt;13.56, 12 November 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.2 Released! ===&lt;br /&gt;
Version 3.5.2 has been released.  This contains the addition of a refine option to the 3D orthogonal weave.  The geometry is adjusted to achieve a given overall fabric thickness.  Fibre orientation calculations have been improved to reflect the variations in yarn cross-sections and a render fibre orientation functions has been added to the user interface.  A rectangular yarn section has been added.  There are also various bug fixes. Windows 32 and 64 bit installers are now available.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.2/README/view here].&lt;br /&gt;
&lt;br /&gt;
===Workshop Presentations===&lt;br /&gt;
The presentations from the TexGen workshop held at the East Midlands Conference Centre on 2nd May 2012 are now available to view on the Documentation page [http://texgen.sourceforge.net/index.php/Documentation here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:09, 8 May 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.1 Released! ===&lt;br /&gt;
Version 3.5.1 has been released.  This contains the addition of offset angle interlock weaves and specification of power ellipse power in the 3d weave wizard.  An export function has been added which uses the open source software Tetgen to generate tetrahedral meshes.  It also contains the addition of an x offset to the power ellipse section and various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:20, 1 March 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.0 Released! ===&lt;br /&gt;
Version 3.5.0 has been released.  This contains a new wizard for automatic creation of idealised orthogonal, angle interlock and layer-to-layer 3d textile weaves. It also contains various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:00, 13 October 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.1 Released! ===&lt;br /&gt;
Version 3.4.1 has been released. This contains minor changes to ABAQUS voxel mesh output and some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:09, 22 June 2011 &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.0 Released! ===&lt;br /&gt;
Version 3.4.0 has been released. It contains the addition of periodic boundary conditions to the Abaqus voxel mesh output.  The dry fibre volume mesh intersection correction has been improved and an additional option added to regenerate the textile model using the adapted mesh following correction.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.0/ReleaseNotes3.4.0.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:49, 16 March 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.3 Released! ===&lt;br /&gt;
Version 3.3.3 has been released.  It contains new features to save fibre and/or matrix as a voxel mesh in Abaqus format, to assign fibre properties to individual yarns and to adjust for small intersections in dry fibre volume mesh when outputting to Abaqus format.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.3.3/ReleaseNotes3.3.3.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;4 November 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.2 Released! ===&lt;br /&gt;
Version 3.3.2 has been released.  It contains new features to save fibre models to Abaqus output, render fibre volume mesh and render interference depth.  There are also some bug fixes, in particular a couple to get the GUI working in the Linux version.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.2/Release%20notes3-3-2.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15 June 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.3.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.1 has been released (currently only Windows versions). It contains a couple of bug fixes and an option to switch output of messages on and off.  A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.1/Release%20notes3-3-1.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17 March 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.0 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.0 has been released, it has various bug fixes most notably to the volume mesher and a few new algorithms dealing with geometry prediction based on mechanical behaviour of yarns. A list of changes can be found [https://sourceforge.net/project/shownotes.php?group_id=181000&amp;amp;release_id=591019 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:52, 9 April 2008 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.2.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.2.1 has been released, this is mainly a bug fix release however there are a few new features. A list of changes can be found [http://sourceforge.net/project/shownotes.php?release_id=553663&amp;amp;group_id=181000 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;04:12, 13 November 2007 (PST)&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2022-04-14T10:17:33Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:3Tex Vf 0.55.png|thumb|3d orthogonal woven fabric]]&lt;br /&gt;
[[Image:2DWeave.png|thumb|2d woven fabric]]&lt;br /&gt;
[[Image:Ncf.png|thumb|Non-crimp fabric]]&lt;br /&gt;
[[Image:Tufted laminate.png|thumb|Tufted laminate]]&lt;br /&gt;
[[Image:Triaxialbraid.png|thumb|Triaxial braid fabric]]&lt;br /&gt;
[[Image:Weftknit.png|thumb|Weft knit fabric]]&lt;br /&gt;
&lt;br /&gt;
TexGen is open source software licensed under the General Public License developed at the University of Nottingham for modelling the geometry of textile structures. TexGen has been used by the Nottingham team as the basis of models for a variety of properties, including textile mechanics, permeability and composite mechanical behaviour.&lt;br /&gt;
&lt;br /&gt;
A summary of our work involving TexGen can be found on the [[TexGen Applications]] page and a list of publications using TexGen can be found on the [[Publications]] page. Please also visit the [http://www.nottingham.ac.uk/research/groups/composites-research-group/research/textile-composites/textile-composites.aspx University of Nottingham Textile Composites Research] website for more details about our research group.&lt;br /&gt;
&lt;br /&gt;
A User Guide can be found here [[User_Guide]]. Also on this website you will find all the information necessary to get started with TexGen by using the sidebar for navigation. &lt;br /&gt;
&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [https://github.com/louisepb/TexGen GitHub issue tracker].&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
=== TexGen Chapter in new book: Advanced Weaving Technology ===&lt;br /&gt;
Published on 3rd April 2022 this book provides state-of-the-art information on weaving technology and 3D fabrics. It examines weaving preparation, mechanics and limits of the weaving processes, pattern design and applications. The TexGen chapter gives a practical overview and introduction to the use of TexGen and the modelling theory used in the software. There is a guide to creating automatically generated textile models using the built-in weave wizards and a detailed example of the method for creating a textile model using the functionality within the graphical user interface (GUI). An overview of the Python application programming interface (API) is given, illustrated by an example script, as well as information on how to use the Python functions to edit existing textiles. Finally there is an overview of the options for different meshing and export options used to prepare models as input for simulations.&lt;br /&gt;
&lt;br /&gt;
The TexGen chapter is available [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6#Sec001 here]&lt;br /&gt;
&amp;lt;small&amp;gt;11:17, 14 April 2022 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== TexGen Webinar: Exporting TexGen Models for Simulation===&lt;br /&gt;
====27th April 2021, 2pm (BST) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will describe the use of TexGen as a preprocessor for simulations using textile models and will cover:&lt;br /&gt;
*The different export options available, including file formats and meshing options&lt;br /&gt;
*Examples of different types of simulations using TexGen models, e.g. prediction of mechanical properties and permeability&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/BVME9evj0kc Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/webinar2_TexGenExport.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
=== TexGen Webinar: Introduction to Creating Textile Models Using TexGen===&lt;br /&gt;
==== 23rd March 2021, 2pm (GMT) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will give an introduction to TexGen and will cover:&lt;br /&gt;
*The use of the TexGen graphical user interface (GUI) to create and edit 2D woven structures.&lt;br /&gt;
*An outline of the modelling theory used in the TexGen software which will enable users to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/xDYRhVvwd2E Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/Webinar1_IntroductionToTexGen.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.2 Released! ===&lt;br /&gt;
Version 3.12.2 has been released. This contains a bugfix to octree refinement when starting with a number of voxels other than 1x1x1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:15, 15 March 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.1 Released! ===&lt;br /&gt;
Version 3.12.1 has been released. This contains extension of the ABAQUS Voxel File export to provide access to the octree refinement with Laplacian smoothing from the GUI. The octree refinement can now be started with a user-specified number of voxels.&lt;br /&gt;
&lt;br /&gt;
Correct Small Intersections tool has been added to the Tools menu (previously only accessible via the ABAQUS Dry Fibre export option).&lt;br /&gt;
&lt;br /&gt;
Tetgen export has been updated to include the o2 option allowing export of quadratic tet element.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.1/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17:00, 12 February 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.0 Released! ===&lt;br /&gt;
Version 3.12.0 has been released. This contains functions for octree refinement of voxel meshes with Laplacian smoothing. These are available using Python commands and instructions for their use are given here: [[Using Octree Refinement and Mesh Smoothing]]&lt;br /&gt;
&lt;br /&gt;
There are new options to create surface meshes in ABAQUS inp format and voxel meshes in vtu format.&lt;br /&gt;
&lt;br /&gt;
There is a bugfix to the correct reversal of G13 and G23 when calculating material properies using periodic boundary conditions as set up inthe voxel mesh export (issue 22 on GitHub).&lt;br /&gt;
&lt;br /&gt;
A Refresh View option has been added.&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:12, 11 March 2020 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Workshop: A Practical Introduction to Creating Textile Models===&lt;br /&gt;
====15th November 2019, CMSC, Purdue University, USA====&lt;br /&gt;
•	This interactive workshop will demonstrate the use of the TexGen graphical user interface (GUI) to create and edit 2D and 3D woven structures.  An outline of the modelling theory used in the TexGen software will be given which will enable the user to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
•	Python scripting for TexGen will be introduced and will be demonstrated both for editing models within the GUI and for creating custom scripts for maximum control over the textile structures created.&lt;br /&gt;
&lt;br /&gt;
•	An overview will be given of the use of TexGen as a pre-processor for generating textile models and its use in the multiscale modelling process, including export options which allow TexGen models to be easily exported to third-party software such as ABAQUS which can then be used in simulations for prediction of material properties.&lt;br /&gt;
&lt;br /&gt;
The workshop will be held at the [http://www.Purdue.edu/cmsc Composites Manufacturing and Simulation Centre], Purdue University and is free to attend but places are limited, so booking is essential. Participants will be required to bring their own laptops in order to follow the exercises. &lt;br /&gt;
&lt;br /&gt;
To book a place please register via [https://www.eventbrite.com/e/texgen-workshop-a-practical-introduction-to-creating-textile-models-tickets-73971830737 Eventbrite]&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.11.0 Released! ===&lt;br /&gt;
Version 3.11.0 has been released. This contains upgrades to the VTK, wxWidgets, triangle and OpenCASCADE libraries to address issues with the Python 27 version running on Windows 10.&lt;br /&gt;
&lt;br /&gt;
Periodic boundary conditions have been added for rotated textiles in the voxel mesh export.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.11.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:15, 7 June 2019 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.10.0 Released! ===&lt;br /&gt;
Version 3.10.0 has been released. This contains a Rotate Textile option which can be used in conjunction with the Layer Textile option to create laminates with different textile orientations.&lt;br /&gt;
&lt;br /&gt;
There are new options to import weave patterns and then create pattern drafts from certain types of weave patterns.&lt;br /&gt;
&lt;br /&gt;
There has been some code optimisation to speed up the functions which calculate volume fraction and yarn orientations in the export functions.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.10.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;18:00, 13 December 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Survey ===&lt;br /&gt;
The latest version of TexGen (3.9.0) included an invitation to complete a survey on exit from the program. This takes just a few minutes and can be found [https://nottingham.limequery.com/728617?lang=en here].  If you are a TexGen user we would be grateful if you could find the time to complete this.&lt;br /&gt;
&lt;br /&gt;
The information in the survey is crucial to us as it will help us to put together the case for continued funding of the TexGen project which, for the most part, is supported by UK Research Council funding.&lt;br /&gt;
&lt;br /&gt;
Many thanks for your help!&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.9.0 Released! ===&lt;br /&gt;
Version 3.9.0 has been released.  This contains functions to create a mesh of the centre plane of yarns using quad elements and functions to find the point on a yarn surface which is closest to a specified point.&lt;br /&gt;
&lt;br /&gt;
On exit from the program a dialog is triggered which points the user to an online survey.  This is entirely optional but information about usage and benefit from using the software will help us to make the case with research councils to continue funding the project.  This will enable us to continue its development and to keep it as free software.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.9.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:15, 14 February 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.2 Released! ===&lt;br /&gt;
Version 3.8.2 has been released. This contains functions to calculate fibre volume fractions of specified domains (unit cells if these correspond) and yarns. Functionality has been added to allow an angle to be specified at a node so that a cross-section can be angled relative to the yarn tangent.  Creation of pattern draft for layer-to-layer textiles. Added option to wizards to select whether or not 10% is added to height of default domain.&lt;br /&gt;
&lt;br /&gt;
Windows installation files are available with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issues on some machines with the Python27 bundled versions. If Python27 is required install Python from here https://www.python.org/downloads/ and then use any of the Python27 files.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.2/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:11, 19 January 2016 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.0 Released! ===&lt;br /&gt;
Version 3.8.0 has been released. This contains the addition of a maximum nesting function to layered textiles.  Changes to the 2D weave refine options have been implemented to allow more flexibility as to which functions are called when using the API. These have also been changed to allow refinement of non-periodic textiles. Option to select non-periodic mesh when using Tetgen meshing has been implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:08, 16 March 2015 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.7.0 Released! ===&lt;br /&gt;
Version 3.7.0 has been released. This contains the addition of layered textiles.  These can be created from the 2D weave wizard where a number of layers can be specified or from an option in the Textiles menu where different textiles can be stacked by making a selection from those loaded in the GUI.  Offsets can be set between the layers and simple nesting is implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.7.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:36, 7 August 2014 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.1 Released! ===&lt;br /&gt;
Version 3.6.1 has been released.  This contains changes to the Volume Mesh export to give matching nodes and elements on opposite faces of the unit cell.  ABAQUS input files can then be generated with periodic boundary conditions. (Note that this meshing method is not suitable for 3D weaves with vertical or near-vertical yarns).  Changes have been made to the 3D Weave Wizard to allow all warp yarns to be binder yarns.  The Window installation files now use Python 2.6 thus giving compatibility with recent versions of ABAQUS.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:19, 27 January 2014 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.0 Released! ===&lt;br /&gt;
Version 3.6.0 has been released.  This contains the addition of a sheared textile option to the 2D weave wizard.  This will automatically generate sheared 2D textiles and includes a refine option to minimise yarn intersections.  Associated sheared domain, sheared voxels and periodic boundary conditions may also be created. An option to create staggered periodic boundary conditions has been added for textiles which include an offset repeat, so as to minimise unit cell size.  There are various other small changes and bugfixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:41, 8 August 2013 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.3 Released! ===&lt;br /&gt;
Version 3.5.3 has been released.  This contains modification of the PointInsideYarn function to give correct solutions for yarns with both convex and concave yarn sections.  There are improvements to the 3D orthogonal weave refine option.  Scripts have been made available to give automatic extraction of material properties following simulations using the Abaqus voxel mesh option.  There are various optimisation changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.3/README/view here].&lt;br /&gt;
&amp;lt;small&amp;gt;13.56, 12 November 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.2 Released! ===&lt;br /&gt;
Version 3.5.2 has been released.  This contains the addition of a refine option to the 3D orthogonal weave.  The geometry is adjusted to achieve a given overall fabric thickness.  Fibre orientation calculations have been improved to reflect the variations in yarn cross-sections and a render fibre orientation functions has been added to the user interface.  A rectangular yarn section has been added.  There are also various bug fixes. Windows 32 and 64 bit installers are now available.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.2/README/view here].&lt;br /&gt;
&lt;br /&gt;
===Workshop Presentations===&lt;br /&gt;
The presentations from the TexGen workshop held at the East Midlands Conference Centre on 2nd May 2012 are now available to view on the Documentation page [http://texgen.sourceforge.net/index.php/Documentation here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:09, 8 May 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.1 Released! ===&lt;br /&gt;
Version 3.5.1 has been released.  This contains the addition of offset angle interlock weaves and specification of power ellipse power in the 3d weave wizard.  An export function has been added which uses the open source software Tetgen to generate tetrahedral meshes.  It also contains the addition of an x offset to the power ellipse section and various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:20, 1 March 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.0 Released! ===&lt;br /&gt;
Version 3.5.0 has been released.  This contains a new wizard for automatic creation of idealised orthogonal, angle interlock and layer-to-layer 3d textile weaves. It also contains various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:00, 13 October 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.1 Released! ===&lt;br /&gt;
Version 3.4.1 has been released. This contains minor changes to ABAQUS voxel mesh output and some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:09, 22 June 2011 &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.0 Released! ===&lt;br /&gt;
Version 3.4.0 has been released. It contains the addition of periodic boundary conditions to the Abaqus voxel mesh output.  The dry fibre volume mesh intersection correction has been improved and an additional option added to regenerate the textile model using the adapted mesh following correction.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.0/ReleaseNotes3.4.0.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:49, 16 March 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.3 Released! ===&lt;br /&gt;
Version 3.3.3 has been released.  It contains new features to save fibre and/or matrix as a voxel mesh in Abaqus format, to assign fibre properties to individual yarns and to adjust for small intersections in dry fibre volume mesh when outputting to Abaqus format.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.3.3/ReleaseNotes3.3.3.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;4 November 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.2 Released! ===&lt;br /&gt;
Version 3.3.2 has been released.  It contains new features to save fibre models to Abaqus output, render fibre volume mesh and render interference depth.  There are also some bug fixes, in particular a couple to get the GUI working in the Linux version.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.2/Release%20notes3-3-2.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15 June 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.3.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.1 has been released (currently only Windows versions). It contains a couple of bug fixes and an option to switch output of messages on and off.  A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.1/Release%20notes3-3-1.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17 March 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.0 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.0 has been released, it has various bug fixes most notably to the volume mesher and a few new algorithms dealing with geometry prediction based on mechanical behaviour of yarns. A list of changes can be found [https://sourceforge.net/project/shownotes.php?group_id=181000&amp;amp;release_id=591019 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:52, 9 April 2008 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.2.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.2.1 has been released, this is mainly a bug fix release however there are a few new features. A list of changes can be found [http://sourceforge.net/project/shownotes.php?release_id=553663&amp;amp;group_id=181000 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;04:12, 13 November 2007 (PST)&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2022-04-14T10:17:30Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:3Tex Vf 0.55.png|thumb|3d orthogonal woven fabric]]&lt;br /&gt;
[[Image:2DWeave.png|thumb|2d woven fabric]]&lt;br /&gt;
[[Image:Ncf.png|thumb|Non-crimp fabric]]&lt;br /&gt;
[[Image:Tufted laminate.png|thumb|Tufted laminate]]&lt;br /&gt;
[[Image:Triaxialbraid.png|thumb|Triaxial braid fabric]]&lt;br /&gt;
[[Image:Weftknit.png|thumb|Weft knit fabric]]&lt;br /&gt;
&lt;br /&gt;
TexGen is open source software licensed under the General Public License developed at the University of Nottingham for modelling the geometry of textile structures. TexGen has been used by the Nottingham team as the basis of models for a variety of properties, including textile mechanics, permeability and composite mechanical behaviour.&lt;br /&gt;
&lt;br /&gt;
A summary of our work involving TexGen can be found on the [[TexGen Applications]] page and a list of publications using TexGen can be found on the [[Publications]] page. Please also visit the [http://www.nottingham.ac.uk/research/groups/composites-research-group/research/textile-composites/textile-composites.aspx University of Nottingham Textile Composites Research] website for more details about our research group.&lt;br /&gt;
&lt;br /&gt;
A User Guide can be found here [[User_Guide]]. Also on this website you will find all the information necessary to get started with TexGen by using the sidebar for navigation. &lt;br /&gt;
&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [https://github.com/louisepb/TexGen GitHub issue tracker].&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
=== TexGen Chapter in new book: Advanced Weaving Technology ===&lt;br /&gt;
Published on 3rd April 2022 this book provides state-of-the-art information on weaving technology and 3D fabrics. It examines weaving preparation, mechanics and limits of the weaving processes, pattern design and applications. The TexGen chapter gives a practical overview and introduction to the use of TexGen and the modelling theory used in the software. There is a guide to creating automatically generated textile models using the built-in weave wizards and a detailed example of the method for creating a textile model using the functionality within the graphical user interface (GUI). An overview of the Python application programming interface (API) is given, illustrated by an example script, as well as information on how to use the Python functions to edit existing textiles. Finally there is an overview of the options for different meshing and export options used to prepare models as input for simulations.&lt;br /&gt;
&lt;br /&gt;
The TexGen chapter is available [https://link.springer.com/chapter/10.1007/978-3-030-91515-5_6#Sec001 here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:17, 14 April 2022 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== TexGen Webinar: Exporting TexGen Models for Simulation===&lt;br /&gt;
====27th April 2021, 2pm (BST) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will describe the use of TexGen as a preprocessor for simulations using textile models and will cover:&lt;br /&gt;
*The different export options available, including file formats and meshing options&lt;br /&gt;
*Examples of different types of simulations using TexGen models, e.g. prediction of mechanical properties and permeability&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/BVME9evj0kc Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/webinar2_TexGenExport.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
=== TexGen Webinar: Introduction to Creating Textile Models Using TexGen===&lt;br /&gt;
==== 23rd March 2021, 2pm (GMT) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will give an introduction to TexGen and will cover:&lt;br /&gt;
*The use of the TexGen graphical user interface (GUI) to create and edit 2D woven structures.&lt;br /&gt;
*An outline of the modelling theory used in the TexGen software which will enable users to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/xDYRhVvwd2E Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/Webinar1_IntroductionToTexGen.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.2 Released! ===&lt;br /&gt;
Version 3.12.2 has been released. This contains a bugfix to octree refinement when starting with a number of voxels other than 1x1x1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:15, 15 March 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.1 Released! ===&lt;br /&gt;
Version 3.12.1 has been released. This contains extension of the ABAQUS Voxel File export to provide access to the octree refinement with Laplacian smoothing from the GUI. The octree refinement can now be started with a user-specified number of voxels.&lt;br /&gt;
&lt;br /&gt;
Correct Small Intersections tool has been added to the Tools menu (previously only accessible via the ABAQUS Dry Fibre export option).&lt;br /&gt;
&lt;br /&gt;
Tetgen export has been updated to include the o2 option allowing export of quadratic tet element.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.1/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17:00, 12 February 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.0 Released! ===&lt;br /&gt;
Version 3.12.0 has been released. This contains functions for octree refinement of voxel meshes with Laplacian smoothing. These are available using Python commands and instructions for their use are given here: [[Using Octree Refinement and Mesh Smoothing]]&lt;br /&gt;
&lt;br /&gt;
There are new options to create surface meshes in ABAQUS inp format and voxel meshes in vtu format.&lt;br /&gt;
&lt;br /&gt;
There is a bugfix to the correct reversal of G13 and G23 when calculating material properies using periodic boundary conditions as set up inthe voxel mesh export (issue 22 on GitHub).&lt;br /&gt;
&lt;br /&gt;
A Refresh View option has been added.&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:12, 11 March 2020 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Workshop: A Practical Introduction to Creating Textile Models===&lt;br /&gt;
====15th November 2019, CMSC, Purdue University, USA====&lt;br /&gt;
•	This interactive workshop will demonstrate the use of the TexGen graphical user interface (GUI) to create and edit 2D and 3D woven structures.  An outline of the modelling theory used in the TexGen software will be given which will enable the user to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
•	Python scripting for TexGen will be introduced and will be demonstrated both for editing models within the GUI and for creating custom scripts for maximum control over the textile structures created.&lt;br /&gt;
&lt;br /&gt;
•	An overview will be given of the use of TexGen as a pre-processor for generating textile models and its use in the multiscale modelling process, including export options which allow TexGen models to be easily exported to third-party software such as ABAQUS which can then be used in simulations for prediction of material properties.&lt;br /&gt;
&lt;br /&gt;
The workshop will be held at the [http://www.Purdue.edu/cmsc Composites Manufacturing and Simulation Centre], Purdue University and is free to attend but places are limited, so booking is essential. Participants will be required to bring their own laptops in order to follow the exercises. &lt;br /&gt;
&lt;br /&gt;
To book a place please register via [https://www.eventbrite.com/e/texgen-workshop-a-practical-introduction-to-creating-textile-models-tickets-73971830737 Eventbrite]&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.11.0 Released! ===&lt;br /&gt;
Version 3.11.0 has been released. This contains upgrades to the VTK, wxWidgets, triangle and OpenCASCADE libraries to address issues with the Python 27 version running on Windows 10.&lt;br /&gt;
&lt;br /&gt;
Periodic boundary conditions have been added for rotated textiles in the voxel mesh export.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.11.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:15, 7 June 2019 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.10.0 Released! ===&lt;br /&gt;
Version 3.10.0 has been released. This contains a Rotate Textile option which can be used in conjunction with the Layer Textile option to create laminates with different textile orientations.&lt;br /&gt;
&lt;br /&gt;
There are new options to import weave patterns and then create pattern drafts from certain types of weave patterns.&lt;br /&gt;
&lt;br /&gt;
There has been some code optimisation to speed up the functions which calculate volume fraction and yarn orientations in the export functions.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.10.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;18:00, 13 December 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Survey ===&lt;br /&gt;
The latest version of TexGen (3.9.0) included an invitation to complete a survey on exit from the program. This takes just a few minutes and can be found [https://nottingham.limequery.com/728617?lang=en here].  If you are a TexGen user we would be grateful if you could find the time to complete this.&lt;br /&gt;
&lt;br /&gt;
The information in the survey is crucial to us as it will help us to put together the case for continued funding of the TexGen project which, for the most part, is supported by UK Research Council funding.&lt;br /&gt;
&lt;br /&gt;
Many thanks for your help!&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.9.0 Released! ===&lt;br /&gt;
Version 3.9.0 has been released.  This contains functions to create a mesh of the centre plane of yarns using quad elements and functions to find the point on a yarn surface which is closest to a specified point.&lt;br /&gt;
&lt;br /&gt;
On exit from the program a dialog is triggered which points the user to an online survey.  This is entirely optional but information about usage and benefit from using the software will help us to make the case with research councils to continue funding the project.  This will enable us to continue its development and to keep it as free software.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.9.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:15, 14 February 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.2 Released! ===&lt;br /&gt;
Version 3.8.2 has been released. This contains functions to calculate fibre volume fractions of specified domains (unit cells if these correspond) and yarns. Functionality has been added to allow an angle to be specified at a node so that a cross-section can be angled relative to the yarn tangent.  Creation of pattern draft for layer-to-layer textiles. Added option to wizards to select whether or not 10% is added to height of default domain.&lt;br /&gt;
&lt;br /&gt;
Windows installation files are available with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issues on some machines with the Python27 bundled versions. If Python27 is required install Python from here https://www.python.org/downloads/ and then use any of the Python27 files.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.2/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:11, 19 January 2016 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.0 Released! ===&lt;br /&gt;
Version 3.8.0 has been released. This contains the addition of a maximum nesting function to layered textiles.  Changes to the 2D weave refine options have been implemented to allow more flexibility as to which functions are called when using the API. These have also been changed to allow refinement of non-periodic textiles. Option to select non-periodic mesh when using Tetgen meshing has been implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:08, 16 March 2015 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.7.0 Released! ===&lt;br /&gt;
Version 3.7.0 has been released. This contains the addition of layered textiles.  These can be created from the 2D weave wizard where a number of layers can be specified or from an option in the Textiles menu where different textiles can be stacked by making a selection from those loaded in the GUI.  Offsets can be set between the layers and simple nesting is implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.7.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:36, 7 August 2014 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.1 Released! ===&lt;br /&gt;
Version 3.6.1 has been released.  This contains changes to the Volume Mesh export to give matching nodes and elements on opposite faces of the unit cell.  ABAQUS input files can then be generated with periodic boundary conditions. (Note that this meshing method is not suitable for 3D weaves with vertical or near-vertical yarns).  Changes have been made to the 3D Weave Wizard to allow all warp yarns to be binder yarns.  The Window installation files now use Python 2.6 thus giving compatibility with recent versions of ABAQUS.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:19, 27 January 2014 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.0 Released! ===&lt;br /&gt;
Version 3.6.0 has been released.  This contains the addition of a sheared textile option to the 2D weave wizard.  This will automatically generate sheared 2D textiles and includes a refine option to minimise yarn intersections.  Associated sheared domain, sheared voxels and periodic boundary conditions may also be created. An option to create staggered periodic boundary conditions has been added for textiles which include an offset repeat, so as to minimise unit cell size.  There are various other small changes and bugfixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:41, 8 August 2013 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.3 Released! ===&lt;br /&gt;
Version 3.5.3 has been released.  This contains modification of the PointInsideYarn function to give correct solutions for yarns with both convex and concave yarn sections.  There are improvements to the 3D orthogonal weave refine option.  Scripts have been made available to give automatic extraction of material properties following simulations using the Abaqus voxel mesh option.  There are various optimisation changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.3/README/view here].&lt;br /&gt;
&amp;lt;small&amp;gt;13.56, 12 November 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.2 Released! ===&lt;br /&gt;
Version 3.5.2 has been released.  This contains the addition of a refine option to the 3D orthogonal weave.  The geometry is adjusted to achieve a given overall fabric thickness.  Fibre orientation calculations have been improved to reflect the variations in yarn cross-sections and a render fibre orientation functions has been added to the user interface.  A rectangular yarn section has been added.  There are also various bug fixes. Windows 32 and 64 bit installers are now available.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.2/README/view here].&lt;br /&gt;
&lt;br /&gt;
===Workshop Presentations===&lt;br /&gt;
The presentations from the TexGen workshop held at the East Midlands Conference Centre on 2nd May 2012 are now available to view on the Documentation page [http://texgen.sourceforge.net/index.php/Documentation here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:09, 8 May 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.1 Released! ===&lt;br /&gt;
Version 3.5.1 has been released.  This contains the addition of offset angle interlock weaves and specification of power ellipse power in the 3d weave wizard.  An export function has been added which uses the open source software Tetgen to generate tetrahedral meshes.  It also contains the addition of an x offset to the power ellipse section and various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:20, 1 March 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.0 Released! ===&lt;br /&gt;
Version 3.5.0 has been released.  This contains a new wizard for automatic creation of idealised orthogonal, angle interlock and layer-to-layer 3d textile weaves. It also contains various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:00, 13 October 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.1 Released! ===&lt;br /&gt;
Version 3.4.1 has been released. This contains minor changes to ABAQUS voxel mesh output and some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:09, 22 June 2011 &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.0 Released! ===&lt;br /&gt;
Version 3.4.0 has been released. It contains the addition of periodic boundary conditions to the Abaqus voxel mesh output.  The dry fibre volume mesh intersection correction has been improved and an additional option added to regenerate the textile model using the adapted mesh following correction.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.0/ReleaseNotes3.4.0.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:49, 16 March 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.3 Released! ===&lt;br /&gt;
Version 3.3.3 has been released.  It contains new features to save fibre and/or matrix as a voxel mesh in Abaqus format, to assign fibre properties to individual yarns and to adjust for small intersections in dry fibre volume mesh when outputting to Abaqus format.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.3.3/ReleaseNotes3.3.3.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;4 November 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.2 Released! ===&lt;br /&gt;
Version 3.3.2 has been released.  It contains new features to save fibre models to Abaqus output, render fibre volume mesh and render interference depth.  There are also some bug fixes, in particular a couple to get the GUI working in the Linux version.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.2/Release%20notes3-3-2.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15 June 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.3.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.1 has been released (currently only Windows versions). It contains a couple of bug fixes and an option to switch output of messages on and off.  A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.1/Release%20notes3-3-1.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17 March 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.0 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.0 has been released, it has various bug fixes most notably to the volume mesher and a few new algorithms dealing with geometry prediction based on mechanical behaviour of yarns. A list of changes can be found [https://sourceforge.net/project/shownotes.php?group_id=181000&amp;amp;release_id=591019 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:52, 9 April 2008 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.2.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.2.1 has been released, this is mainly a bug fix release however there are a few new features. A list of changes can be found [http://sourceforge.net/project/shownotes.php?release_id=553663&amp;amp;group_id=181000 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;04:12, 13 November 2007 (PST)&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Publications</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2022-01-26T10:39:26Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Publications using TexGen:&lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Gommer, Frank and Zeng, Xuesen and Long, Andrew C. (2016) [http://eprints.nottingham.ac.uk/id/eprint/37018 Modelling framework for optimum multiaxial 3D woven textile composites]. In: 7th World Conference in 3D Fabrics and Their Applications, 8-9 Sept 2016, Roubaix, France.&lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Yan, Shibo and Zeng, Xuesen and Long, Andrew C. (2015) [http://eprints.nottingham.ac.uk/id/eprint/28919 Mesoscale geometric modelling of bifurcation in 3D woven T-beam preforms]. In: 12th International Conference on Textile Composites, 26-29 May 2015, Raleigh, NC, USA.. &lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Zeng, Xuesen and Long, Andrew C. and Brooks, Richard and Jones, I. Arthur (2013) [http://eprints.nottingham.ac.uk/id/eprint/3268 Predicting the coefficient of thermal expansion for textile composites based on a unit cell approach]. In: Texcomp-11 Conference, 16-20 September 2013, Leuven, Belgium. &lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Zeng, Xuesen and Long, Andrew.C. and Jones, I. Arthur (2013) [http://eprints.nottingham.ac.uk/id/eprint/3267 Recent developments in the realistic geometric modelling of textile structures using TexGen]. In: 1st International Conference on Digital Technologies for the Textile Industries, 5-6 Sept 2013, Manchester, UK.&lt;br /&gt;
&lt;br /&gt;
* Espadas-Escalante, J.J., N.P. van Dijk, and P. Isaksson, [https://www.sciencedirect.com/science/article/pii/S0263822316317901 A study on the influence of boundary conditions in computational homogenization of periodic structures with application to woven composites]. Composite Structures, 2017. 160: p. 529-537.&lt;br /&gt;
&lt;br /&gt;
* Espadas-Escalante, J.J., N.P. van Dijk, and P. Isaksson, [https://www.sciencedirect.com/science/article/pii/S0263822317320202?via%3Dihub The effect of free-edges and layer shifting on intralaminar and interlaminar stresses in woven composites]. Composite Structures, 2018. 185: p. 212-220.&lt;br /&gt;
&lt;br /&gt;
* Ferguson, J.C., F. Semeraro, J.M. Thornton, F. Panerai, A. Borner, and N.N. Mansour, [https://www-sciencedirect-com.nottingham.idm.oclc.org/science/article/pii/S235271102100090X?via%3Dihub Update 3.0 to “PuMA: The Porous Microstructure Analysis software&amp;quot;], (PII:S2352711018300281). SoftwareX, 2021. 15: p. 100775.&lt;br /&gt;
** [https://www.youtube.com/watch?v=zWFCNtA_xJo&amp;amp;list=PLSrX6q3Z64cHlCAtnoOQpYv6b2HPhSoq7&amp;amp;index=10 Video on pumapy: Weave Generation]&lt;br /&gt;
&lt;br /&gt;
* Gommer, F. and Endruweit, A. and Long, A.C. (2016) [ 	http://eprints.nottingham.ac.uk/id/eprint/33276 Quantification of micro-scale variability in fibre bundles]. Composites Part A: Applied Science and Manufacturing, 87 . pp. 131-137. ISSN 1359-835X &lt;br /&gt;
&lt;br /&gt;
* Gommer, Frank and Wedgwood, Kyle C.A. and Brown, Louise P. (2015) [http://eprints.nottingham.ac.uk/id/eprint/29642 Stochastic reconstruction of filament paths in fibre bundles based on two-dimensional input data]. Composites Part A: Applied Science and Manufacturing, 76 . pp. 262-271. ISSN 1359-835X &lt;br /&gt;
&lt;br /&gt;
* F Gommer, L P Brown, and K C A Wedgwood, [http://dx.doi.org/10.1016/j.compositesa.2015.11.031 Analytical method using gamma functions for determining areas of power elliptical shapes for use in geometrical textile models], Composites Part A: Applied Science and Manufacturing, 2016. 81: p. 222-224.&lt;br /&gt;
&lt;br /&gt;
* F Gommer, L P Brown, and R. Brooks, [http://eprints.nottingham.ac.uk/id/eprint/31111 Quantification of mesoscale variability and geometrical reconstruction of a textile]. Journal of Composite Materials, 2015. 0(0): p. 1-12&lt;br /&gt;
&lt;br /&gt;
* Green, S.D., M.Y. Matveev, A.C. Long, D. Ivanov, and S.R. Hallett, Mechanical modelling of 3D woven composites considering realistic unit cell geometry. Composite Structures, 2014. 118: p. 284-293.&lt;br /&gt;
&lt;br /&gt;
* Lin, H., L.P. Brown, and A.C. Long, [http://www.scientific.net/AMR.331.44 Modelling and Simulating Textile Structures using TexGen]. Advanced Materials Research, 2011. 331: p. 44-47.&lt;br /&gt;
&lt;br /&gt;
* H. Lin, A.C. Long, M. Sherburn, M. J. Clifford, [https://link.springer.com/content/pdf/10.1007%2Fs12289-008-0241-7.pdf Modelling of mechanical behaviour for woven fabrics under combined loading], International Journal of material forming, Spring/ESAFORM 2008&lt;br /&gt;
&lt;br /&gt;
* H Lin, M Sherburn, J Crookston, A C Long, M J Clifford, I A Jones. [http://iopscience.iop.org/article/10.1088/0965-0393/16/3/035010 Finite element modelling of fabric compression], Modelling and Simulation in Materials Science and Engineering, Vol.16, n3, 2008&lt;br /&gt;
&lt;br /&gt;
* H Lin, M J Clifford, A C Long, M Sherburn. [http://iopscience.iop.org/article/10.1088/0965-0393/17/1/015008/pdf Finite element modelling of fabric shear], Modelling and Simulation in Materials Science and Engineering, Vol.17, n1, 2009&lt;br /&gt;
&lt;br /&gt;
* H. Lin, X. Zeng, M. Sherburn, A. C. Long and M. J. Clifford. [http://journals.sagepub.com/doi/pdf/10.1177/0040517511418562 Automated geometric modelling of textile structures], Textile Research Journal, v82, n16, 2012, pp. 1689-1702.&lt;br /&gt;
&lt;br /&gt;
* Matveev, Mikhail Y. (2015) [http://eprints.nottingham.ac.uk/id/eprint/29419 Effect of variabilities on mechanical properties of textile composites]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Matveev, Mikhail Y. and Long, Andrew C. and Brown, Louise P. and Jones, I. Arthur (2016) [http://eprints.nottingham.ac.uk/id/eprint/34301 Effects of layer shift and yarn path variability on mechanical properties of a twill weave composite]. Journal of Composite Materials . ISSN 0021-9983 &lt;br /&gt;
&lt;br /&gt;
* Pan, Qing (2016) [http://eprints.nottingham.ac.uk/id/eprint/33396 Multi-scale modelling and material characterisation of textile composites for aerospace applications]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Ruijter, Wout (2009) [http://eprints.nottingham.ac.uk/id/eprint/10761 Analysis of mechanical properties of woven textile composites as a function of textile geometry]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Sherburn, M., A. Long, A. Jones, J. Crookston, and L. Brown, Prediction of textile geometry using an energy minimization approach. Journal of Industrial Textiles, 2012. 41(4): p. 345-369.&lt;br /&gt;
&lt;br /&gt;
* Sherburn, Martin (2007) [http://eprints.nottingham.ac.uk/id/eprint/10303 Geometric and Mechanical Modelling of Textiles]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Spackman, G., Brown, L. &amp;amp; Turner, T. [https://doi-org.nottingham.idm.oclc.org/10.1007/s10443-021-09978-9 Weft Yarn Interlacement Modelling for 3D Profiled Structures]. Appl Compos Mater (2021). &lt;br /&gt;
&lt;br /&gt;
* Wong, Chee Chiew (2006) [http://eprints.nottingham.ac.uk/id/eprint/10294 Modelling the effects of textile preform architecture on permeability]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* C.C. Wong, A.C. Long, M. Sherburn, F. Robitaille, P. Harrison, C.D. Rudd. [https://www.sciencedirect.com/science/article/pii/S1359835X05000424 Comparisons of novel and efficient approaches for permeability prediction based on the fabric architecture], Composites Part A 37(6) 2006 847-857&lt;br /&gt;
&lt;br /&gt;
* C.C. Wong, A.C. Long. [ https://doi.org/10.1179/174328906X103088 Modelling variations of textile fabric permeability at mesoscopic scale], Plastics Rubber and Composites, 35(3) 2006 101-111&lt;br /&gt;
&lt;br /&gt;
* X Zeng, A Endruweit, L P Brown, and A.C. Long, [http://www.sciencedirect.com/science/article/pii/S1359835X15001232 Numerical prediction of in-plane permeability for multilayer woven fabrics with manufacture-induced deformation]. Composites Part A: Applied Science and Manufacturing, 2015. 77: p. 266-274.&lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Brown, Louise P. and Endruweit, Andreas and Long, Andrew C. (2012) [http://eprints.nottingham.ac.uk/id/eprint/2052 Advanced geometry modelling of 3D woven reinforcements in polymer composites: processing and performance analysis]. In: Fourth World Conference on 3D Fabrics and their Applications, 10-11 Sep 2012, Aachen, Germany.&lt;br /&gt;
&lt;br /&gt;
* X Zeng, L P Brown, A Endruweit, M Matveev, and A.C. Long, [http://www.sciencedirect.com/science/article/pii/S1359835X13002704 Geometrical modelling of 3D woven reinforcements for polymer composites: Prediction of fabric permeability and composite mechanical properties]. Composites Part A, 2014. 56(0): p. 150-160.&lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Long, A.C. and Clifford, M.J. and Probst-Schendzielorz, S. and Schmitt, M.W. (2011) [http://eprints.nottingham.ac.uk/id/eprint/2805 Automated finite element modelling of 3D woven textiles]. In: Third World Conference on 3D Fabrics and their Applications., 20-21 April 2011, Wuhan, China.. &lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Long, Andew C.A. and Ashcroft, Ian and Potluri, Prasad (2015) [http://eprints.nottingham.ac.uk/id/eprint/28920 Fibre architecture design of 3D woven composite with genetic algorithms: a unit cell based optimisation framework and performance assessment]. In: 20th International Conference on Composite Materials, 19-24 July 2015, Copenhagen, Denmark.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Publications</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2022-01-26T10:29:34Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Publications using TexGen:&lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Gommer, Frank and Zeng, Xuesen and Long, Andrew C. (2016) [http://eprints.nottingham.ac.uk/id/eprint/37018 Modelling framework for optimum multiaxial 3D woven textile composites]. In: 7th World Conference in 3D Fabrics and Their Applications, 8-9 Sept 2016, Roubaix, France.&lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Yan, Shibo and Zeng, Xuesen and Long, Andrew C. (2015) [http://eprints.nottingham.ac.uk/id/eprint/28919 Mesoscale geometric modelling of bifurcation in 3D woven T-beam preforms]. In: 12th International Conference on Textile Composites, 26-29 May 2015, Raleigh, NC, USA.. &lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Zeng, Xuesen and Long, Andrew C. and Brooks, Richard and Jones, I. Arthur (2013) [http://eprints.nottingham.ac.uk/id/eprint/3268 Predicting the coefficient of thermal expansion for textile composites based on a unit cell approach]. In: Texcomp-11 Conference, 16-20 September 2013, Leuven, Belgium. &lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Zeng, Xuesen and Long, Andrew.C. and Jones, I. Arthur (2013) [http://eprints.nottingham.ac.uk/id/eprint/3267 Recent developments in the realistic geometric modelling of textile structures using TexGen]. In: 1st International Conference on Digital Technologies for the Textile Industries, 5-6 Sept 2013, Manchester, UK.&lt;br /&gt;
&lt;br /&gt;
* Espadas-Escalante, J.J., N.P. van Dijk, and P. Isaksson, [https://www.sciencedirect.com/science/article/pii/S0263822316317901 A study on the influence of boundary conditions in computational homogenization of periodic structures with application to woven composites]. Composite Structures, 2017. 160: p. 529-537.&lt;br /&gt;
&lt;br /&gt;
* Espadas-Escalante, J.J., N.P. van Dijk, and P. Isaksson, [https://www.sciencedirect.com/science/article/pii/S0263822317320202?via%3Dihub The effect of free-edges and layer shifting on intralaminar and interlaminar stresses in woven composites]. Composite Structures, 2018. 185: p. 212-220.&lt;br /&gt;
&lt;br /&gt;
* Ferguson, J.C., F. Semeraro, J.M. Thornton, F. Panerai, A. Borner, and N.N. Mansour, [https://www-sciencedirect-com.nottingham.idm.oclc.org/science/article/pii/S235271102100090X?via%3Dihub Update 3.0 to “PuMA: The Porous Microstructure Analysis software&amp;quot;], (PII:S2352711018300281). SoftwareX, 2021. 15: p. 100775.&lt;br /&gt;
** [https://www.youtube.com/watch?v=zWFCNtA_xJo&amp;amp;list=PLSrX6q3Z64cHlCAtnoOQpYv6b2HPhSoq7&amp;amp;index=10 Video on pumapy: Weave Generation]&lt;br /&gt;
&lt;br /&gt;
* Gommer, F. and Endruweit, A. and Long, A.C. (2016) [ 	http://eprints.nottingham.ac.uk/id/eprint/33276 Quantification of micro-scale variability in fibre bundles]. Composites Part A: Applied Science and Manufacturing, 87 . pp. 131-137. ISSN 1359-835X &lt;br /&gt;
&lt;br /&gt;
* Gommer, Frank and Wedgwood, Kyle C.A. and Brown, Louise P. (2015) [http://eprints.nottingham.ac.uk/id/eprint/29642 Stochastic reconstruction of filament paths in fibre bundles based on two-dimensional input data]. Composites Part A: Applied Science and Manufacturing, 76 . pp. 262-271. ISSN 1359-835X &lt;br /&gt;
&lt;br /&gt;
* F Gommer, L P Brown, and K C A Wedgwood, [http://dx.doi.org/10.1016/j.compositesa.2015.11.031 Analytical method using gamma functions for determining areas of power elliptical shapes for use in geometrical textile models], Composites Part A: Applied Science and Manufacturing, 2016. 81: p. 222-224.&lt;br /&gt;
&lt;br /&gt;
* F Gommer, L P Brown, and R. Brooks, [http://eprints.nottingham.ac.uk/id/eprint/31111 Quantification of mesoscale variability and geometrical reconstruction of a textile]. Journal of Composite Materials, 2015. 0(0): p. 1-12&lt;br /&gt;
&lt;br /&gt;
* Green, S.D., M.Y. Matveev, A.C. Long, D. Ivanov, and S.R. Hallett, Mechanical modelling of 3D woven composites considering realistic unit cell geometry. Composite Structures, 2014. 118: p. 284-293.&lt;br /&gt;
&lt;br /&gt;
* Lin, H., L.P. Brown, and A.C. Long, [http://www.scientific.net/AMR.331.44 Modelling and Simulating Textile Structures using TexGen]. Advanced Materials Research, 2011. 331: p. 44-47.&lt;br /&gt;
&lt;br /&gt;
* H. Lin, A.C. Long, M. Sherburn, M. J. Clifford, [https://link.springer.com/content/pdf/10.1007%2Fs12289-008-0241-7.pdf Modelling of mechanical behaviour for woven fabrics under combined loading], International Journal of material forming, Spring/ESAFORM 2008&lt;br /&gt;
&lt;br /&gt;
* H Lin, M Sherburn, J Crookston, A C Long, M J Clifford, I A Jones. [http://iopscience.iop.org/article/10.1088/0965-0393/16/3/035010 Finite element modelling of fabric compression], Modelling and Simulation in Materials Science and Engineering, Vol.16, n3, 2008&lt;br /&gt;
&lt;br /&gt;
* H Lin, M J Clifford, A C Long, M Sherburn. [http://iopscience.iop.org/article/10.1088/0965-0393/17/1/015008/pdf Finite element modelling of fabric shear], Modelling and Simulation in Materials Science and Engineering, Vol.17, n1, 2009&lt;br /&gt;
&lt;br /&gt;
* H. Lin, X. Zeng, M. Sherburn, A. C. Long and M. J. Clifford. [http://journals.sagepub.com/doi/pdf/10.1177/0040517511418562 Automated geometric modelling of textile structures], Textile Research Journal, v82, n16, 2012, pp. 1689-1702.&lt;br /&gt;
&lt;br /&gt;
* Matveev, Mikhail Y. (2015) [http://eprints.nottingham.ac.uk/id/eprint/29419 Effect of variabilities on mechanical properties of textile composites]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Matveev, Mikhail Y. and Long, Andrew C. and Brown, Louise P. and Jones, I. Arthur (2016) [http://eprints.nottingham.ac.uk/id/eprint/34301 Effects of layer shift and yarn path variability on mechanical properties of a twill weave composite]. Journal of Composite Materials . ISSN 0021-9983 &lt;br /&gt;
&lt;br /&gt;
* Pan, Qing (2016) [http://eprints.nottingham.ac.uk/id/eprint/33396 Multi-scale modelling and material characterisation of textile composites for aerospace applications]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Ruijter, Wout (2009) [http://eprints.nottingham.ac.uk/id/eprint/10761 Analysis of mechanical properties of woven textile composites as a function of textile geometry]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Sherburn, M., A. Long, A. Jones, J. Crookston, and L. Brown, Prediction of textile geometry using an energy minimization approach. Journal of Industrial Textiles, 2012. 41(4): p. 345-369.&lt;br /&gt;
&lt;br /&gt;
* Sherburn, Martin (2007) [http://eprints.nottingham.ac.uk/id/eprint/10303 Geometric and Mechanical Modelling of Textiles]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Wong, Chee Chiew (2006) [http://eprints.nottingham.ac.uk/id/eprint/10294 Modelling the effects of textile preform architecture on permeability]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* C.C. Wong, A.C. Long, M. Sherburn, F. Robitaille, P. Harrison, C.D. Rudd. [https://www.sciencedirect.com/science/article/pii/S1359835X05000424 Comparisons of novel and efficient approaches for permeability prediction based on the fabric architecture], Composites Part A 37(6) 2006 847-857&lt;br /&gt;
&lt;br /&gt;
* C.C. Wong, A.C. Long. [ https://doi.org/10.1179/174328906X103088 Modelling variations of textile fabric permeability at mesoscopic scale], Plastics Rubber and Composites, 35(3) 2006 101-111&lt;br /&gt;
&lt;br /&gt;
* X Zeng, A Endruweit, L P Brown, and A.C. Long, [http://www.sciencedirect.com/science/article/pii/S1359835X15001232 Numerical prediction of in-plane permeability for multilayer woven fabrics with manufacture-induced deformation]. Composites Part A: Applied Science and Manufacturing, 2015. 77: p. 266-274.&lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Brown, Louise P. and Endruweit, Andreas and Long, Andrew C. (2012) [http://eprints.nottingham.ac.uk/id/eprint/2052 Advanced geometry modelling of 3D woven reinforcements in polymer composites: processing and performance analysis]. In: Fourth World Conference on 3D Fabrics and their Applications, 10-11 Sep 2012, Aachen, Germany.&lt;br /&gt;
&lt;br /&gt;
* X Zeng, L P Brown, A Endruweit, M Matveev, and A.C. Long, [http://www.sciencedirect.com/science/article/pii/S1359835X13002704 Geometrical modelling of 3D woven reinforcements for polymer composites: Prediction of fabric permeability and composite mechanical properties]. Composites Part A, 2014. 56(0): p. 150-160.&lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Long, A.C. and Clifford, M.J. and Probst-Schendzielorz, S. and Schmitt, M.W. (2011) [http://eprints.nottingham.ac.uk/id/eprint/2805 Automated finite element modelling of 3D woven textiles]. In: Third World Conference on 3D Fabrics and their Applications., 20-21 April 2011, Wuhan, China.. &lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Long, Andew C.A. and Ashcroft, Ian and Potluri, Prasad (2015) [http://eprints.nottingham.ac.uk/id/eprint/28920 Fibre architecture design of 3D woven composite with genetic algorithms: a unit cell based optimisation framework and performance assessment]. In: 20th International Conference on Composite Materials, 19-24 July 2015, Copenhagen, Denmark.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Publications</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2022-01-26T10:23:01Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Publications using TexGen:&lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Gommer, Frank and Zeng, Xuesen and Long, Andrew C. (2016) [http://eprints.nottingham.ac.uk/id/eprint/37018 Modelling framework for optimum multiaxial 3D woven textile composites]. In: 7th World Conference in 3D Fabrics and Their Applications, 8-9 Sept 2016, Roubaix, France.&lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Yan, Shibo and Zeng, Xuesen and Long, Andrew C. (2015) [http://eprints.nottingham.ac.uk/id/eprint/28919 Mesoscale geometric modelling of bifurcation in 3D woven T-beam preforms]. In: 12th International Conference on Textile Composites, 26-29 May 2015, Raleigh, NC, USA.. &lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Zeng, Xuesen and Long, Andrew C. and Brooks, Richard and Jones, I. Arthur (2013) [http://eprints.nottingham.ac.uk/id/eprint/3268 Predicting the coefficient of thermal expansion for textile composites based on a unit cell approach]. In: Texcomp-11 Conference, 16-20 September 2013, Leuven, Belgium. &lt;br /&gt;
&lt;br /&gt;
* Brown, Louise P. and Zeng, Xuesen and Long, Andrew.C. and Jones, I. Arthur (2013) [http://eprints.nottingham.ac.uk/id/eprint/3267 Recent developments in the realistic geometric modelling of textile structures using TexGen]. In: 1st International Conference on Digital Technologies for the Textile Industries, 5-6 Sept 2013, Manchester, UK.&lt;br /&gt;
&lt;br /&gt;
* Espadas-Escalante, J.J., N.P. van Dijk, and P. Isaksson, [https://www.sciencedirect.com/science/article/pii/S0263822316317901 A study on the influence of boundary conditions in computational homogenization of periodic structures with application to woven composites]. Composite Structures, 2017. 160: p. 529-537.&lt;br /&gt;
&lt;br /&gt;
* Espadas-Escalante, J.J., N.P. van Dijk, and P. Isaksson, [https://www.sciencedirect.com/science/article/pii/S0263822317320202?via%3Dihub The effect of free-edges and layer shifting on intralaminar and interlaminar stresses in woven composites]. Composite Structures, 2018. 185: p. 212-220.&lt;br /&gt;
&lt;br /&gt;
* Ferguson, J.C., F. Semeraro, J.M. Thornton, F. Panerai, A. Borner, and N.N. Mansour, [https://www-sciencedirect-com.nottingham.idm.oclc.org/science/article/pii/S235271102100090X?via%3Dihub Update 3.0 to “PuMA: The Porous Microstructure Analysis software&amp;quot;], (PII:S2352711018300281). SoftwareX, 2021. 15: p. 100775.&lt;br /&gt;
&lt;br /&gt;
* Gommer, F. and Endruweit, A. and Long, A.C. (2016) [ 	http://eprints.nottingham.ac.uk/id/eprint/33276 Quantification of micro-scale variability in fibre bundles]. Composites Part A: Applied Science and Manufacturing, 87 . pp. 131-137. ISSN 1359-835X &lt;br /&gt;
&lt;br /&gt;
* Gommer, Frank and Wedgwood, Kyle C.A. and Brown, Louise P. (2015) [http://eprints.nottingham.ac.uk/id/eprint/29642 Stochastic reconstruction of filament paths in fibre bundles based on two-dimensional input data]. Composites Part A: Applied Science and Manufacturing, 76 . pp. 262-271. ISSN 1359-835X &lt;br /&gt;
&lt;br /&gt;
* F Gommer, L P Brown, and K C A Wedgwood, [http://dx.doi.org/10.1016/j.compositesa.2015.11.031 Analytical method using gamma functions for determining areas of power elliptical shapes for use in geometrical textile models], Composites Part A: Applied Science and Manufacturing, 2016. 81: p. 222-224.&lt;br /&gt;
&lt;br /&gt;
* F Gommer, L P Brown, and R. Brooks, [http://eprints.nottingham.ac.uk/id/eprint/31111 Quantification of mesoscale variability and geometrical reconstruction of a textile]. Journal of Composite Materials, 2015. 0(0): p. 1-12&lt;br /&gt;
&lt;br /&gt;
* Green, S.D., M.Y. Matveev, A.C. Long, D. Ivanov, and S.R. Hallett, Mechanical modelling of 3D woven composites considering realistic unit cell geometry. Composite Structures, 2014. 118: p. 284-293.&lt;br /&gt;
&lt;br /&gt;
* Lin, H., L.P. Brown, and A.C. Long, [http://www.scientific.net/AMR.331.44 Modelling and Simulating Textile Structures using TexGen]. Advanced Materials Research, 2011. 331: p. 44-47.&lt;br /&gt;
&lt;br /&gt;
* H. Lin, A.C. Long, M. Sherburn, M. J. Clifford, [https://link.springer.com/content/pdf/10.1007%2Fs12289-008-0241-7.pdf Modelling of mechanical behaviour for woven fabrics under combined loading], International Journal of material forming, Spring/ESAFORM 2008&lt;br /&gt;
&lt;br /&gt;
* H Lin, M Sherburn, J Crookston, A C Long, M J Clifford, I A Jones. [http://iopscience.iop.org/article/10.1088/0965-0393/16/3/035010 Finite element modelling of fabric compression], Modelling and Simulation in Materials Science and Engineering, Vol.16, n3, 2008&lt;br /&gt;
&lt;br /&gt;
* H Lin, M J Clifford, A C Long, M Sherburn. [http://iopscience.iop.org/article/10.1088/0965-0393/17/1/015008/pdf Finite element modelling of fabric shear], Modelling and Simulation in Materials Science and Engineering, Vol.17, n1, 2009&lt;br /&gt;
&lt;br /&gt;
* H. Lin, X. Zeng, M. Sherburn, A. C. Long and M. J. Clifford. [http://journals.sagepub.com/doi/pdf/10.1177/0040517511418562 Automated geometric modelling of textile structures], Textile Research Journal, v82, n16, 2012, pp. 1689-1702.&lt;br /&gt;
&lt;br /&gt;
* Matveev, Mikhail Y. (2015) [http://eprints.nottingham.ac.uk/id/eprint/29419 Effect of variabilities on mechanical properties of textile composites]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Matveev, Mikhail Y. and Long, Andrew C. and Brown, Louise P. and Jones, I. Arthur (2016) [http://eprints.nottingham.ac.uk/id/eprint/34301 Effects of layer shift and yarn path variability on mechanical properties of a twill weave composite]. Journal of Composite Materials . ISSN 0021-9983 &lt;br /&gt;
&lt;br /&gt;
* Pan, Qing (2016) [http://eprints.nottingham.ac.uk/id/eprint/33396 Multi-scale modelling and material characterisation of textile composites for aerospace applications]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Ruijter, Wout (2009) [http://eprints.nottingham.ac.uk/id/eprint/10761 Analysis of mechanical properties of woven textile composites as a function of textile geometry]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Sherburn, M., A. Long, A. Jones, J. Crookston, and L. Brown, Prediction of textile geometry using an energy minimization approach. Journal of Industrial Textiles, 2012. 41(4): p. 345-369.&lt;br /&gt;
&lt;br /&gt;
* Sherburn, Martin (2007) [http://eprints.nottingham.ac.uk/id/eprint/10303 Geometric and Mechanical Modelling of Textiles]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* Wong, Chee Chiew (2006) [http://eprints.nottingham.ac.uk/id/eprint/10294 Modelling the effects of textile preform architecture on permeability]. PhD thesis, University of Nottingham. &lt;br /&gt;
&lt;br /&gt;
* C.C. Wong, A.C. Long, M. Sherburn, F. Robitaille, P. Harrison, C.D. Rudd. [https://www.sciencedirect.com/science/article/pii/S1359835X05000424 Comparisons of novel and efficient approaches for permeability prediction based on the fabric architecture], Composites Part A 37(6) 2006 847-857&lt;br /&gt;
&lt;br /&gt;
* C.C. Wong, A.C. Long. [ https://doi.org/10.1179/174328906X103088 Modelling variations of textile fabric permeability at mesoscopic scale], Plastics Rubber and Composites, 35(3) 2006 101-111&lt;br /&gt;
&lt;br /&gt;
* X Zeng, A Endruweit, L P Brown, and A.C. Long, [http://www.sciencedirect.com/science/article/pii/S1359835X15001232 Numerical prediction of in-plane permeability for multilayer woven fabrics with manufacture-induced deformation]. Composites Part A: Applied Science and Manufacturing, 2015. 77: p. 266-274.&lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Brown, Louise P. and Endruweit, Andreas and Long, Andrew C. (2012) [http://eprints.nottingham.ac.uk/id/eprint/2052 Advanced geometry modelling of 3D woven reinforcements in polymer composites: processing and performance analysis]. In: Fourth World Conference on 3D Fabrics and their Applications, 10-11 Sep 2012, Aachen, Germany.&lt;br /&gt;
&lt;br /&gt;
* X Zeng, L P Brown, A Endruweit, M Matveev, and A.C. Long, [http://www.sciencedirect.com/science/article/pii/S1359835X13002704 Geometrical modelling of 3D woven reinforcements for polymer composites: Prediction of fabric permeability and composite mechanical properties]. Composites Part A, 2014. 56(0): p. 150-160.&lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Long, A.C. and Clifford, M.J. and Probst-Schendzielorz, S. and Schmitt, M.W. (2011) [http://eprints.nottingham.ac.uk/id/eprint/2805 Automated finite element modelling of 3D woven textiles]. In: Third World Conference on 3D Fabrics and their Applications., 20-21 April 2011, Wuhan, China.. &lt;br /&gt;
&lt;br /&gt;
* Zeng, Xuesen and Long, Andew C.A. and Ashcroft, Ian and Potluri, Prasad (2015) [http://eprints.nottingham.ac.uk/id/eprint/28920 Fibre architecture design of 3D woven composite with genetic algorithms: a unit cell based optimisation framework and performance assessment]. In: 20th International Conference on Composite Materials, 19-24 July 2015, Copenhagen, Denmark.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2021-08-23T08:57:00Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following documentation is available:&lt;br /&gt;
&lt;br /&gt;
* [[User Guide]] - Guide to using the TexGen graphical user interface&lt;br /&gt;
* [[Scripting Guide]] - Guide to writing Python scripts for generating TexGen models&lt;br /&gt;
* [http://texgen.sourceforge.net/api/ API Reference Guide] - Reference guide for Python scripting&lt;br /&gt;
* [[TG3 File Format]] - TexGen save file format description&lt;br /&gt;
* [[Publications]] - Publications using TexGen&lt;br /&gt;
* [[TexGen Applications]] - Published applications of TexGen&lt;br /&gt;
* [http://eprints.nottingham.ac.uk/10303/1/thesis-final.pdf Modelling Theory] - Much of the theory behind TexGen can be found in this thesis (Chapters 2 and 3)&lt;br /&gt;
* Webinar 1: Introduction to Creating Textile Models Using TexGen (23/3/2021)&lt;br /&gt;
** [https://youtu.be/xDYRhVvwd2E Video]&lt;br /&gt;
** [http://texgen.sourceforge.net/documents/Webinar1_IntroductionToTexGen.pdf Slides] &lt;br /&gt;
* Webinar 2: Exporting TexGen Models for Simulation (27/4/2021)&lt;br /&gt;
** [https://youtu.be/BVME9evj0kc Video]&lt;br /&gt;
** [http://texgen.sourceforge.net/documents/webinar2_TexGenExport.pdf Slides] &lt;br /&gt;
* Presentations from the TexGen workshop on the 2nd May 2012&lt;br /&gt;
** [http://texgen.sourceforge.net/workshop/Texgen_overview.pdf A general overview of the development and use of TexGen]&lt;br /&gt;
** [http://texgen.sourceforge.net/workshop/TexGenWorkshop_Geometry_modelling.pdf A guide to geometry modelling using TexGen]&lt;br /&gt;
** [http://texgen.sourceforge.net/workshop/Application_of_TexGen_to_mechanical_modelling.pdf Application of TexGen to mechanical modelling]&lt;br /&gt;
** [http://texgen.sourceforge.net/workshop/TexGen_tutorial_for_FE_analysis.pdf Tutorials showing use of TexGen for FE and CFD analysis] - The CXFImportVTK file used in the CFD analysis is available for download [https://sourceforge.net/projects/texgen/files/texgen/ here]. Alternately the Abaqus input file produced by TexGen can be imported directly into ANSYS/CFX as shown here: [[ANSYS/CFX Export]]&lt;br /&gt;
* [[Extraction of Material Properties using Voxel Meshing and Abaqus]] - Guide to creating Abaqus input file using voxel mesh export and use of script provided with TexGen to extract material properties after running Abaqus simulation&lt;br /&gt;
* [[Abaqus UMAT Subroutine for Calculation of Localised Yarn Properties]]&lt;br /&gt;
* [[ANSYS/CFX Export]] - Importing TexGen model into ANSYS CFX&lt;br /&gt;
* [[Using Octree Refinement and Mesh Smoothing]]&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2021-08-23T08:55:45Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following documentation is available:&lt;br /&gt;
&lt;br /&gt;
* [[User Guide]] - Guide to using the TexGen graphical user interface&lt;br /&gt;
* [[Scripting Guide]] - Guide to writing Python scripts for generating TexGen models&lt;br /&gt;
* [http://texgen.sourceforge.net/api/ API Reference Guide] - Reference guide for Python scripting&lt;br /&gt;
* [[TG3 File Format]] - TexGen save file format description&lt;br /&gt;
* [[Publications]] - Publications using TexGen&lt;br /&gt;
* [[TexGen Applications]] - Published applications of TexGen&lt;br /&gt;
* [http://eprints.nottingham.ac.uk/10303/1/thesis-final.pdf Modelling Theory] - Much of the theory behind TexGen can be found in this thesis (Chapters 2 and 3)&lt;br /&gt;
* Webinar 1: Introduction to Creating Textile Models Using TexGen (23/3/2021)&lt;br /&gt;
** [https://youtu.be/xDYRhVvwd2E Video]&lt;br /&gt;
** [http://texgen.sourceforge.net/documents/Webinar1_IntroductionToTexGen.pdf Slides] &lt;br /&gt;
* Webinar 2: Exporting TexGen Models for Simulation (27/4/2021)&lt;br /&gt;
** [https://youtu.be/BVME9evj0kc Video]&lt;br /&gt;
** [http://texgen.sourceforge.net/documents/webinar2_TexGenExport.pdf Slides] &lt;br /&gt;
* Presentations from the TexGen workshop on the 2nd May 2012&lt;br /&gt;
** [http://texgen.sourceforge.net/workshop/Texgen_overview.pdf A general overview of the development and use of TexGen]&lt;br /&gt;
** [http://texgen.sourceforge.net/workshop/TexGenWorkshop_Geometry_modelling.pdf A guide to geometry modelling using TexGen]&lt;br /&gt;
** [http://texgen.sourceforge.net/workshop/Application_of_TexGen_to_mechanical_modelling.pdf Application of TexGen to mechanical modelling]&lt;br /&gt;
** [http://texgen.sourceforge.net/workshop/TexGen_tutorial_for_FE_analysis.pdf] Tutorials showing use of TexGen for FE and CFD analysis - The CXFImportVTK file used in the CFD analysis is available for download [https://sourceforge.net/projects/texgen/files/texgen/ here]. Alternately the Abaqus input file produced by TexGen can be imported directly into ANSYS/CFX as shown here: [[ANSYS/CFX Export]]&lt;br /&gt;
* [[Extraction of Material Properties using Voxel Meshing and Abaqus]] - Guide to creating Abaqus input file using voxel mesh export and use of script provided with TexGen to extract material properties after running Abaqus simulation&lt;br /&gt;
* [[Abaqus UMAT Subroutine for Calculation of Localised Yarn Properties]]&lt;br /&gt;
* [[ANSYS/CFX Export]] - Importing TexGen model into ANSYS CFX&lt;br /&gt;
* [[Using Octree Refinement and Mesh Smoothing]]&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Compiling from Source</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2021-07-14T16:20:45Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Get TexGen from Subversion repository */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to compile TexGen and &amp;#039;&amp;#039;&amp;#039;all&amp;#039;&amp;#039;&amp;#039; of its modules, the following software is required:&lt;br /&gt;
&lt;br /&gt;
The following programs are needed to build TexGen:&lt;br /&gt;
* [http://www.cmake.org/ CMake]&lt;br /&gt;
* [http://www.swig.org/ SWIG]&lt;br /&gt;
&lt;br /&gt;
The following libraries are needed to link to TexGen:&lt;br /&gt;
* [http://www.vtk.org/ VTK]&lt;br /&gt;
* [http://www.wxwidgets.org/ wxWidgets]&lt;br /&gt;
* [http://www.opencascade.org/ OpenCascade]&lt;br /&gt;
* [http://www.python.org/ Python]&lt;br /&gt;
&lt;br /&gt;
However to perform a minimum build of TexGen with none of the additional modules you only require CMake and a C++ compiler. It is recommended to begin with a minimum build, once that is working try adding modules one at a time. A list of modules along with dependencies is shown below:&lt;br /&gt;
&lt;br /&gt;
* Python interface: Python, SWIG&lt;br /&gt;
* Renderer: VTK&lt;br /&gt;
* Export: OpenCascade&lt;br /&gt;
* GUI: wxWidgets, Renderer, Python interface&lt;br /&gt;
* Unit tests: CPPUnit&lt;br /&gt;
&lt;br /&gt;
A graphical representation of the modules and their dependencies can also be found in the [http://texgen.sourceforge.net/api/ TexGen API].&lt;br /&gt;
&lt;br /&gt;
If you want to get the source code from GitHub you will need to install [https://git-scm.com/downloads Git] by following the instructions below. Note that this is the very latest development source and so may it contain some bugs and unfinished features. However it is very easy to keep up to date with the latest version of TexGen using this method and will allow you to keep any modifications you have made to the source when updating. If you find a bug or implement new features that may be useful to the rest of the community please send a pull request and they will be incorporated into TexGen following review.&lt;br /&gt;
&lt;br /&gt;
Alternatively the stable source code can be downloaded as a [http://sourceforge.net/project/showfiles.php?group_id=181000 tarball]. Download the latest file release named &amp;#039;&amp;#039;texgen-3.x.x.tar.gz&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Windows (Microsoft Visual Studio C++, recommended method) ==&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
It is assumed that Microsoft Visual Studio is already installed.  If it isn&amp;#039;t and you plan to use it, then install it.  It may be possible to use the free [http://www.microsoft.com/express/ Visual Studio Express]; if anyone tries this and finds out one way or the other, please post the information either here or in the [http://texgen.sourceforge.net/phpBB2/index.php forum]. Brief instructions on how to install the various 3rd party libraries under windows are given below. Note that you do not need to install all of these in order to perform the minimal build. Only CMake is absolutely required.&lt;br /&gt;
TexGen 3.11.0 was built with VS2017. All of the libraries used can be built with this version of Visual Studio.&lt;br /&gt;
&lt;br /&gt;
==== CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and install, selecting &amp;#039;Add CMake to the system PATH for all users&amp;#039; (select current user if this is not permissible on your system).&lt;br /&gt;
&lt;br /&gt;
==== Git ====&lt;br /&gt;
&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and install it.&lt;br /&gt;
&lt;br /&gt;
==== SWIG ====&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/ Download] version 4.0.0 of the windows .zip files and extract to a suitable location (e.g. c:\Program Files\swigwin-4.0.0).&lt;br /&gt;
&lt;br /&gt;
==== Python ====&lt;br /&gt;
&lt;br /&gt;
[http://www.python.org/ Download Python] and install.  Note that TexGen is currently built with Python 2.7.&lt;br /&gt;
&lt;br /&gt;
For a Release build the include files and python27.lib provided with the standard installation can be used. &lt;br /&gt;
&lt;br /&gt;
For a Debug build it is necessary to build a debug version of Python. Download the latest [https://www.python.org/downloads/source/ source release] and follow the instructions in the README for building for your environment. For Visual Studio use the VS solution in the PCBuild folder. &lt;br /&gt;
Note that for newer VS versions it is necessary to apply this [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/issues/161 patch] in order for the build to be successful.&lt;br /&gt;
&lt;br /&gt;
==== OpenCascade ====&lt;br /&gt;
&lt;br /&gt;
[http://www.opencascade.org/getocc/download/ Download OpenCascade] and install; this extracts the files to a directory. If the installation doesn&amp;#039;t start automatically, run the &amp;#039;install.bat&amp;#039; file located the directory where the files where extracted (read &amp;#039;readme.htm&amp;#039; file in the same directory for more information).  Choose &amp;#039;complete installation&amp;#039; and tick the box to set the environment variables.  The current version of TexGen is built with OpenCascade version 7.0.0.&lt;br /&gt;
&lt;br /&gt;
==== VTK ====&lt;br /&gt;
&lt;br /&gt;
[https://vtk.org/download/ Download] version 6.3.0 of the source files and extract them. Instructions for building VTK using CMake are given on the [https://vtk.org/Wiki/VTK/Configure_and_Build VTK webpage] The following CMake settings should be set:&lt;br /&gt;
&lt;br /&gt;
 BUILD_EXAMPLES           OFF&lt;br /&gt;
 BUILD_SHARED_LIBS        OFF&lt;br /&gt;
 VTK_USE_MPEG2_ENCODER    OFF&lt;br /&gt;
 VTK_USE_PARALLEL         OFF&lt;br /&gt;
 VTK_USE_RENDERING        ON&lt;br /&gt;
 VTK_WRAP_JAVA            OFF&lt;br /&gt;
 VTK_WRAP_PYTHON          OFF&lt;br /&gt;
 VTK_WRAP_TCL             OFF&lt;br /&gt;
&lt;br /&gt;
You may be able to get things working with different settings, however these are the settings I use and are known to work.&lt;br /&gt;
&lt;br /&gt;
==== wxWidgets ====&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/downloads/ Download] and install the windows version 3.0.4 of wxWidgets (wxMSW). It is then necessary to compile wxWidgets from source, detailed instructions on how to do this can be found in &amp;#039;install.txt&amp;#039; located in the &amp;#039;docs\msw&amp;#039; subfolder. The main steps are to open &amp;#039;wx.dsw&amp;#039; with MSVC located in the &amp;#039;build\msw&amp;#039; subfolder and compile both Release and Debug configurations (The configuration can be selected from the drop down box on the main toolbar in Visual Studio. Universal and DLL versions need not be compiled).&lt;br /&gt;
&lt;br /&gt;
==== CppUnit ====&lt;br /&gt;
To build the test module download [https://www.freedesktop.org/wiki/Software/cppunit/ cppunit]&lt;br /&gt;
&lt;br /&gt;
The VS solution is in the Examples folder. When this is run, accept the option to upgrade to your version of VS and then build. The resulting cppunit.lib file can then be found in the /lib folder.&lt;br /&gt;
&lt;br /&gt;
=== Checkout TexGen source code from GitHub ===&lt;br /&gt;
* Create a directory where you would like to store the TexGen source code in Windows Explorer. &lt;br /&gt;
* Open a Git Bash shell within that folder.&lt;br /&gt;
* Type &lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
A new TexGen folder will have been created which contains a downloaded copy of the TexGen repository.&lt;br /&gt;
&lt;br /&gt;
=== Configuring the build system with CMake ===&lt;br /&gt;
Run CMake from its shortcut on the Start menu. There are some general instructions on using CMake on the [https://cmake.org/cmake-tutorial/ CMake website] which are worth reading. You will need to fill in the source code location, this should point to where you checked out out the latest TexGen GitHub code or where you extracted the source code from the zip file. Also set where to place the binary files once they are compiled, this can be the same as the source directory, a subdirectory within the source directory or any other location.&lt;br /&gt;
&lt;br /&gt;
Once that is entered click &amp;#039;Configure&amp;#039; and choose the Visual Studio version which you have installed and click ok. You will initially get a number of error messages such as:&lt;br /&gt;
&lt;br /&gt;
 CMake Error: Swig was not found on the system. Please specify the location of Swig. (click OK)&lt;br /&gt;
 CMake Error: Error in configuration process, project files may be invalid. (click OK)&lt;br /&gt;
&lt;br /&gt;
This is normal, in order to get rid of the errors you will need to tell CMake where the various libraries you have installed can be found. This is done in the Cache Values sections.&lt;br /&gt;
&lt;br /&gt;
It is recommended to begin with a minimal build, this is achieved by setting the cache values as follows:&lt;br /&gt;
&lt;br /&gt;
 BUILD_CASCADE_EXPORT           OFF&lt;br /&gt;
 BUILD_DOCUMENTATION            OFF&lt;br /&gt;
 BUILD_EXAMPLES                 OFF&lt;br /&gt;
 BUILD_GUI                      OFF&lt;br /&gt;
 BUILD_PYTHON_INTERFACE         OFF&lt;br /&gt;
 BUILD_RENDERER                 OFF&lt;br /&gt;
 BUILD_SHARED                   ON&lt;br /&gt;
 BUILD_UNIT_TESTS               OFF&lt;br /&gt;
&lt;br /&gt;
Once these are set press configure again and you shouldn&amp;#039;t have any more errors/warnings. Press &amp;#039;OK&amp;#039; to generate the MSVC solution and project files. Configuring the various optional modules is explained in [[#Configuring optional modules]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring optional modules ===&lt;br /&gt;
&lt;br /&gt;
Once the minimal build is working you may want to switch on the optional modules. To do this open up CMake again and switch the modules you want to ON in the Cache Values then click Configure. You will most likely see some errors telling you it is unable to automatically find certain directories. You will need to specify these manually. An explanation of the different locations is listed below:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039;&amp;#039;&amp;#039; - This should be the folder where the TexGen python modules will be placed. Usually located in &amp;#039;C:\Python27\Lib\site-packages&amp;#039;, but this will depend on the version of Python installed and where you decided to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_DIR&amp;#039;&amp;#039;&amp;#039; -  This is the location where you extracted the SWIG executable. e.g. &amp;#039;C:\Program Files\swigwin-2.0.10&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SWIG_EXECUTABLE&amp;#039;&amp;#039;&amp;#039; - Same as root directory followed by &amp;#039;swig.exe&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_ROOT_DIR&amp;#039;&amp;#039;&amp;#039; - Location where you install wxWidgets. e.g. &amp;#039;C:/wxWidgets-3.0.4&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wxWidgets_LIB_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the wxWidgets libraries were compiled to, should be the same as the root directory followed by &amp;#039;lib/vc_lib&amp;#039; or &amp;#039;lib/vc_x64_lib&amp;#039; for 64-bit builds.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WX&amp;#039;&amp;#039;&amp;#039; - CMake may not automatically pick up the location of all libraries in which case these may need to be input manually. The image below shows the CMake GUI part way through specifying the library locations&lt;br /&gt;
[[Image:wxWidgetsCMake.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_INCLUDE_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade header files are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/inc&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/lib&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OPENCASCADE_DEBUG_LIBRARY_DIR&amp;#039;&amp;#039;&amp;#039; - Location where the OpenCascade debug libraries are located. e.g. &amp;#039;C:/OpenCASCADE7.0.0/win64/vc14/libd&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VTK_DIR&amp;#039;&amp;#039;&amp;#039; - Location of the VTK binary directory (note: not the source directory).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CPPUNIT_LIBRARY&amp;#039;&amp;#039;&amp;#039; - Location where the cppunit library file is located. e.g. &amp;#039;C:/cppunit-1.15.1/lib/cppunit.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After setting the directories manually, click on configure again. You may need to go through several iterations of changing parameters then pressing configure. Once you have finished changing parameters and have successfully pressed configure without error messages you can press the OK button to generate the build. Note: you can always come back to this at a later time to make changes.&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Find &amp;#039;TexGen.sln&amp;#039; which should be located in the directory where you told CMake to output the binary files to and open it with Microsoft Visual Studio.&lt;br /&gt;
&lt;br /&gt;
Set the configuration to &amp;#039;Release&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
If building the Graphical User Interface with Visual Studio 2008 or later open the properties page for the TexGenGUI project.  Select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Build the solution. Hopefully the project will have been compiled without errors.&lt;br /&gt;
&lt;br /&gt;
If you want to compile and execute the Graphical User Interface you will need to install it, you will not be able to execute it directly from the build directory. This is done by right click on the &amp;#039;INSTALL&amp;#039; project in the Solution Explorer and selecting Build. This will copy the Python modules into the Python site-packages directory so that they can be imported into scripts, and it will copy the executable along with other necessary files into &amp;#039;C:\Program Files\TexGen\&amp;#039; by default (this can be changed with the CMAKE_INSTALL_PREFIX cache value in CMake). TexGenGUI.exe should then be run from the installed location, if you attempt to run it directly from where it was compiled you will get some errors on launch.&lt;br /&gt;
&lt;br /&gt;
=== Building the documentation ===&lt;br /&gt;
&lt;br /&gt;
To build the documentation, [http://www.doxygen.nl/download.html Doxygen] and [https://graphviz.gitlab.io/download/ Graphviz] are required.  Open a command prompt in the &amp;#039;Docs&amp;#039; subdirectory of the source code and run &amp;#039;doxygen&amp;#039;. If the doxygen directory is not in your path, you must add it, or give the full path on the command line.&lt;br /&gt;
&lt;br /&gt;
=== Integrating TexGen with ABAQUS ===&lt;br /&gt;
&lt;br /&gt;
If you are using ABAQUS and wish to use TexGen Python scripting from within the ABAQUS/CAE environment, there are a few extra steps to perform. This is because ABAQUS comes packaged with its own version of Python, so any modules added to your standalone python installation will not be accessible by ABAQUS. You must compile the TexGen Python modules with the same version of Python as ABAQUS uses. The following table shows which version of Python is used in specific ABAQUS versions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ABAQUS Version !! Python Version&lt;br /&gt;
|-&lt;br /&gt;
| 6.6-1  || 2.3.3&lt;br /&gt;
|- &lt;br /&gt;
| 6.7-1  || 2.4.3 &lt;br /&gt;
|- &lt;br /&gt;
| 6.10-2 || 2.6.2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.14-1 || 2.7.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If your version of ABAQUS is not listed in the table above you can type &amp;#039;abaqus python -V&amp;#039; to check what version of Python is used (then please edit this page to update the table). You can obtain specific versions of Python from https://www.python.org/downloads/source/ .&lt;br /&gt;
&lt;br /&gt;
Additionally you will need to place the TexGen python modules inside ABAQUS&amp;#039; version of python. There are a few ways to accomplish this, the easiest is perhaps to set the CMake cache variable &amp;#039;PYTHON_SITEPACKAGES_DIR&amp;#039; point to the ABAQUS&amp;#039; python directory, e.g.:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR     C:\Abaqus\6.14-1\Python\Lib\&lt;br /&gt;
&lt;br /&gt;
Then when you build the INSTALL project in MSVC++ it will automatically copy the TexGen python modules to the ABAQUS&amp;#039; Python. Alternatively you can simply copy the files manually or modify Python&amp;#039;s search path to include the TexGen python modules, e.g. In python:&lt;br /&gt;
&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.path.append(&amp;#039;C:/Python27/Lib/site-packages/&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
There may also be a need to modify the file [source code location]/Installer/texgen.nsi.  The original version, lines 1-3 are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python25.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while on Jon&amp;#039;s version they are:&lt;br /&gt;
&lt;br /&gt;
 !define VERSION &amp;quot;3.3.0&amp;quot;&lt;br /&gt;
 !define PYTHONDLL python24.dll&lt;br /&gt;
 !define PYTHONVER &amp;quot;2.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error LNK1104: cannot open file &amp;#039;python25_d.lib&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; The windows installation of Python doesn&amp;#039;t come with the debug library (&amp;#039;python25_d.lib&amp;#039;, the _d part means debug). You should be able to compile in release mode however. If you really want to compile in debug mode you will need to compile Python from source and link to that. Or you can try to link to the release library &amp;#039;python25.lib&amp;#039; instead, easiest way to do that is to copy &amp;#039;python25.lib&amp;#039; to &amp;#039;python25_d.lib&amp;#039; but this may cause problems during linking or execution.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when compiling:&lt;br /&gt;
 fatal error C1083: Cannot open include file: &amp;#039;wx/wxprec.h&amp;#039;: No such file or directory&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Make sure that you have compiled wxWidgets and that the wxWidgets_XXX cache variables are set correctly in CMake.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I do not have a &amp;#039;libd&amp;#039; folder in &amp;#039;ros/win32&amp;#039; for OpenCASCADE.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; If you do not compile OpenCASCADE yourself then this folder does not exist. However it can be ignored if you are only interested in building the release version of TexGen. If you really want to compile the debug version please refer to the OpenCASCADE documentation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; Why do I get the error message: &amp;quot;The parameter is incorrect.&amp;quot; when launching TexGenGUI.exe?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; In the TexGenGUI Property Pages select Configuration Properties -&amp;gt; Manifest Tool -&amp;gt; Input and Output and change the Embed Manifest option to &amp;#039;No&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I am getting error messages at the stage of building GUI:[ 86%] Building CXX object GUI/CMakeFiles/TexGenGUI.dir/PrecompiledHeaders.cpp.o&lt;br /&gt;
In file included from /usr/include/python2.4/pyconfig.h:6,&lt;br /&gt;
                 from /usr/include/python2.4/Python.h:8,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:30,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/usr/include/python2.4/pyconfig-64.h:823:1: warning: &amp;quot;_FILE_OFFSET_BITS&amp;quot; redefined&lt;br /&gt;
&amp;lt;command line&amp;gt;:1:1: warning: this is the location of the previous definition&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/wx.h:15,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/defs.h:42:13: error: #error &amp;quot;No Target! You should use wx-config program for compilation flags!&amp;quot;&lt;br /&gt;
In file included from /data/include/wx-2.8/wx/cmndata.h:17,&lt;br /&gt;
                 from /data/include/wx-2.8/wx/wx.h:65,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.h:54,&lt;br /&gt;
                 from /data/Archive/TexGen/texgen-3.3.0/GUI/PrecompiledHeaders.cpp:20:&lt;br /&gt;
/data/include/wx-2.8/wx/encinfo.h:64:6: error: #error &amp;quot;Unsupported toolkit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and lots of othe warnings and error messages afterwards.&lt;br /&gt;
&lt;br /&gt;
The location of wx-config is correct in cmake; wxWidgets installation appears to have been successful; the system is Red Hat Linux 64-bit&lt;br /&gt;
&lt;br /&gt;
== Windows (Cygwin and gcc, alternate method) ==&lt;br /&gt;
A limited build (without graphics) can be made under cygwin, this is a UNIX emulation environment available at [http://www.cygwin.com www.cygwin.com]. &lt;br /&gt;
This can exist peacefully next to the native windows version. &lt;br /&gt;
Cygwin creates a unix-style file system within your windows installation. If you choose c:/cygwin as your install directory, your HOME will be at c:/cygwin/home/&amp;lt;username&amp;gt;/. &lt;br /&gt;
&lt;br /&gt;
=== Download cygwin and install packages ===&lt;br /&gt;
Install gcc, g++, wget, make and cmake using the setup.exe program from the cygwin website. &lt;br /&gt;
For the mesh generator and python interface to work we currently need VTK and swig. &lt;br /&gt;
&lt;br /&gt;
This downloads and installs swig from source (when starting the cygwin shell you can paste this into the command line, otherwise write it to a file and run it with sh). &lt;br /&gt;
 mkdir progs&lt;br /&gt;
 cd progs &lt;br /&gt;
 SWIG=swig-1.3.31&lt;br /&gt;
 wget -nc http://kent.dl.sourceforge.net/sourceforge/swig/$SWIG.tar.gz&lt;br /&gt;
 tar xzvf $SWIG.tar.gz &lt;br /&gt;
 cd $SWIG&lt;br /&gt;
 ./configure &lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This downloads and installs VTK from source, in the ccmake stage, use the cmake graphical commands to get a working install. &lt;br /&gt;
 VTK=vtk-6.3.0&lt;br /&gt;
 wget -nc https://vtk.org/download/&lt;br /&gt;
 tar xzvf $VTK.tar.gz&lt;br /&gt;
 mkdir vtkbin&lt;br /&gt;
 cd vtkbin&lt;br /&gt;
 ccmake ../VTK&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Install TexGen from source ===&lt;br /&gt;
Now we can proceed to install texgen, as an example we&amp;#039;ll work in ~/temp/texgen&lt;br /&gt;
 cd ~; mkdir temp; cd temp; mkdir texgen; cd texgen&lt;br /&gt;
 svn checkout svn//svn.code.sf.net/p/texgen/code/TexGen/trunk/ TexGen&lt;br /&gt;
 cd .. ; mkdir tbin; cd tbin&lt;br /&gt;
 ccmake ../texgen&lt;br /&gt;
 make &lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This should result in a working texgen install in ~/temp/texgen/tbin.&lt;br /&gt;
&lt;br /&gt;
== Unix ==&lt;br /&gt;
=== Notes ===&lt;br /&gt;
If you are installing to a system where you don&amp;#039;t have root access (i.e. this computer does not belong to you) you won&amp;#039;t be able to install the software using the default configure script. This is because by default software is installed to the /usr/local directory. If you are not a systems administrator then you will quite rightly not have write access to this folder. All is not lost! You can still install software into your home directory. In order to do this you should always call the configure script with the following parameter: --prefix=$HOME. This goes for all the software to be installed below. All executables will then be placed in ~/bin, libraries in ~/lib, includes in ~/include, etc...&lt;br /&gt;
&lt;br /&gt;
In the guide below the parameter is included in italic. If you do in fact have root access then it is recommended to omit this parameter and install to the default directory so that other users will also have access to the software.&lt;br /&gt;
&lt;br /&gt;
=== Get TexGen from GitHub repository ===&lt;br /&gt;
&lt;br /&gt;
==== Install Git ====&lt;br /&gt;
[https://git-scm.com/downloads Download Git] and unpack.&lt;br /&gt;
&lt;br /&gt;
==== Clone TexGen ====&lt;br /&gt;
Open a shell in folder you wish to place TexGen (e.g. ~/):&lt;br /&gt;
 git clone https://github.com/louisepb/TexGen.git&lt;br /&gt;
&lt;br /&gt;
=== Compile source ===&lt;br /&gt;
&lt;br /&gt;
==== Install CMake ====&lt;br /&gt;
&lt;br /&gt;
[http://www.cmake.org/HTML/Download.html Download CMake] and unpack.&lt;br /&gt;
Open a shell in extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==== Compile TexGen core ====&lt;br /&gt;
Open a shell in the folder with the TexGen source code (e.g. ~/TexGen):&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 cd bin&lt;br /&gt;
 ccmake ../&lt;br /&gt;
Press &amp;#039;c&amp;#039; to configure. When a warning pops up telling you it can&amp;#039;t find such and such a file press &amp;#039;e&amp;#039; to close it. You will now need to specify which components of TexGen to build and where their dependencies can be found. Use the up and down arrows to move the caret and press enter to modify options. Do this to set BUILD_GUI, BUILD_PYTHON_INTERFACE and BUILD_RENDERER to OFF. You are basically telling CMake not to attempt to build these components, which means that you won&amp;#039;t need to have installed their dependencies.&lt;br /&gt;
&lt;br /&gt;
Similarly to the --prefix=$HOME parameter to the configure script, you can tell CMake to install TexGen to your home directory by changing CMAKE_INSTALL_PREFIX to ~/. Note that it won&amp;#039;t actually install anything until you get type make install.&lt;br /&gt;
&lt;br /&gt;
Now press &amp;#039;c&amp;#039; again to update the changes.&lt;br /&gt;
&lt;br /&gt;
Hopefully now that all the additional modules have been switched off no errors will be shown. Press &amp;#039;g&amp;#039; to generate the makefiles and exit. At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Note that at this point you have only built and installed the TexGen Core library which doesn&amp;#039;t actually do anything on its own. If you plan to incorporate TexGen into your own C++ program then this is enough, however if you would like to interface with TexGen from a Python script or Graphical User Interface then follow the steps below.&lt;br /&gt;
&lt;br /&gt;
=== Compiling optional modules ===&lt;br /&gt;
==== Python interface ====&lt;br /&gt;
[http://www.python.org/download/ Download Python] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
[http://www.swig.org/download.html Download SWIG] and unpack.&lt;br /&gt;
Open a shell in the extracted folder and type:&lt;br /&gt;
 ./configure &amp;#039;&amp;#039;--prefix=$HOME&amp;#039;&amp;#039;&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Open a shell in the folder where you called ccmake from for the first time (e.g. ~/TexGen/bin):&lt;br /&gt;
 ccmake ../&lt;br /&gt;
&lt;br /&gt;
Use the up and down arrows to reach BUILD_PYTHON_INTERFACE and press Enter to set it to ON. Then press &amp;#039;c&amp;#039; to configure. You will probably get a warning saying you need to specify the location of SWIG and/or Python, press &amp;#039;e&amp;#039; to close it.&lt;br /&gt;
&lt;br /&gt;
Set the PYTHON_INCLUDE_PATH, PYTHON_LIBRARY, PYTHON_SITEPACKAGES_DIR, SWIG_DIR and SWIG_EXECUTABLE parameters correctly where necessary. If you have installed packages to your home directory then they should look something like this:&lt;br /&gt;
&lt;br /&gt;
 PYTHON_INCLUDE_PATH: ~/include/python2.7&lt;br /&gt;
 PYTHON_LIBRARY: ~/lib/python2.5/config/libpython2.7.a&lt;br /&gt;
 PYTHON_SITEPACKAGES_DIR: ~/lib/python2.7/site-packages&lt;br /&gt;
 SWIG_DIR: ~/bin&lt;br /&gt;
 SWIG_EXECUTABLE: ~/bin/swig&lt;br /&gt;
&lt;br /&gt;
Once that is done press &amp;#039;c&amp;#039; again. You may need perform this process over several iterations. When everything is set correctly press &amp;#039;g&amp;#039; to generate the makefiles.&lt;br /&gt;
&lt;br /&gt;
At the shell type:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Assuming the build completed without errors you should now be able to access TexGen functions from within Python. In order to check everything worked as planned open Python in interactive mode by typing:&lt;br /&gt;
 python&lt;br /&gt;
&lt;br /&gt;
Then from within Python type:&lt;br /&gt;
 from TexGen.Core import *&lt;br /&gt;
 CTexGen.GetInstance().GetVersion()&lt;br /&gt;
&lt;br /&gt;
This should display the version of TexGen installed.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q:&amp;#039;&amp;#039;&amp;#039; I get the following error when linking _Core.so:&lt;br /&gt;
 libpython2.5.a(abstract.o): relocation R_X86_64_32 against `a local symbol&amp;#039;&lt;br /&gt;
 can not be used when making a shared object; recompile with -fPIC&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A:&amp;#039;&amp;#039;&amp;#039; Try removing libpython2.5.a from the libraries to link to by setting PYTHON_LIBRARY to a bogus path, e.g.:&lt;br /&gt;
&lt;br /&gt;
PYTHON_LIBRARY: ~/&lt;br /&gt;
&lt;br /&gt;
By doing so you may receive a warning similar to this:&lt;br /&gt;
 Warning: Ignoring path found in link libraries for target: _Core, path is:&lt;br /&gt;
 /home/username. Expected a library name or a full path to a library name.&lt;br /&gt;
This warning may be ignored.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Download TexGen</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2021-05-18T11:23:59Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The most recent release executables for Windows are available [https://licensing.micragateway.org/product/texgen here]. Older versions can be downloaded from [https://sourceforge.net/projects/texgen/ Sourceforge]. For Linux please download and build the code from https://github.com/louisepb/TexGen.&lt;br /&gt;
From version 3.6.0 the default Windows download is the 64-bit version. Select the &amp;quot;Files&amp;quot; tab on the download page to see all download options.&lt;br /&gt;
&lt;br /&gt;
==Which version?==&lt;br /&gt;
There are two versions versions of the executable available: &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; and &amp;#039;&amp;#039;texgen-bundle-3.x.x.exe&amp;#039;&amp;#039;. TexGen requires the Python interpreter to be installed in order to run. The standard installation package named &amp;#039;&amp;#039;texgen-3.x.x.exe&amp;#039;&amp;#039; does not include Python and the Python interpreter must be preinstalled manually. The bundle installation package comes with the Python interpreter which means that no separate Python installation is required.&lt;br /&gt;
&lt;br /&gt;
From version 3.8.1 TexGen has been built with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issuses  with the bundled versions on some machines and therefore version 3.8.2 has been released with bundled versions for both Python26 and Python27.  If Python27 is required and the bundled version does not run this can be rectified by installing Python27 from here: https://www.python.org/downloads/&lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t know what Python is or you won&amp;#039;t be using it for anything other than TexGen then the bundle package is recommended. For experienced users, the standard installation package is preferable since it will integrate itself with an existing python installation giving existing Python scripts access to TexGen.&lt;br /&gt;
&lt;br /&gt;
==Citing TexGen==&lt;br /&gt;
We would also be grateful if you could acknowledge use of TexGen where appropriate and suggest using one of the following references:&lt;br /&gt;
&lt;br /&gt;
L P Brown and A C Long. &amp;quot;Modelling the geometry of textile reinforcements for composites: TexGen&amp;quot;, Chapter 8 in &amp;quot;Composite reinforcements for optimum performance (Second Edition)&amp;quot;, ed. P Boisse, Woodhead Publishing Ltd, 2021, ISBN: 978-0-12-819005-0.&lt;br /&gt;
https://doi.org/10.1016/B978-0-12-819005-0.00008-3&lt;br /&gt;
&lt;br /&gt;
[http://www.scientific.net/AMR.331.44 Lin, H., Brown, L. P. &amp;amp; Long, A. C. 2011. Modelling and Simulating Textile Structures using TexGen. Advanced Materials Research, 331, 44-47.]&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.2 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, March 11). louisepb/TexGen: TexGen v3.12.2 (Version v3.12.2). Zenodo. http://doi.org/10.5281/zenodo.4598477&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.1 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev, &amp;amp; George Spackman. (2021, February 12). louisepb/TexGen: TexGen v3.12.1 (Version v3.12.1). Zenodo. http://doi.org/10.5281/zenodo.4537855&lt;br /&gt;
&lt;br /&gt;
To reference version 3.12.0 please use:&lt;br /&gt;
Louise Brown, Mikhail Matveev &amp;amp; George Spackman. (2020, March 11). louisepb/TexGen: TexGen v3.12.0 (Version v3.12.0). Zenodo. http://doi.org/10.5281/zenodo.3706478&lt;br /&gt;
&lt;br /&gt;
To reference version 3.11.0 please use:&lt;br /&gt;
Brown, Louise P, &amp;amp; Sherburn, Martin. (2019, June 7). louisepb/TexGen: TexGen v3.11.0 (Version v3.11.0). Zenodo. http://doi.org/10.5281/zenodo.3241493&lt;br /&gt;
&lt;br /&gt;
To reference version 3.10.0 please use:&lt;br /&gt;
&amp;quot;Brown, Louise P, &amp;amp; Sherburn, Martin. (2017, December 13). louisepb/TexGen: TexGen v3.10.0 (Version v3.10.0). Zenodo. http://doi.org/10.5281/zenodo.1115604 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Script Library==&lt;br /&gt;
A selection of sample TexGen scripts for different types of textiles can be found on GitHub [https://github.com/louisepb/TexGenScripts TexGenScripts].  If you have scripts which you have written which you think would be of use to other users, and are willing to share, please send them to Louise Brown (louise.brown@nottingham.ac.uk) and we will add them to the library.&lt;br /&gt;
&lt;br /&gt;
==Feedback and help==&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.  Please note that if you join the forum there may be a slight delay before your membership is approved.  We will try to do this as quickly as possible but it is unfortunately necessary due to recent problems with spammers.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [http://sourceforge.net/tracker/?group_id=181000 sourceforge trackers].&lt;br /&gt;
&lt;br /&gt;
If you make use of TexGen in your work and publications please could you make it known on the forum.  This will both help other users and publicise your work.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Extraction of Material Properties using Voxel Meshing and Abaqus</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2021-04-29T15:36:52Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Create Abaqus Voxel File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This method creates an Abaqus input file by producing a mesh of regularly shaped hexahedral voxel elements for a textile produced by TexGen.  Periodic boundary condition equations are generated based on the paper &amp;#039;&amp;#039;&amp;quot;[http://www.sciencedirect.com/science/article/pii/S0167663603000620 Unit cells for micromechanical analyses of particle-refined composites]&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&amp;#039;&amp;#039;.  After the Abaqus simulation has been run the material properties are extracted by running a script, provided in the TexGen download, which interrogates the Abaqus .odb file.  The procedure is described in the following sections.&lt;br /&gt;
&lt;br /&gt;
==Create Textile==&lt;br /&gt;
*Create a textile either via the GUI or by running a script.  &lt;br /&gt;
*Assign properties to the matrix and yarns using either&lt;br /&gt;
:Modeller -&amp;gt; Assign Matrix Properties... and Modeller -&amp;gt; Assign Yarn Properties... options&lt;br /&gt;
or&lt;br /&gt;
:From a script using the CTextile SetMatrixYoungsModulus(), SetMatrixPoissonsRatio() and SetMatrixAlpha() functions and the CYarn SetYoungsModulusX(), SetYoungsModulusY(), SetYoungsModulusZ(), SetShearModulusXY(), SetShearModulusXZ(), SetShearModulusYZ(), SetPoissonsRatioX(), SetPoissonsRatioY(), SetPoissonsRatioZ, SetAlphaX(), SetAlphaY() and SetAlphaZ() functions.&lt;br /&gt;
*Ensure that the textile has a domain specified.  If created using one of the wizards then a default domain will have been assigned.  Otherwise create an appropriate domain the size of the textile unit cell as described in the [http://texgen.sourceforge.net/index.php/User_Guide#Domain domain user guide]&lt;br /&gt;
&lt;br /&gt;
==Create Abaqus Voxel File==&lt;br /&gt;
The Abaqus files for the voxel mesh can be created either in the TexGen GUI or in a script.  In both cases the number of voxels in the x,y and z directions must be specified and also the element type, boundary conditions and whether just yarn, matrix or both are being exported.  &lt;br /&gt;
Three files are generated: a .inp file containing the nodes, elements, boundary conditions, load cases and material definitions, a .eld file containing the element data (yarn index, location, volume fraction and distance from surface of yarn) and a .ori file containing the yarn orientation vectors.  The yarn data for the elements is calculated at the centre point of each element.  The element is assigned to either the appropriate yarn or matrix based on this centre point.  It may be necessary to perform a sensitivity study in order to assess the best number of voxels for the particular simulation.&lt;br /&gt;
Where there are thin yarns, eg binder yarns in a 3D weave, care should be taken to ensure that the voxels are small enough to model the continuous yarn with no gaps.&lt;br /&gt;
&lt;br /&gt;
[[file:AbaqusVoxelDialog.png|300px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* ABAQUS Voxel File using the GUI&lt;br /&gt;
:Select File -&amp;gt; Export -&amp;gt; ABAQUS File -&amp;gt; ABAQUS Voxel File&lt;br /&gt;
:The Abaqus Voxel Options dialog will be displayed&lt;br /&gt;
::Select the number of voxels required in x,y and z directions&lt;br /&gt;
::Select whether to output yarns, matrix or both&lt;br /&gt;
::Element Type: Select either C3D8R or C3D8&lt;br /&gt;
::Periodic Boundary Conditions&lt;br /&gt;
:::All Tied: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
:::Z untied: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* ABAQUS Voxel File using a script&lt;br /&gt;
&lt;br /&gt;
 # Create a voxel mesh object and then save the mesh&lt;br /&gt;
 Vox = CVoxelMesh()&lt;br /&gt;
 # SaveVoxelMesh Parameters: Textile name, Filename, Number X voxels, Number Y voxels, Number Z voxels...&lt;br /&gt;
 # Output matrix (true/false), Output yarns (true/false), Boundaries untied (true - z untied, false - all tied)...&lt;br /&gt;
 # Element type ( 0 - C3D8R, 1 - C3D8 )&lt;br /&gt;
 Vox.SaveVoxelMesh( &amp;quot;TextileName&amp;quot;, &amp;quot;Filename&amp;quot;, NumXVoxels, NumYVoxels, NumZVoxels, true, true, false, 0 )&lt;br /&gt;
&lt;br /&gt;
==Run Abaqus Simulation==&lt;br /&gt;
The Abaqus simulation must be run from the Abaqus Command Line.  The .inp will not load into Abaqus CAE as it uses uses equations in the boundary conditions which match multiple node sets together.  The orientation file will also only be read in correctly when run from the command line.&lt;br /&gt;
&lt;br /&gt;
* Copy the .inp, .ori and .eld into the Abaqus working folder&lt;br /&gt;
* Start Abaqus Command&lt;br /&gt;
* Type &amp;#039;&amp;#039;abaqus job=Filename&amp;#039;&amp;#039; (Filename without an extension)&lt;br /&gt;
&lt;br /&gt;
The job should run and produce a number of files including a .odb file.  If there were problems running the job then the .dat file should give some indication of the cause.&lt;br /&gt;
&lt;br /&gt;
==Extract Material Properties from ODB File==&lt;br /&gt;
When TexGen is downloaded three files, dataHandling.py, dataHandlingInPlane.py and effectiveMatPropRVE.py, will be placed in the TexGen/Python/libxtra/TexGen folder.  These should be copied into the Abaqus working folder.  The material properties are then extracted as follows:&lt;br /&gt;
&lt;br /&gt;
* Open the file effectiveMatPropRVE.py in an editor&lt;br /&gt;
* Edit the line &amp;quot;modelName = ..&amp;quot; so that it has the correct file name&lt;br /&gt;
* Set the thermo-mechanical switch as required by editing the line TM=&lt;br /&gt;
* Set the SingleLayerRVE switch as required by editing the line SingleLayerRVE=&lt;br /&gt;
* Start Abaqus CAE&lt;br /&gt;
* Open the .odb file created by the simulation&lt;br /&gt;
* Select File -&amp;gt; Run Script..&lt;br /&gt;
** Select effectiveMatPropRVE.py&lt;br /&gt;
** A dialog will be displayed showing the material properties calculated.  The results will also be saved to a .rpt file.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Extraction of Material Properties using Voxel Meshing and Abaqus</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2021-04-29T15:35:20Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: /* Create Abaqus Voxel File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This method creates an Abaqus input file by producing a mesh of regularly shaped hexahedral voxel elements for a textile produced by TexGen.  Periodic boundary condition equations are generated based on the paper &amp;#039;&amp;#039;&amp;quot;[http://www.sciencedirect.com/science/article/pii/S0167663603000620 Unit cells for micromechanical analyses of particle-refined composites]&amp;quot;, Shuguang Li, Anchana Wongsto, Mechanics of Materials 36(2004) 543-572&amp;#039;&amp;#039;.  After the Abaqus simulation has been run the material properties are extracted by running a script, provided in the TexGen download, which interrogates the Abaqus .odb file.  The procedure is described in the following sections.&lt;br /&gt;
&lt;br /&gt;
==Create Textile==&lt;br /&gt;
*Create a textile either via the GUI or by running a script.  &lt;br /&gt;
*Assign properties to the matrix and yarns using either&lt;br /&gt;
:Modeller -&amp;gt; Assign Matrix Properties... and Modeller -&amp;gt; Assign Yarn Properties... options&lt;br /&gt;
or&lt;br /&gt;
:From a script using the CTextile SetMatrixYoungsModulus(), SetMatrixPoissonsRatio() and SetMatrixAlpha() functions and the CYarn SetYoungsModulusX(), SetYoungsModulusY(), SetYoungsModulusZ(), SetShearModulusXY(), SetShearModulusXZ(), SetShearModulusYZ(), SetPoissonsRatioX(), SetPoissonsRatioY(), SetPoissonsRatioZ, SetAlphaX(), SetAlphaY() and SetAlphaZ() functions.&lt;br /&gt;
*Ensure that the textile has a domain specified.  If created using one of the wizards then a default domain will have been assigned.  Otherwise create an appropriate domain the size of the textile unit cell as described in the [http://texgen.sourceforge.net/index.php/User_Guide#Domain domain user guide]&lt;br /&gt;
&lt;br /&gt;
==Create Abaqus Voxel File==&lt;br /&gt;
The Abaqus files for the voxel mesh can be created either in the TexGen GUI or in a script.  In both cases the number of voxels in the x,y and z directions must be specified and also the element type, boundary conditions and whether just yarn, matrix or both are being exported.  &lt;br /&gt;
Three files are generated: a .inp file containing the nodes, elements, boundary conditions, load cases and material definitions, a .eld file containing the element data (yarn index, location, volume fraction and distance from surface of yarn) and a .ori file containing the yarn orientation vectors.  The yarn data for the elements is calculated at the centre point of each element.  The element is assigned to either the appropriate yarn or matrix based on this centre point.  It may be necessary to perform a sensitivity study in order to assess the best number of voxels for the particular simulation.&lt;br /&gt;
Where there are thin yarns, eg binder yarns in a 3D weave, care should be taken to ensure that the voxels are small enough to model the continuous yarn with no gaps.&lt;br /&gt;
&lt;br /&gt;
[[file:AbaqusVoxelDialog.png|300px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* ABAQUS Voxel File using the GUI&lt;br /&gt;
:Select File -&amp;gt; Export -&amp;gt; ABAQUS File -&amp;gt; ABAQUS Voxel File&lt;br /&gt;
:The Abaqus Voxel Options dialog will be displayed&lt;br /&gt;
::Select the number of voxels required in x,y and z directions&lt;br /&gt;
::Select whether to output yarns, matrix or both&lt;br /&gt;
::Element Type: Select either C3D8R or C3D8&lt;br /&gt;
::Periodic Boundary Conditions&lt;br /&gt;
:::All Tied: Assumes a material continuum where the RVE is considered to be infinitely small compared to the size of the engineering part.&lt;br /&gt;
:::Z untied: Gives a 2.5D simulation, assuming a one layer RVE solving in the x and y directions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* ABAQUS Voxel File using a script&lt;br /&gt;
&lt;br /&gt;
 # Create a voxel mesh object and then save the mesh&lt;br /&gt;
 Vox = CVoxelMesh()&lt;br /&gt;
 # SaveVoxelMesh Parameters: Textile name, Filename, Number X voxels, Number Y voxels, Number Z voxels...&lt;br /&gt;
 # Output matrix (true/false), Output yarns (true/false), Boundaries untied (true - z untied, false - all tied)...&lt;br /&gt;
 # Element type ( 0 - C3D8R, 1 - C3D8 )&lt;br /&gt;
 Vox.SaveVoxelMesh( &amp;quot;TextileName&amp;quot;, &amp;quot;Filename&amp;quot;, NumXVoxels, NumYVoxels, NumZVoxels, true, true, false, 0 )&lt;br /&gt;
&lt;br /&gt;
==Run Abaqus Simulation==&lt;br /&gt;
The Abaqus simulation must be run from the Abaqus Command Line.  The .inp will not load into Abaqus CAE as it uses uses equations in the boundary conditions which match multiple node sets together.  The orientation file will also only be read in correctly when run from the command line.&lt;br /&gt;
&lt;br /&gt;
* Copy the .inp, .ori and .eld into the Abaqus working folder&lt;br /&gt;
* Start Abaqus Command&lt;br /&gt;
* Type &amp;#039;&amp;#039;abaqus job=Filename&amp;#039;&amp;#039; (Filename without an extension)&lt;br /&gt;
&lt;br /&gt;
The job should run and produce a number of files including a .odb file.  If there were problems running the job then the .dat file should give some indication of the cause.&lt;br /&gt;
&lt;br /&gt;
==Extract Material Properties from ODB File==&lt;br /&gt;
When TexGen is downloaded three files, dataHandling.py, dataHandlingInPlane.py and effectiveMatPropRVE.py, will be placed in the TexGen/Python/libxtra/TexGen folder.  These should be copied into the Abaqus working folder.  The material properties are then extracted as follows:&lt;br /&gt;
&lt;br /&gt;
* Open the file effectiveMatPropRVE.py in an editor&lt;br /&gt;
* Edit the line &amp;quot;modelName = ..&amp;quot; so that it has the correct file name&lt;br /&gt;
* Set the thermo-mechanical switch as required by editing the line TM=&lt;br /&gt;
* Set the SingleLayerRVE switch as required by editing the line SingleLayerRVE=&lt;br /&gt;
* Start Abaqus CAE&lt;br /&gt;
* Open the .odb file created by the simulation&lt;br /&gt;
* Select File -&amp;gt; Run Script..&lt;br /&gt;
** Select effectiveMatPropRVE.py&lt;br /&gt;
** A dialog will be displayed showing the material properties calculated.  The results will also be saved to a .rpt file.&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2021-04-29T13:01:39Z</updated>

		<summary type="html">&lt;p&gt;Louisepb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:3Tex Vf 0.55.png|thumb|3d orthogonal woven fabric]]&lt;br /&gt;
[[Image:2DWeave.png|thumb|2d woven fabric]]&lt;br /&gt;
[[Image:Ncf.png|thumb|Non-crimp fabric]]&lt;br /&gt;
[[Image:Tufted laminate.png|thumb|Tufted laminate]]&lt;br /&gt;
[[Image:Triaxialbraid.png|thumb|Triaxial braid fabric]]&lt;br /&gt;
[[Image:Weftknit.png|thumb|Weft knit fabric]]&lt;br /&gt;
&lt;br /&gt;
TexGen is open source software licensed under the General Public License developed at the University of Nottingham for modelling the geometry of textile structures. TexGen has been used by the Nottingham team as the basis of models for a variety of properties, including textile mechanics, permeability and composite mechanical behaviour.&lt;br /&gt;
&lt;br /&gt;
A summary of our work involving TexGen can be found on the [[TexGen Applications]] page and a list of publications using TexGen can be found on the [[Publications]] page. Please also visit the [http://www.nottingham.ac.uk/research/groups/composites-research-group/research/textile-composites/textile-composites.aspx University of Nottingham Textile Composites Research] website for more details about our research group.&lt;br /&gt;
&lt;br /&gt;
A User Guide can be found here [[User_Guide]]. Also on this website you will find all the information necessary to get started with TexGen by using the sidebar for navigation. &lt;br /&gt;
&lt;br /&gt;
Please leave a message on the [http://texgen.sourceforge.net/phpBB3/index.php TexGen forum] if you find TexGen to be a useful tool. We are very interested to hear about research conducted with TexGen. The [http://texgen.sourceforge.net/phpBB3/index.php forum] is also the place to ask questions, make comments and generally discuss about TexGen with other users.&lt;br /&gt;
&lt;br /&gt;
Specific bug reports, feature requests and patches are always welcome and should be directed to the [https://github.com/louisepb/TexGen GitHub issue tracker].&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
=== TexGen Webinar: Exporting TexGen Models for Simulation===&lt;br /&gt;
====27th April 2021, 2pm (BST) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will describe the use of TexGen as a preprocessor for simulations using textile models and will cover:&lt;br /&gt;
*The different export options available, including file formats and meshing options&lt;br /&gt;
*Examples of different types of simulations using TexGen models, e.g. prediction of mechanical properties and permeability&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/BVME9evj0kc Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/webinar2_TexGenExport.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
=== TexGen Webinar: Introduction to Creating Textile Models Using TexGen===&lt;br /&gt;
==== 23rd March 2021, 2pm (GMT) ====&lt;br /&gt;
&lt;br /&gt;
This webinar will give an introduction to TexGen and will cover:&lt;br /&gt;
*The use of the TexGen graphical user interface (GUI) to create and edit 2D woven structures.&lt;br /&gt;
*An outline of the modelling theory used in the TexGen software which will enable users to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
Video and slides from the webinar are now available:&lt;br /&gt;
* [https://youtu.be/xDYRhVvwd2E Video]&lt;br /&gt;
* [http://texgen.sourceforge.net/documents/Webinar1_IntroductionToTexGen.pdf Slides] &lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.2 Released! ===&lt;br /&gt;
Version 3.12.2 has been released. This contains a bugfix to octree refinement when starting with a number of voxels other than 1x1x1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:15, 15 March 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.1 Released! ===&lt;br /&gt;
Version 3.12.1 has been released. This contains extension of the ABAQUS Voxel File export to provide access to the octree refinement with Laplacian smoothing from the GUI. The octree refinement can now be started with a user-specified number of voxels.&lt;br /&gt;
&lt;br /&gt;
Correct Small Intersections tool has been added to the Tools menu (previously only accessible via the ABAQUS Dry Fibre export option).&lt;br /&gt;
&lt;br /&gt;
Tetgen export has been updated to include the o2 option allowing export of quadratic tet element.&lt;br /&gt;
&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.1/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17:00, 12 February 2021 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.12.0 Released! ===&lt;br /&gt;
Version 3.12.0 has been released. This contains functions for octree refinement of voxel meshes with Laplacian smoothing. These are available using Python commands and instructions for their use are given here: [[Using Octree Refinement and Mesh Smoothing]]&lt;br /&gt;
&lt;br /&gt;
There are new options to create surface meshes in ABAQUS inp format and voxel meshes in vtu format.&lt;br /&gt;
&lt;br /&gt;
There is a bugfix to the correct reversal of G13 and G23 when calculating material properies using periodic boundary conditions as set up inthe voxel mesh export (issue 22 on GitHub).&lt;br /&gt;
&lt;br /&gt;
A Refresh View option has been added.&lt;br /&gt;
There are also various small changes and bug fixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.12.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;11:12, 11 March 2020 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Workshop: A Practical Introduction to Creating Textile Models===&lt;br /&gt;
====15th November 2019, CMSC, Purdue University, USA====&lt;br /&gt;
•	This interactive workshop will demonstrate the use of the TexGen graphical user interface (GUI) to create and edit 2D and 3D woven structures.  An outline of the modelling theory used in the TexGen software will be given which will enable the user to make better use of the features available in the software for customising textile models.&lt;br /&gt;
&lt;br /&gt;
•	Python scripting for TexGen will be introduced and will be demonstrated both for editing models within the GUI and for creating custom scripts for maximum control over the textile structures created.&lt;br /&gt;
&lt;br /&gt;
•	An overview will be given of the use of TexGen as a pre-processor for generating textile models and its use in the multiscale modelling process, including export options which allow TexGen models to be easily exported to third-party software such as ABAQUS which can then be used in simulations for prediction of material properties.&lt;br /&gt;
&lt;br /&gt;
The workshop will be held at the [http://www.Purdue.edu/cmsc Composites Manufacturing and Simulation Centre], Purdue University and is free to attend but places are limited, so booking is essential. Participants will be required to bring their own laptops in order to follow the exercises. &lt;br /&gt;
&lt;br /&gt;
To book a place please register via [https://www.eventbrite.com/e/texgen-workshop-a-practical-introduction-to-creating-textile-models-tickets-73971830737 Eventbrite]&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.11.0 Released! ===&lt;br /&gt;
Version 3.11.0 has been released. This contains upgrades to the VTK, wxWidgets, triangle and OpenCASCADE libraries to address issues with the Python 27 version running on Windows 10.&lt;br /&gt;
&lt;br /&gt;
Periodic boundary conditions have been added for rotated textiles in the voxel mesh export.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.11.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:15, 7 June 2019 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.10.0 Released! ===&lt;br /&gt;
Version 3.10.0 has been released. This contains a Rotate Textile option which can be used in conjunction with the Layer Textile option to create laminates with different textile orientations.&lt;br /&gt;
&lt;br /&gt;
There are new options to import weave patterns and then create pattern drafts from certain types of weave patterns.&lt;br /&gt;
&lt;br /&gt;
There has been some code optimisation to speed up the functions which calculate volume fraction and yarn orientations in the export functions.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.10.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;18:00, 13 December 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen Survey ===&lt;br /&gt;
The latest version of TexGen (3.9.0) included an invitation to complete a survey on exit from the program. This takes just a few minutes and can be found [https://nottingham.limequery.com/728617?lang=en here].  If you are a TexGen user we would be grateful if you could find the time to complete this.&lt;br /&gt;
&lt;br /&gt;
The information in the survey is crucial to us as it will help us to put together the case for continued funding of the TexGen project which, for the most part, is supported by UK Research Council funding.&lt;br /&gt;
&lt;br /&gt;
Many thanks for your help!&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.9.0 Released! ===&lt;br /&gt;
Version 3.9.0 has been released.  This contains functions to create a mesh of the centre plane of yarns using quad elements and functions to find the point on a yarn surface which is closest to a specified point.&lt;br /&gt;
&lt;br /&gt;
On exit from the program a dialog is triggered which points the user to an online survey.  This is entirely optional but information about usage and benefit from using the software will help us to make the case with research councils to continue funding the project.  This will enable us to continue its development and to keep it as free software.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.9.0/README/view here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:15, 14 February 2017 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.2 Released! ===&lt;br /&gt;
Version 3.8.2 has been released. This contains functions to calculate fibre volume fractions of specified domains (unit cells if these correspond) and yarns. Functionality has been added to allow an angle to be specified at a node so that a cross-section can be angled relative to the yarn tangent.  Creation of pattern draft for layer-to-layer textiles. Added option to wizards to select whether or not 10% is added to height of default domain.&lt;br /&gt;
&lt;br /&gt;
Windows installation files are available with Python27 to provide compatibility if calling TexGen scripts from within Abaqus 6.14.  There seem to be issues on some machines with the Python27 bundled versions. If Python27 is required install Python from here https://www.python.org/downloads/ and then use any of the Python27 files.&lt;br /&gt;
&lt;br /&gt;
There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.2/README/view here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;12:11, 19 January 2016 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.8.0 Released! ===&lt;br /&gt;
Version 3.8.0 has been released. This contains the addition of a maximum nesting function to layered textiles.  Changes to the 2D weave refine options have been implemented to allow more flexibility as to which functions are called when using the API. These have also been changed to allow refinement of non-periodic textiles. Option to select non-periodic mesh when using Tetgen meshing has been implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.8.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:08, 16 March 2015 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.7.0 Released! ===&lt;br /&gt;
Version 3.7.0 has been released. This contains the addition of layered textiles.  These can be created from the 2D weave wizard where a number of layers can be specified or from an option in the Textiles menu where different textiles can be stacked by making a selection from those loaded in the GUI.  Offsets can be set between the layers and simple nesting is implemented.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.7.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:36, 7 August 2014 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.1 Released! ===&lt;br /&gt;
Version 3.6.1 has been released.  This contains changes to the Volume Mesh export to give matching nodes and elements on opposite faces of the unit cell.  ABAQUS input files can then be generated with periodic boundary conditions. (Note that this meshing method is not suitable for 3D weaves with vertical or near-vertical yarns).  Changes have been made to the 3D Weave Wizard to allow all warp yarns to be binder yarns.  The Window installation files now use Python 2.6 thus giving compatibility with recent versions of ABAQUS.  There are various other small changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:19, 27 January 2014 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.6.0 Released! ===&lt;br /&gt;
Version 3.6.0 has been released.  This contains the addition of a sheared textile option to the 2D weave wizard.  This will automatically generate sheared 2D textiles and includes a refine option to minimise yarn intersections.  Associated sheared domain, sheared voxels and periodic boundary conditions may also be created. An option to create staggered periodic boundary conditions has been added for textiles which include an offset repeat, so as to minimise unit cell size.  There are various other small changes and bugfixes. A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.6.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;13:41, 8 August 2013 (BST)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.3 Released! ===&lt;br /&gt;
Version 3.5.3 has been released.  This contains modification of the PointInsideYarn function to give correct solutions for yarns with both convex and concave yarn sections.  There are improvements to the 3D orthogonal weave refine option.  Scripts have been made available to give automatic extraction of material properties following simulations using the Abaqus voxel mesh option.  There are various optimisation changes and bugfixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.3/README/view here].&lt;br /&gt;
&amp;lt;small&amp;gt;13.56, 12 November 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.2 Released! ===&lt;br /&gt;
Version 3.5.2 has been released.  This contains the addition of a refine option to the 3D orthogonal weave.  The geometry is adjusted to achieve a given overall fabric thickness.  Fibre orientation calculations have been improved to reflect the variations in yarn cross-sections and a render fibre orientation functions has been added to the user interface.  A rectangular yarn section has been added.  There are also various bug fixes. Windows 32 and 64 bit installers are now available.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.2/README/view here].&lt;br /&gt;
&lt;br /&gt;
===Workshop Presentations===&lt;br /&gt;
The presentations from the TexGen workshop held at the East Midlands Conference Centre on 2nd May 2012 are now available to view on the Documentation page [http://texgen.sourceforge.net/index.php/Documentation here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:09, 8 May 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.1 Released! ===&lt;br /&gt;
Version 3.5.1 has been released.  This contains the addition of offset angle interlock weaves and specification of power ellipse power in the 3d weave wizard.  An export function has been added which uses the open source software Tetgen to generate tetrahedral meshes.  It also contains the addition of an x offset to the power ellipse section and various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:20, 1 March 2012 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.5.0 Released! ===&lt;br /&gt;
Version 3.5.0 has been released.  This contains a new wizard for automatic creation of idealised orthogonal, angle interlock and layer-to-layer 3d textile weaves. It also contains various bug fixes.  A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.5.0/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:00, 13 October 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.1 Released! ===&lt;br /&gt;
Version 3.4.1 has been released. This contains minor changes to ABAQUS voxel mesh output and some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.1/README/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15:09, 22 June 2011 &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.4.0 Released! ===&lt;br /&gt;
Version 3.4.0 has been released. It contains the addition of periodic boundary conditions to the Abaqus voxel mesh output.  The dry fibre volume mesh intersection correction has been improved and an additional option added to regenerate the textile model using the adapted mesh following correction.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.4.0/ReleaseNotes3.4.0.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;14:49, 16 March 2011 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.3 Released! ===&lt;br /&gt;
Version 3.3.3 has been released.  It contains new features to save fibre and/or matrix as a voxel mesh in Abaqus format, to assign fibre properties to individual yarns and to adjust for small intersections in dry fibre volume mesh when outputting to Abaqus format.  There are also some bug fixes.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files//texgen/3.3.3/ReleaseNotes3.3.3.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;4 November 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.2 Released! ===&lt;br /&gt;
Version 3.3.2 has been released.  It contains new features to save fibre models to Abaqus output, render fibre volume mesh and render interference depth.  There are also some bug fixes, in particular a couple to get the GUI working in the Linux version.&lt;br /&gt;
A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.2/Release%20notes3-3-2.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;15 June 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TexGen 3.3.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.1 has been released (currently only Windows versions). It contains a couple of bug fixes and an option to switch output of messages on and off.  A list of changes can be found [https://sourceforge.net/projects/texgen/files/texgen/3.3.1/Release%20notes3-3-1.txt/view here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;17 March 2010&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.3.0 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.3.0 has been released, it has various bug fixes most notably to the volume mesher and a few new algorithms dealing with geometry prediction based on mechanical behaviour of yarns. A list of changes can be found [https://sourceforge.net/project/shownotes.php?group_id=181000&amp;amp;release_id=591019 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;16:52, 9 April 2008 (GMT)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TexGen 3.2.1 Released! ===&lt;br /&gt;
&lt;br /&gt;
Version 3.2.1 has been released, this is mainly a bug fix release however there are a few new features. A list of changes can be found [http://sourceforge.net/project/shownotes.php?release_id=553663&amp;amp;group_id=181000 here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;04:12, 13 November 2007 (PST)&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Louisepb</name></author>
	</entry>
</feed>