   18. Jul 21:21:10 CEST 2023 in Munich (Germany), 
   written by Klaus Wittig (klaus.wittig@calculix.de)

cgx Change Log
================

NOTE:  This document is potentially incomplete.

cgx 2.20 -> cgx 2.21
--------------------
  o  Changed or extended commands:
     - asgn   The user might now define the browser used to view the helpfiles,
              the helpfiles and the viewer for graps. Eventually with their
	      paths.
	      This should be done in the cgx initializing file .cgx  
     - ds     The entities of 2 datasets can be used to calculate a new dataset
              The following operators are known ['+'|'-'|'*'|'/'].
     - plot/plus
              If no set is specified, the entities of the given type of all
	      sets are shown. Additionally the use of wildcards(*) is now supported. 
     - prnt   All sets used to show the visible entities are listed if the
              parameter 've' is used.
     - split  Surfaces with holes can be splitted by shapes and other surfaces.
              Exactly one body can be splitted per split command. But
	      only if the split would lead to exactly two parts.
	      In other cases successive split commands are needed.
              A split might be forced to result in still connected or disjunct
              parts.
     - surf   Shapes and nurs can be used:
              - If a surface is defined based on lines a shape or the keyword
	        "BLEND" might precede the line names.
	      - If a set containing the lines is used it might now also contain
	        a shape or nurbs which will be used for the surface definition.
	      - If only a shape name follows the surface name it will be added
	        to the surface definition.
	      
  o  New commands:
     - aver   averages coordinates of points and nodes and values of nodes
     - setl   To lock a set. A locked set can not store any additional entity
              and no entity can be removed.
     - subm   like 'menu' the user can link commands to the menu but with that
              command he can collect them in a common submenu.


cgx 2.20 -> cgx 2.20.1
----------------------

o  Bug fixes and improvements done for graph (with option 'length'), split,
   cut (qcut), read (stl in binary format and vtk).


cgx 2.19 -> cgx 2.20
---------------------

o  Problems with the unnamed semaphores were encountered on MacOS. Therefore
   named semaphores were introduced. If the CFLAGS in the Makefile includes
   -DSEMINIT then sem_init (unnamed variant) will be used.
o  The 'proj' command uses now a more robust algorithm.

o  Changed or extended commands:
     - cmap   'grey' and 'coolwarm' added. Thanks to Suyono Nt.
     - cut    In addition to single nodes or points a set or sequence of points
              or nodes can be used to generate a cut.
     - elty   With 'elty <set> lock' the element definition and mesh density
              of the referenced bodies, surfaces and lines in <set> is fixed
	      until unlocked with 'elty <set> unlock'.
     - lnor   In addition to single points a set or sequence of points can be
              used to define the normal line.
     - mids   All midside nodes are moved to the halfway position with 'force'.
              This is different to the 'lin' option were the midside nodes
	      on surfaces are moved halfway on arcs defined by the mid- and 
	      corner nodes. Useful to fix bad shaped elements after tet meshing.
     - mshp   'lockFlag' added. See 'elty'.
     - read   Binary stl files can be read apart from ascii format.
     - read   Some element types stored in vtk format can be read.
     - send   Option 'trac' implemented for 'abq' format which sends lines
              for the abaqus *DLOAD surface traction vector.
     - split  Surfaces can be splitted by shapes and other surfaces.
     - view   The parameter 'disp' together with 'keep' adds the displacements
              permanently to the node coordinates. A second displacement
	      dataset could be added by repeating the 'view disp' command.



cgx 2.18 -> cgx 2.19
---------------------

  o  Bugfix in 'dist': Using one set with just one point and the other
     with just one node is now possible.

  o  Changed or extended commands:
     - asgn   The internal operations necessary for graphical output can be
              switched off or on during reading of command lines with
	      the parameter 'bg' and 'off' or 'on'. This speeds up the execution
	      of batch files during normal operation (with the grapical window
	      visible).
     - graph  Usual sets (as created with ``qadd'') will be copied into a
              temporary ordered set when using graph with the 'l' parameter.
	      This temporary ordered set is kept when a 'c' follows
	      the sign. The name of this set is equal to the original setname but
	      with an 'N' in front.
     - send   The export of 'darwin' files match now the format necessary for
              the darwin format conversion tool.
     - send   The export of 'skv' (throughflow code from github) input data
              for the quasi-normals is included.
     - call   The user function readskv is included.
	      

cgx 2.17.1 -> cgx 2.18
---------------------

  o  Datasets exported with 'send' in abaqus(ccx) format use now the exponential
     format.

  o  Changed or extended commands:
     - asgn   User Header Records in the frd file can be added or manipulated.
     - asgn   The automatic presentation of the 2D plots generated by 'graph'
              can be switched of or on and the next running number
	      of the files written with 'graph' can be defined.
     - cmap   'jet' implemented. Thanks to Rafal Brzegowy.
     - dist   Additional angle and radial distances are listed when two sets 
              with just one point or node are provided.
     - graph  The running number used in the name of the written file is stored
              in the value !graph_Nr (the leading '!' prevents the
	      value from beeing written by the send or save command). See
	      'asgn' on how to manipulate this nr.
     - max, maxc, maxr, min, minc, minr
              Logarithmic scale (log10) implemented for positive values.
     - send   The export of 'duns' and 'isaac' meshes supports now periodic
              BCs. This is necessary for the simulation of airfoil cascades.
     - split  A line can be splitted by a given point.    
     - test   Checks if at least one node included in set1 is inside the
              elements included in set2. The command returns TRUE or FALSE
     - valu   A user message can be added to a user input request
              ('?' "user message").
     
  o  New commands:
     - cont   Continues reading of a stopped command file (see 'stop').
     - qmov   Translatoric move of a set of entities (nodes, points).
     - stop   Stops the execution of commands written in a file and returns
              to the interactive mode until 'cont' is issued. The user may
	      modify the command file after the stop command.
     - typs   The commands 'mats', 'grps' and now 'typs' use the element
              attributes assigned in the ccx result file ( the 'frd' file) to
              generate certain element sets. 


cgx 2.17 -> cgx 2.17.1
---------------------

  o  New commands:
     - cmap   sets the colormap for the colorbar. Known is
              'classic', 'inferno', 'turbo', 'viridis'.
	      Thanks to Ihor Mirzov. 

cgx 2.16.1 -> cgx 2.17
---------------------
  o  In addition to 'netgen' the tetmesher 'tetgen' can be used.
     Default is 'tetgen'.
  o  Changed or extended commands:
     - asgn   The default tetmesher can be set (tetgen, netgen)
     - asgn   The default method used for the scale can be chosen:
              max,maxr and maxc, minc together with a color. 
     - comp   Option 'c' adds related combined lines to sets (LCMB's)
     - eprop  Calculation of a quality measure for tets (flatness).
     - proj   Normal projections to all types of shapes implemented.
     - qdis   Normal distance to a plane defined by 3 nodes or points.
     - setr   Remove only certain classes of lines from given set. Known
              are 'l' straight lines, 'a' arcs, 'n' nurbs, 's' splines.

  o  New commands:
     - maxc   As maxr but the color above the defined value is set to
              a user defined color (default 'neutral')
     - minc   As minr but the color below the defined value is set to
              a user defined color (default 'neutral')

cgx 2.16 -> cgx 2.16.1
---------------------
  o  Command line can be shown in the graphic's window. Can be switched on or
     off via menu or command.
  o  Changed or extended commands:
     - qmsh   The functionality of qbia added.
     - qseq   Combination and substitution of several lines by one spline.
              Selection of a single line or several lines must now be finished
	      by a 'g' keystroke!
     - plot/  Potential node positions can be shown. The combined effect of
       plus   lp, ld, lc is available with lc.
     - view   Add a command line in the graphic's window (view cl)

  o  New commands:
     - capt   Change the captation from the default filename to a user
              defined string

cgx 2.15 -> cgx 2.16
---------------------
  o  Transparency (blending of colors) implemented and available via
     menu or command line for elemet faces.
  o  Multi-threading implemented for meshing, mapping and the 'cut' command.
  o  Improved 2D unstructured meshing (pre-requisite for 3D tet meshing).
  o  The frd format specification is extended by a double precision binary
     format.
  o  Changed or extended commands:
     - asgn:  The number of cpu threads can be chosen.
              Default is currently '4' when cgx is started with '-a'
              and otherwhise '1' since the mesh numbering would be different
              each time the 'mesh' command is used with more than '1'
              threads (defined in cgx.h 'NTHREADS').
              The user may use this command in his personal '.cgx'
              config file to define the nr of threads to be used.
     - ds:    Uses parameter 'f' to finalize the current  dataset. This triggers
              a new calculation of the max/min values of the current dataset.
     - hcpy   The default name of the hcpy file and the running number of
              that type of file is written to the stack if requested. Or the
              user may specify the base name of the hcpy file.
     - neigh  Extended functionality and faster execution.
              Writes *EQUATION, *TIE and *CONTACT formulations to be ready for
              use.
     - plot/  The numerical values at nodes are now presented with option 'nn'
       plus   instead of 'nv'. The option 'nv' is now used to present the values
              at the nodes using colors in the same way as with 'fv' or 'ev'.  
              with 'f' and 'v' for illuminated faces or results
              (ie. fvb).
     - plot/  Transparency can be chosen with parameter 'b' together 
       plus   with 'f' and 'v' for illuminated faces or results
              (ie. fvb).
     - qmsh   The mesh type can be switched between unstructured and
              structured with key 'x' (the structured tr6 will be used after
              pressing 'x' if no elemtype was assigned so far)
     - read   Reading of double precision binary formated results. Nevertheless
              the results are stored in single precision data fields.
     - read   In case a file written in an un-common format should be evaluated
              the user may read the file into the cgx stack memory. From there
              it can be parsed in a while loop using 'valu' commands.
     - txt    User defined texts can be assigned to a single- or set of nodes.
     - valu/  Values with a leading '!' in the name are not written to
       val    the fbd file.
     - view   Add a ruler bar to the graphic with parameter rul and optional
              the unit.

  o  New commands:
     - col:   User defined new colors which can be used with plot/plus.
              The user may use this command in his personal '.cgx'
              config file.

cgx 2.14.1 -> cgx 2.15
---------------------

  o  Changed or extended commands:
     - ds:    when only a dataset is specified and no entity then informations
              including the number of entities is  written to stdout and
	      eventually to the stack. Useful when the existing ds
	      has to be evaluated in a batch file.
     - elty:  B31R added (be2r), B32R added (be3r).
     - mshp:  Sets the mesh parameters for individual lines as well.
     - movi:  Movies loop now automatically. The number of loops can be set
              with parameter 'loops'. Default is infinite loops.
     - node:  A flag (0|1, def:1) can be used to force or skip the update of
              related entities. Using '0' speeds up the command significantly.  
     - node:  The value of the currently selected entity and dataset of a 
              given node can be manipulated by using the option 'vs' instead
	      of 'v'.
     - rot:   The model is rotated in a way that the viewing direction is
              in normal direction at the location of a given node (parameter
	      'n'). Either a node-nr or a set with one node can be given.
     - send:  With option 'raw' instead of 'names' only the node- or element
              numbers will be written to a file without a preceding *NSET or
	      *ELSET command.
     - send:  With option 'f' after 'fbd' the point coordinates will be
              written in long float (double) format instead of the default
	      exponential format. Useful when otherwhise a '0.' is not
	      exactly zero.
     - test:  Tests the observability ('o') of a certain node under the given
              orientation of the model. The node can be given as a member of a
	      set or directly by its node-nr. The command returns TRUE or
	      FALSE and writes this to the stack.

  o  New commands:
     - neigh: Finds neighboring element faces which can be used in a *TIE or
              *CONTACT PAIR formulation
     -else if:Extention to the 'IF' command.
     - val:   Has the same functionality as 'valu' but the arguments will be
              substituted by the command parser by eventually defined values
              (the substitution can be suppressed with a leading '\' before
              the argument). 
              REMARK: Substitution by the command parser does not take place
              when the 'valu' command is used. The command uses his own
              substitution rules. This results in a nested substitution for the
              'val' command. 


cgx 2.14 -> cgx 2.14.1
---------------------
  o  To prevent the user from executing potential dangerous 'sys' commands
     the program will stop executing 'sys' commands unless the user accepts
     either each single one or accepts the execution of every 'sys' commands.

     If this functionality is not desired then change "ALLOW_SYS_FLAG   0" in
     the cgx.h file to "ALLOW_SYS_FLAG   1".

cgx 2.13 -> cgx 2.14
---------------------
  o  Updated cgxCadTools written by Pascal Mossier: 
     Sets are generated when colours are applied to surfaces or volumes. This
     sets are named by the rgb fractions: r<val>g<val>b<val>

  o  The in-build programming language is somewhat simplified since constant
     values are now supported. So far any value had to be initialized with a
     'valu' command. Now constant numbers like '-1' or strings can be used
     directly.
  o  Creation and manipulation of Datasets are supported.
  o  The animated deformations work now as well for the cylindrical system
     (see 'trfm').

  o  Changed or extended commands:
     - copy:  The 'normal' transformation was added.
     - ds:    Datasets can be created.
     - ds:    Dataset parameters can be changed and created.
     - ds:    node results can be re-calculated using an exponent.
     - elem:  Shell-elements can be created based on element-faces.
     - elty:  C3D10T added (te10t).
     - enq:   The search in cylindrical coordinates did not regard the
              circumferential position so far. The syntax has changed and
	      allows now the specification of the circumferential position.
     - flip:  Inverses the orientation of a set of elements.
     - if:    Constant strings and numbers are supported.
     - move:  The 'normal' transformation was added.
     - node:  Values can be defined or redefined on the current active
              dataset.
     - send:  Write the current state in a special file 'init.fbl' which can
              be used in other sessions to get the same view of a second model.
     - swep:  The 'normal' transformation was added. Good to create a layer
              of thin elements on a given mesh. 
     - valu:  Constant strings and numbers are supported. Therefore there is
              no longer a need to define a valu for every number or string.
     - while: Constant strings and numbers are supported.
     - wsize: The size of the window can be set even in batch mode as long
              as this is the first command!

  o  New commands:
     - init:  This command defines the window and model size, the model
              position, rotational center, fonts and others.


cgx 2.12 -> cgx 2.13
---------------------
  Emphasis was placed to post-processing:
  o  WARNING: The command "prnt se <set>" writes now 13 leading values to
     the stack.
  o  Shaded representation of results can be switched on by command or menu.
  o  The user can add his own functions and scripts to the menu.
  o  A file (.cgx) with initialization commands will be read at startup  
     from the home directory. Useful to add functions to the menu.
  o  The front face culling works now for the entities drawn by plot and
     plus.

  o  Changed or extended commands:
     - elem:  Automatic number generation by using '!'.
     - frame: A setname can be provided as a size target.
     - node:  Automatic number generation by using '!'.
     - plot:  The pixel width of some entites can be specified.
     - plus:  The pixel width of some entities can be specified.
     - prnt:  In combination with "stack on" writes the number of entities
              of a set to the stack. Existing scripts need a
              "valu x pop 13" after "prnt se <set>".
     - prnt:  Lists failed elements regarding quality (eq).
     - text:  This command was renamed to 'ulin' (underline).
     - valu:  User input can be requested by '?'.
     - view:  The pixel width can be specified when using the parameter
              'point'.

  o  New commands:
     - maxr:  'max' with one more color box above the specified value.  
     - minr:  'min' with one more color box below the specified value. 
     - menu:  The user can add his own functions and scripts to the menu.
     - ulin:  Replaces the command 'text'.
     - thrs:  Displays regions which values of the actual dataset are 
              above (h) or below (l) the given value.
     - txt:   Creates node-attached texts (as qtxt).
     - wsize: The size of the window can be set.
     - wpos:  The positon of the window can be set.


cgx 2.11 -> cgx 2.12
---------------------
  o  Much faster unstructured shell element mesher. CAD-model meshing is much
     improved in combination with some improvements of the 'qmsh' command and a
     new stand alone step and iges interface. This stand alone tool uses the
     openCascade library.
  o  The pnt commands written into the fbd file use now more digits
     for a higher accuracy.

  o  Changed or extended commands:
     - elty:   Reduced- and full-integrated forms of various quad shell element
               types can be selected now (ie. 'qu8r'|'qu8er'|'qu8sr'|'qu8cr').
     - gtol:   New parameter 'gtol auto' to recalculate the geometric
               tolerance. This was done before by just typing 'gtol'. Now
               'gtol' w/o parameters just prints the actual geometric tolerance.
     - nurs:   Apart from surfaces using four edges now also surfaces using 2
               or more edges can be converted to nurbs based surfaces. The
               nurbs will follow the initial blended contour. Such surfaces
               are needed for unstructured meshes.
     - prnt:   Informations about the model with 'info' (nr of entities etc.).
     - prnt:   Actual stack size with 'stack size'.
     - prnt:   Enquire the alias name of an entity by placing a '?' before the
               name.
     - qmsh:   Changing a line division causes an automatic re-mesh at this
               location.
     - qmsh:   A change of the surface mesh density can be triggered by a
               'h' and 't' key-stroke which causes an automatic re-mesh of the 
               surface.
     - read:   The parameters are written to the stack.
     - shpe:   A torus is now available.
     - swep:   Rotational sweeped lines create nurbs related surfaces if
               requested (option 'n').
     - valu:   Strings can be splitted at the occurences of a defined
               character.

  o  New commands:
     - eprop:  Calculates the element edge length and volume. Useful for cfd
               and explicid dynamic mesh improvements.
     - seqc:   Converts an LCMB into a spline. keeps the sum of divisions but
               sets the bias to 1.
     - mshp:   Sets the mesh parameters for individual surfaces and bodies.


cgx 2.10 -> cgx 2.11
---------------------
  o  Changed menu function:
     In the previous versions of cgx the "vMises" strain was calculated with
     the same algorithm as used for the vMises stress. This is now corrected to
     vMises_strain=2./3.*stressAlgorithm

  o  Changed or extended commands:
     - elty    be2f,be3f elements for fluid networks (ccx: *ELEMENT,TYPE=D).
     - send:   parameter 'cr'<temp|node> for cavity radiation conditions with
               uniform emissivity and sink temperature or sink node is available.

  o  New commands:
     - fil:    Command line version of qfil.
     - grpa:   Assigns a group number to certain elements stored in a certain set.
               The group number is an element attribute used in the frd file.
     - int:    Command line version of qint.


cgx 2.9 -> cgx 2.10
---------------------
  o  Changed or extended commands:
     - anim:   Option 'start' to start an animation added (implicit in most
               related functions, therefore seldom needed).
     - copy:   Additional transformation options are available.
     - ds:     Sequences of datasets can be defined by just one dataset-nr.
               The program recognizes the request when a 'h' key is
               appended to the 'e' or 'a' keys which in turn define if the
               fringe plots should use the deflected shape or not.
     - ds:     An offset can be added to the values of datasets.
     - graph:  Plotting any field results along a combined- or a single line 
               is supported. The division of the line determines the number
               of new locations for data-points.
               The current displayed results will be
               automatically mapped to this locations and shown in a 2D
               graph over the length of the line.
               Unordered node sets can be used. They are automatically ordered.
     - movi:   The number of frames which will be saved before the recording 
               stops can be specified (option 'frames'). A given command
               file will be executed after the movie is finished.
               Alternatively instead of a given nr of frames the key-word
               'auto' can be used to start recording of one period of an 
               animation or sequence. The program waits until the recording
               is done and continues then with eventual subsequent comants.
     - read:   Time consuming dependency checks can be avoided by using the
               parameter 'new' when reading frd files.
     - send:   The mass-flow in a cfd calculation can be written (mflow).
     - swep:   Triangle and Quad elements can be sweeped into wedges and hexa
               elements. Results will be copied to the new nodes. The sweep
               angle is not longer restricted to values <180 deg.
     - swep:   Additional transformation options are available.
     - read:   (Peter Heppel) The netgen file reader accepts quad-8
     - read:   (Peter Heppel) The netgen file reader accepts a keyword ndsb for
               NoDeleteShells&Beams
 
  o  New commands:
     - norm:   Writes the normal direction of nodes to the konsole. The user
               might store this values on the stack for further use.


cgx 2.8 -> cgx 2.9
---------------------
  o  The animation and sequence functionality was improved.
     - Previously only displacements could be animated by a sinus function 
       showing the deformed shape.
       Now all kinds of datasets can be animated as a fringe plot with 
       deformed shape.
     - Fringe plots of sequences of datasets using the related deformed shapes
       are also supported now.
     This functionalities are available over the menu or the "ds" command.
  o  Deformed element- and model-edges are used during animations. The user can
     switch on additional undeformed edges as a reference over the "anim"
     command or the "Animate" menu.

  o  Changed or extended commands:
     - copy:   More transformations are supported in case results have to be
               copied as well (mir, rad).
     - ds:     The animation can now be used for fringe plots with or without 
               using the related deformations.
     - max,    A 3rd parameter "l" (lock) or "u" (unlock) can be provided which
       min,    locks the scale to certain max or min values. The selection of
       mm:     a different dataset will not change the scale (max 100 e l).
     - prnt:   List the contents of the stack (prnt st)
     - read:   Results from "openFoam", stl-files and netgen meshes (.vol) can
               be read now during run-time.
     - send:   Boundary conditions for the new ccx-cfd finite volume code 
               can be written with the 'slidef' parameter. These are equations
               which define the velocity direction parallel to an element
	       face (experimental).
     - volu:   The calculation of the element volumes was improved and is now
               in accordance with the ccx solver since it uses the same
               algorithms now.

  o  New commands:
     - anim:   Command which provides the functionality of the "Animate" menu


cgx 2.7 -> cgx 2.8
---------------------
  o  This version shows some improvements of the batch
     capabilities to support optimizations: 'loop' constructs,
     case distinctions and variables were introduced. See 'while', 'if' 
     'test', 'stack' and 'value' for further details.

  o  Changed or extended menu functions:
     In the previous versions of cgx the "maxShear" stress was named 
     "Tresca shear stress" in the menu. This was wrong since "Tresca" is
     equivalent to 2*maxShear. Therefore "Tresca" is now renamed to "maxShear"
     in the menu and the manual. 

  o  Changed or extended commands:
     - prnt:   The content of 'values' can be printed (see 'valu').
     - prnt:   Existing 'user headers' stored in the ccx result files (frd)
               can be listed and written to the stack.
     - prnt:   Existing 'parameters' stored in the ccx result files (frd)
               can be listed and written to the stack.
     - prnt:   Nodal values and coordinates of nodes and points can be written
               to the stack.
     - proj:   A tolerance for the maximum distance of a projection
               can be defined.
     - send:   Boundary conditions for the new ccx-cfd finite volume code 
               can be written with the 'spcf' parameter for velocities,
               pressure and temperature.
               Cyclic symmetry mpc connections for cfd can be created with
               'cycmpcf'.  
     - seta:   'values' can be added to a set.
     - setr:   'values' can be removed from a set.

  o  New commands:
     - break:  Breaks the interpretation of a command file and returns to the
               command line.
     - dist:   measures distances between entities of two sets. For example
               between points or nodes stored in one set to surfaces or 
               shapes stored in a second set. The average-, maximum- and 
               minimum distance is determined. The distance is measured
               normal-, rotational-, radial or translatoric. The command 
               works analogous to the 'proj' command.
     - else:   See 'if'
     - endif:  See 'if'
     - endwhile: See 'while'
     - if:     A command to compare two values. If the compare is True
               the following commands are executed. If the compare is False
               the code after 'else' is executed. Strings and numbers can be
               compared. Normal operation continues after 'endif'.
     - stack:  Several functions which return values to the user might now
               place them also on a software-stack. The 'valu' command
               is able to store this values from the stack in variables.
               (stack used by area,dist,ds,enq,gtol,length,prnt,valu,volu)
     - test:   Tests the existence of a given entity. Returns TRUE or FALSE
               and writes it on the stack.
     - valu:   A new entity which can store a string of characters or numbers.
               The command parser will scan each parameter of each command for
               expressions which match a value and will replace the parameter
               by the value. The contend of the value can be defined by the
               user or derived from commands or datasets.
               The command is able to perform simple calculations, string
               concatenation and format changes.
     - while:  A command to compare two values. If the compare is True
               the following commands are executed until the 'endwhile'
               command is found. This procedure is repeated until the compare
               is False. Strings and numbers can be compared


cgx 2.6 -> cgx 2.7
---------------------
  o  The main goal of this version was the implementation of a tet-mesher.
     The 2D-mesher was greatly improved as a basis for the netgen 3D-tet-
     mesher. The netgen tetmesher (ng_vol) is not linked but used as a
     stand-alone program started by a system call. This is not visible
     to the user and has the advantage that cgx can still be build 
     independently. In addition any malfunction of ng_vol has no influence
     on the stabillity of cgx. A modified version of ng_vol is included
     and should replace the original ng_vol prg in the netgen source code.
     The modified ng_vol allows the specification of a target size for the
     size of the elements. But the apart from this feature the original
     ng_vol prg from netgen works well and might be kept as it is.
     See especially the command 'qmsh'.
  o  The restriction to a division of 99 as a maximum is not longer valid.

  o  Replaced commands:
     - qele:   Functionality included in qmsh

  o  Changed or extended commands:
     - body:   A multi-surface-body can be created by specifiing
               a set of surfaces. This body can only be used for tet 
               elements.
     - div:    w/o arguments lists the defaults. In auto mode an element-size
               -ratio can be specified (smallest/biggest).
     - elty:   w/o arguments lists the defaults. New elements:
               tr6u unstructured tria with 6 nodes
               te4  tet4   (netgen prg 'ng_vol' must be available)
               te10 tet10  (netgen prg 'ng_vol' must be available)
     - line:   The restriction to maximum division is no longer valid.
               The bias argument has to follow the division in the 'line' 
               command syntax if a division >99 is applied.
     - mesh:   "mesh <setname> tet [max-element-size]" creates a tet-mesh
               based on an existing closed 2D mesh composed of trias.
               This is a second method to generate tets. The first one is 
               to use 'elty' to asign tet-elements to bodies and to use 
               "mesh <setname>" to mesh all bodies in set <setname>.
     - qdiv:   Up to 3 digit divisions can be specified. 
     - qlin:   The parameter 'e' allows the replacement of lines in lcmbs
               or surface-definitions.
     - qshp:   A pre-defined shape-name can be provided.
               's' attaches a pre-selected shape or nurbs.
               'S' pre-selects a nurbs
               'h' pre-selects a shape
               'c' clears pre-selections
     - qsur:   A pre-defined surface-name can be provided.
               's' selects a surface or attaches a pre-selected shape or nurbs.
               'S' pre-selects a nurbs based on a surface-definition
               'h' pre-selects a shape based on a surface-definition
               'c' clears pre-selections
     - seta:   lines with a line-division greater as specified can be grouped
               together "seta <setname> ld<x>" (ld: "line-division").
     - shpe:   A cylinder can be specified and used for the interiour def-
               inition of a surface.
     - surf:   A multi-line-surf can be created by specifiing
               a set of lines. This surface can only be meshed with tr3u or
               tr6u in conjunction with a related shape (nurbs) if it is not
               plane.
     - view:   The menu items 'FILL', 'LINE', 'POINT' and 'background colour'
               are integrated.

  o  New commands:
     - lnor:   Generates a new line normal to a plane defined by 3 points.
               (based on qnor)
     - qmsh:   Allows the manipulation of surface meshes.
               - Based on identified lines or surfaces meshes can be deleted
                 and generated.
               - Certain surfaces can be combined to get rid of very small ones.
               - Certain surfaces can be splitted.
               - The line-division can be changed.


cgx 2.5 -> cgx 2.6
---------------------
  o  Step reader is now able to deal with assemblies.
     All single parts of an assembly will be written to separate files
     if requested. A command-file for the assembly is then also provided.
     This allows the user to generate single meshable models which will
     then be assembled (cgx -stepsplit).
  o  Input file reader (ccx): Multiple load definitions inside one *STEP
     on a single entity will now sum up (ccx compatible). This applies
     to cflux, dflux, cload, dload.
  o  The nastran f06-file can be read (CHEXA, displacements and stresses)
     at startup (option -f06).

  o  Changed or extended commands:
     - asgn:   Alternative parameters 'rbe' (with "alpha") or 'mpc' to force
               a successive send (option areampc) command to write either 
               rbe's or mpc's (Nastran only).
     - max,min: The number representation can be changed between int,float,exp.
     - move:   Points can be moved to nearest target points (param. equ).
     - move:   mirror, rotate or move-radial can be defined by one point and 
               a main-axis (x|y|z).
     - move:   The rotation-angle or radial-movement can be specified on two
               axial positions, the target value for each point to be moved
               will be calculated based on these two axial positions
     - prnt:   The range of nodes and elements of a certain set can be displayed
               in addition holes in the numbering are detected.
     - qadd:   Collects connected element faces until a certain deviation
               of the normal vector from the 1st picked face ist reached.
     - read:   Background pictures (still only xwd format) can be read with
               a scaling factor.
     - send:   A simple text file (lst) to list node- and element-numbers
               can be written (space separated, seven numbers per line) 
     - send:   Certain entities of a certain dataset can be written
               to a file.
     - send:   The option "mpc" will alternatively generate RBEs if 
               requested (nastan RBE2, abq *RIGID BODY).
     - seta:   Wildcards(*) can be used.
     - setr:   Wildcards(*) can be used.
     - trfm:   Option "rec" works now. In all cases the resulting entities 
               will overwrite the original ones. In this case successive
               transformations are possible.

  o  New commands:
     - csysa:  Specifies the displacement coordinate system
               (Nastran only)
     - mm:     Combines max and min in one command
     - seql:   Makes splines from lines



cgx 2.4 -> cgx 2.5
---------------------
  o  The drawing area does not longer keep its quadratic form when the window
     size changes. Instead it will now change to a rectangular shape when
     this allows a better use of the available window-area.
  o  A binary frd-format was created and can be used for reading and writing.
     Ths reduces the storage space and leads to a speed increase.

  o  Changed or extended commands:
     - comp:   Wildcards(*) can be used to complete groups of sets of a 
               certain expression. 
     - del:    Node attached "texts" can be deleted, see qtxt.
     - enq:    Nodes with values above or below a specified value can be 
               searched.
               And a set with a point can be provided to specify a search-
               location.
     - graph:  Wildcards(*) can be used for materials and amplitudes.
     - map:    Apart from 2D-to-2D and 2D-to-3D is now 3D-to-3D mapping 
               available. The mapping takes place for either all
               or a specified dataset. All entities of the interpolated
	       datasets are regarded.
     - plot/
     - plus:   Node attached "texts" can be displayed, see qtxt.
     - qadd:   Node attached "texts" can be generated and controlled.
     - qdel:   Node attached "texts" can be deleted, see qtxt.
     - qenq:   Node attached "texts" can be generated and controlled.
     - read:   Nodes and elements can be skipped to speed-up the reading of
               input-files. This is useful when a result file was read and
               the pre-defined sets from the input file should be available.
               This is default when cgx is started with an frd- together with
               its inp-file.
     - send:   Node and element set-definitions can be written in gagemap
               (gmp) or patran neutral format (pat).
     - send:   The binary frd-file format can be used to export data.
     - send:   The pressure-DOF can be specified for equations (areampc,
               cycmpc).
     - send:   Second order elements (hex20,Pe15,Tet10) can be subdivided to 
               eight 1st. order elements each.
               Syntax: "send <setname> abq quadlin"
     - send:   The additional enities generated by cgx can be written by 
               using the '+' sign after the 'ds' parameter (i.e. vMises).

  o  New commands:
     - qtxt:   Node attached "texts" can be generated and controlled.
               This texts are attached to nodes and can be placed everywere
               in the drawing area. They might show the node-nr and its value.  
     - sete:   To enquire other sets which have entities in common or with
               an identical content (depending on further parameters).
               Example: "sete blade p min" searches for sets who store the
               same or more points as "blade" (at least the set "all").
     - seti:   To generate an intersection of several set (what do the 
               specified sets have in common (of the specified entity-type)?)
               Example: seti intersection_set p set1 set2 set3




cgx 2.3 -> cgx 2.4
---------------------
  o  Several speed improvements for example for mapping and mpcs
     (*EQUATIONs).
  o  Better support of shell elements (POS, NEG can be specified).
  o  If netgen native mesh-format is read then the surface-patches of 
     the volume mesh are stored in sets ("+set[n]") and can be used for
     boundary or load definitions (cgx -ng file.vol).
     See the manual section: "Remarks Concerning NETGEN".
  o  The actual OpenFoam (1.7.1) format is now supported (read and write).
  o  The cfd-code dolfyn is now supported (thanks to Runar Tenfjord).
     An example is included in the examples/dolfyn directory.
  o  The colour index mode is not longer supported.
  o  The menu entry "cut->vector" is introduced. See "cut" below.
  o  All principal stresses can be displayed with vectors.

  o  Changed or extended commands:
     - cut/   A section can be created based on the selection of just
       qcut:  one node if a dataset and entity of a vector was selected
              (disp, PS, worstPS ..)
     - elty:  Plain strain/stress and axisymmetric elements can be
              specified. 
     - read:  Result-files (frd) can be read during run-time in a way
              that node- or element-numbers already in use will not be
              overwritten (option 'add'). Instead new numbers are generated.
              Existing datasets will be extended by the new node-numbers.
              The optional parameter 'ext' will not change element or 
              node numbers but as with 'add' will extend existing 
              datasets by the new nodes.
              If result-files are read without the option 'add' or 'ext'
              then new Datasets are just added to the existing ones.
              Element or node numbers are not changed.
     - send:  Mapping of surface-loads from one mesh to another one is
              no longer supported (option 'surfmap'). A new command 'map'
              is introduced for this functionality. The mapped results
              can then be 'send' as usual.
     - send:  The actual openfoam format (1.7.1) is now written.
     - send:  The actual darwin format (7.1) is now written.
     - send:  Writes mesh and BCs for the cfd-code dolfyn (thanks to Runar
              Tenfjord).
     - send:  A netgen surface mesh can be written based on the faces of 
              elements. The faces of hex, tet, quad and tria elements are
              triangulated and written in the stand-alone netgen mesher
              format (file.ng). The mesher can be found in the netgen 
              sub-directory nglib and is named ng_vol.
     - send:  stl-format will now be written based on the faces of
              elements. The faces of hex, tet, quad and tria elements are
              triangulated and written in ascii-stl.
     - send:  The side of shell elements can be specified with an
              additional parameter (+|-) when writing BCs.
     - split: Tet-meshes can be splitted by surfaces, faces or shapes.

  o  New commands:
     - map:   Interpolates values at nodes from one mesh to another. For
              example pressures from a cfd calc to the structure mesh.
              See also remarks in the manual "How to map loads".
     - sys:   External shell commands can be issued. For example to move
              files created by the 'send' command to certain file names
              or/and locations.


cgx 2.2 -> cgx 2.3
---------------------
  o  The Datasets are bundled to loadcases if more than one loadcase is
     defined (a loadcase is a certain bundle of datasets for which the
     loads and boundary-condition are unique). It influences only the 
     menu structure. To define a dataset the user has to move the pointer
     through a loadcase.
  o  The special keys PAGE_UP and PAGE_DOWN are now also used to scan
     through Datasets of different Loadcases in a fast way. For example:
     If displacements were selected a PAGE_DOWN will display the next 
     displacement dataset.
  o  Parameters in the result-file a now supported. These are values
     related to datasets which give additional information for the loadcase.
     They can be displayed with the graph command or with the menu
     (ccx result-files (frd) usually do not contain meaningfull parameters).
     See the manual section: "Parameter Header Record"
  o  A new entity called Shape is introduced. It allows the definition
     of planes for projection purposes or to define the interiour of
     surfaces (necessary for the 2D unstructured mesher, element-type
     tr3u). Other types are planned.
  o  Reading of ccx-input files is improved:
     - Sets which are used in contact pairs reference each other.
     - Forces are automatically transformed in the basic coordinate
       system.
     - Sets can now be referenced before they were defined.
  o  A new parameter -bg will suppress the graphic window. Useful for
     pure batch mode.
  o  Speed improvements for the graph command.
  o  Improved step-format reader. Most types of lines are now supported.
     But still only points and lines are supported.
  o  Netgen native mesh-format can be read. By this way the netgen-sets
     will be available if the command "mats" is used in addition.
     See the manual section: "Remarks Concerning NETGEN".
  o  Mapping of surface-loads is supported. See the manual section: 
     "How to map surface loads".

  o  Changed or extended commands:
     - graph: Now parameters related to datasets can also be used for 
              the graph command. 
     - qseq:  Is now also able to define a sequence of nodes or points.
              Such a sequence of nodes can be used to plot values with
              the graph (option "l") command. It replaces the equivalent
              function "qadd set s". Sequences can be listet with "prnt sq"
     - qsur:  Unsorted lines can be picked with the "l" key to define a
              surface only meshable with unstructured triangles (elty tr3u).
              This surface permits holes in it. The surface has to be plane
              or a suited NURBS has to be referenced.
     - send:  Will write nodes sequences in fbd format. This file can be read 
              again to define this sequence in another cgx-session.
     - send:  Mapping of surface-loads from one mesh to another one is now
              supported (option surfmap), see also remarks in the manual
              "How to map surface loads".
     - seqa:  Node sequences can be defined (as qseq, for the graph command)
  o  New commands:
     - enq:  Enquires entities (and values of a pre-selected dataset) at a
             given position .
     - flip: Changes the orientation of a set of surfaces or a single surface.
             In case of a single surface with the parameter optional ``auto'' 
             all surfaces will be flipped in a way that they share a common 
             direction (in or out of a volume)
     - qshp: used to define a shape. A shape needs 3 points for its definition.
             The points are selected with the 'p' key. After the points are 
             selected it will be generated by a 'g' keystroke. The shape can
             be assigned to a surface by selecting the surface with the 's' 
             key. The shape will then define the interiour of this surface.
     - shpe: Create a shape which can be used to define the interiour of 
             surfaces or to be used as a target for projections (see qshp).
     - ucut: This command will delete a previous created section (cut) and 
             display the un-cutted structure.

 
cgx 2.1 -> cgx 2.2
---------------------
  o  The target for this version was in general to improve the menu-
     functionality for post-processing.
  o  The special keys PAGE_UP and PAGE_DOWN are now used to scan fast through
     sets. The entities of the previous or next set will be displayed. The type
     of entity is used as in the last plot or plus command. In other words: If
     you have displayed the nodes of set1 and you press PAGE_DOWN you will see 
     the nodes of set2 instead of set1 etc.
  o  The vector-plot option "Viewing->Toggle Vector Plot" will now take 
     immediate effect if a suited entity is already in use.
  o  This is also true for the "Viewing->Toggle Add Displacement" menu
     function.
  o  After "Animate->Dataset Sequence" just one Dataset might be specified
     before the entity is selected. The animation will then use all Datasets
     with this name starting from the selected one. A constant spacing between 
     the Dataset is now not longer required.
  o  The commands qcut, qenq and graph are now included in the menu. But
     with less functionality.

  o  Changed or extended commands:
     - copy:   Nodes and Elements can now be copied together with their 
               results. This is helpfull for calculations which use cyclic-
               symmetrie. For example if just a segment of
               a rotor was calculated but additional sectors with results should
               be displayed. It can be used in combination or instead of the
               parameter "NGRAPH" from the ccx-keyword *CYCLIC SYMMETRY MODEL 
     - copy/swep: 
               Existing sets are appended by the new build geometry only on 
               demand. The letter "a" (append)  must be the last parameter to
               request this functionality. Otherwhise the new geo is appended
               only to the target-set and the set default set "all".
     - graph:  The first and last dataset can be specified in addition to
               restrict the range of datasets.
     - plot/plus:
               If "Viewing->Toggle Vector Plot" is active then nodes will be
               displayed with arrows if the current entity belongs to a vector.
     - prnt:   Wildcards (*) can be used to search for setnames of a certain
               expression. 
     - send:   To write result files in darwin format (life evaluation software)
     - send:   Writes forced displacements normal to element-surfaces
               (the components of the vectors at the node positions
               can be scaled individually (fac1-3)). This is useful to 
               define an offset to the geometry. A subsequent calculation
               with ccx will move the mesh accordingly. After solving the
               deformed mesh can be written and used as a new mesh.
               With this procedure geometric variations are possible without 
               manipulating the geometry (morphing).
     - send:   Single Datasets can now be written in frd format by specifying
               the dataset-nr.
               send <setname> frd ds <datasetnr>
     - tra:    The command uses now model dimensions and the additional param-
               eter "f" will move the mesh forward (towards the user and towards
               the clipping plane). When the mesh penetrates the clipping-plane
               the front part of the model will be clipped (same functionality
               as the menu function "Viewing->Toggle Move-z/Zoom")
     - trfm:   Transforms vectors of the current dataset from cylindrical
               to the basic cartesian system. 
               Useful if vectors (forces etc.) in the
               input-file are specified in a cyl-system but they should be
               visualized with the menu option "Viewing->Toggle Vector Plot"
               Because in this case the data must use the basic cartesian system. 
     - trfm:   The first and last of a range of datasets can be specified.
               Only the first dataset is regarded if no last dataset is 
               specified. As before the current dataset is selected if no dataset
               at all is specified. 


cgx 2.0 -> cgx 2.1
---------------------
  o  The target for this version was in general to improve the batch-
     functionality.
  o  A Result-file can be read during run-time and replaces the existing data. 
  o  The way result-files are read has changed. Up to now the results were read
     before the user-interface started. Now only the meta-information 
     (dataset-name etc.) is read at startup but the node-values are read only
     if a certain dataset is requested. In this way the program starts much 
     faster and the memory-requirement is lower if not all data are viewed.
  o  Stress-components in the directions of a cylindrical system around the
     x-axis are not longer computed automatically for all STRESS datasets.
     Instead a new command "trfm" was implemented.
  o  The command name lc has changed to ds (dataset).

  o  Changed or extended commands:
     - copy/send: Existing sets are extended by the copied/sweeped entities.
     - ds:    is now "ds".
     - del:   "del l0 setname" will delete all lines with zero lenght.
              "del se0" deletes all empty sets
     - mids:  Generate or delete midside-nodes.
     - plot/plus: Plot lines with their end-points "plot lp set"
     - proj:  Moves now points and nodes to surfaces or element-faces.
     - qlin:  The key "x" will transform any line into a straight line and
              the "e" key allows the modification of a lcmb w/o destroying
              related entities like bodies.
     - read:  Now also result-files can be read during run-time and will
              replace existing meshes and results. This allows batch-jobs
              for post-processing.
     - send:  A so called "press-fit" connection between meshes can be created.
              It is based on equations with a forced deflection.
     - send:  To write frd-files with results needs now the parameter ds.
              Otherwhise only the mesh is written.

  o  New commands:
     - cntr:  Define new rotational center of the drawing (as qcnt).
     - cut:   Create a section through the mesh (as qcut).
     - ds:    Was former "lc". Explicidly the last or last-<nr> of dataset 
              can be selected now.
     - font:  Defines the font to use in the drawing- and legend-window.
     - qfil:  Creates a fillet between two intersecting lines.
     - qint:  Extend two lines to their intersection-point.
     - view:  Controlls several viewing options like element-edges on/off etc. 
     - trfm:  Transforms displacements and stresses of the current dataset
              in a cylindrical system.


cgx 1.8 -> cgx 2.0
---------------------
  o  Now 2D-step files can be read. Points and certain types of lines are
     implemented. It was tested with files produced by UG-NX5. The
     parameter -step is necessary during startup of cgx.
  o  The reading of abaqus input files is improved. Initial PLASTICSTRAIN 
     can be read.


  o  Changed or extended commands:
     - elty:  he8f for fluid calculations (ccx element F3D8)
     - graph: Parameter l (length) to plot values along the length of a
              set of nodes. This set has to be a sequence-set ( see qadd)
     - lc:    new parameter s to scale all values of a certain dataset or of a
              range of datasets
     - qadd:  Parameter s to indicate that the set has to maintain the
              sequence of the picked entities. This is used by the graph
              command.
     - qpnt:  Parameter n to indicate that the coordinates of the picked node
              should be used to create a new point.
     - send:  Now with the parameter lc not only temperature-values can be send
              into a file instead also velocity and pressure. With this values
              ccx can be restarted for a cfd calculation (ccx command *INITIAL
               CONDITIONS). The created files have the extension '.dat'
              (former .tem) and the mesh is not longer written in this case.


cgx 1.7 -> cgx 1.8
---------------------
  o  The copy and swep commands did not copy nurbs so far. Now it does.
  o  The reading of abaqus input files is improved. Initial stresses
     can be read.

  o  Changed or extended commands:
     - graph: Now it is not longer necessary to define a sequence of Datasets
              before the graph command can be used. It is possible to define
              the common part of the Dataset-names and the entity which should
              be plotted (ie. graph nodes t DISP D1).
     - plot, plus:
              Bad elements will be shown with the parameter "eq"
     - proj, copy, swep:
              Now the parameters rad and rot can both use either two points to 
              define the rotational axis or just one global axis (x,y,z)
     - qdis:  Angles between two points (p) relative to one centerpoint (c)
              can be measured.
     - qlin:  A line can be lenghted or shortened by picking the line (l) and
              then one end-point (p) which should be moved.
     - seta:  A mesh referenced by a setname and consisting of independend
              meshes can be separated into several new sets. 
              The setnames are generated automatically (seta ! <set>).

  o  New commands:
     - qnor:  A new line normal to a plane defined by three points is
              created.
     - eqal:  Some element quality parameters can be defined. The elements
              will be checked against this parameters either with the menu-
              option "Show Bad Elements" or with the "plot" command. The
              parameters are stored in the fbd file.


cgx 1.6 -> cgx 1.7
---------------------
  o  The hardcopy code is changed. Now it does not use "xwd" any more and 
     works also for other systems than Linux (thanks to Jeff Baylor).
  o  The Coefficients for *EQUATION and the *NODE vectors are written with
     more digits. This improves results for "glued" meshes.
  o  The maximum Shear-Stress (Tresca) is computed automatically for all
     STRESS datasets.
  o  Stress-components in the directions of a cylindrical system around the
     x-axis are computed automatically for all STRESS datasets.
  o  The compressor in the examples-dir comes now with a fillet between disk
     and blades. The stress-distribution is now more realistic.
  o  Changed commands:
     - copy: option "scal" is changed, see "move".
     - del: a background picture can be removed
     - mids: midside nodes can be repositioned in a linear way.
     - move: scaling can be performed to a reference point.
     - proj: Normal projection for all types of surfaces.
     - qpnt: A point can be moved also to a NURBS along the surface-normals.
     - read: If a pixel-file in xwd-format of a certain geometry is available
             it can be included as a background-picture. The user can then
             create geomety based on this picture.
     - send: a forced deflection for spc's (boundary) can be specified.
     - swep: option "scal" is changed, see "move".


cgx 1.5 -> cgx 1.6
---------------------
  o  Capabilities of the command-line are improved. A command history is
     realized.
  o  Entity-names might be as long as 255 characters now.
  o  The sets are selectable by index and by names.
  o  IMPORTANT! Since openFoam-version 1.3 uses a new format it is required to
     convert the resulting files. See section "Remarks Concerning OpenFOAM"
     in the manual.

  o  New commands:
     - length: calculate the length of all lines stored in a set
     - mids:   correct the midside nodes of higher order elements stored in a set
     - split:  split lines and to create points on surfaces included in set1
               where they cross surfaces from set2 
     - tra:    This keyword is used to translate the model on the screen
     - zoom:   This keyword is used to zoom into the model on the screen

  o  Changed commands:
     - graph: Displays also material-properties and amplitudes
     - prnt: Prints also material-properties and amplitudes
     - proj: Normal projection now possible
     - nurs: Nurbs can be created based on existing surfaces following the 
             Coons-algorithm
     - send: Write temperatures with step-information with reference to 
             a cload-file
     - send: thermal connection between parts
     - send: sliding equations (mpcs) between parts
     - send: gap-elements can be defined


cgx 1.4 -> cgx 1.5
---------------------

  o  IMPORTANT! The definition of the line-bias has changed. One decimal digit
     is now supported. A program parameter exists (-oldbias) to convert pre
     v-1.5 models. 
  o  IMPORTANT! The node-numbering has changed. A mesh will have a
     differend node sequence than a pre-1.5 mesh. The mesher has now some
     parameters who control certain aspects of the mesh, see the mesh command. 
  o  ISAAC is now supported (a CFD-3D solver). A mesh can be created and
     results can be visualized.
  o  All geometric operations are now performed with double precission instead
     of float. Results use still float to save space.

  o  New commands:
     - area: This keyword is used to calculate the area and center of 
             gravity of a set of shell elements.
     - bia:  Define a node bias for lines, in addition to qbia 
     - qcut: Cuts the model by a plane and presents the plane. Used to display
             results on this inner section.
     - hcpy: Creates hardcopies and bundles several of them in one file. With
             this feature automatic post-processing is possible.

  o  Changed commands:
     - div:  A bias can be specified in addition to the line-division.
     - mesh: The position of midside nodes of higher order elements are now
             better placed. Parameters to create a blocked mesh for cfd and more. 
     - send: ISSAC (cfd) data are supported. All 3 CFD codes are now treated
             in the same manner
     - seta: A range of node- or element-numbers can be specified.
     - setr: A range of node- or element-numbers can be specified.


cgx 1.3 -> cgx 1.4
---------------------

  o  The color model has changed. Stepped colors are now available on Linux-
     PC's by using textures. This texture-mapping is now default. But if you
     are working on computers who support color-indexing you should change
     to index-mode by editing the cgx.h file (set INX_MODE 1 and TEX_MODE 0).
     The index mode might be faster there.
  o  OpenFOAM is now supported (a CFD solver-lib). A mesh can be created and
     results can be read. Only he8 are supported so far.
  o  You can manipulate the edges which are generated by NETGEN to get better
     results in NETGEN. 

  o  Changed commands:
     - elty: Just type elty to see all sets which have an assigned element-
             type.
     - graph:The dataset-description can be used as a parameter for the 
             x-axis if it is a nummerical value.
     - read: In case NETGEN is used for meshing then the edges which are 
             generated by NETGEN can be read for modifications. They will be
             stored as beam elements.
     - send: It is now possible to write an OpenFOAM polyMesh.
     - qenq: The position of nodes or points is now also given in cylindrical
             coordinates and the sets to which the picked entity belongs are
             listed.


cgx 1.2 -> cgx 1.3
---------------------

  o  IMPORTANT! Some key-values have changed. See 'qpnt', 'qlin', 'qsur',
     'qbod' below. If you do not read it you might not be able to generate
      geometry any more!

  o  The nurbs-trimming capabilities are improved.
  o  A new mesher for unstructured 3-noded triangles is included. With this
     mesher surfaces from cad systems (imported with vda2fbd or step2fbd) are
     meshable (Only surfaces which are related to a nurbs are meshable).
     This mesh might be exported in stl format which can be read by
     other meshing software who fill this volume with tetraeder elements
     (ie. NETGEN). The resulting mesh can be imported in cgx for further
     actions. The unstructured form of an element type must be used (tr3u).
  o  The type of an element can be specified more specificly (reduced 
     integration, incompatible modes (he8r,he8i,he20r). 
  o  A user-function for mesh and result manipulations can be included.
  o  Commands for geometry creation as qlin might modify an already existing
     entity (ie. line, surface..) without destroying the context (if a line
     is redefined all dependent surfaces and bodies will survive).
  o  It is now possible to store all actions or to save an animation in a
     movie.
  o  On startup a result-file (frd) and the corresponding solver input file
     (inp) can be read in together. In this case all sets defined in the 
     input file together with the boundary conditions are available in
     addition to the results ("cgx file.frd file.inp").
  o  On startup an stl file can be read.
  o  On startup automatic line-division-calculation, merging and 
     illumination of surfaces is triggered with the -a parameter instead of
     using the -b parameter.
  o  It is possible to read a solver input file during run-time. For example
     to include additional elements (ie. coming from NETGEN).

  o  New commands:
     - call: This keyword is used to invoke the user provided functions.
     - movi: manipulate giff files to create a movie.
     - volu: This keyword is used to calculate the volume and center of 
             gravity of a set of elements.
     - qele: To manually define elements  

  o  Changed commands:
     - elty: The type of an element can be specified more specificly. It is
             also used to choose the unstructured mesher.
     - qdel: delete also elements and nodes
     - qpnt: The user might specyfy a specific name for the point on the
             command-line or by picking an existing point with the mouse-
             pointer. A point can be moved (projected) to a nurbs-related
             surface. A new point is generated by pressing the "g" (generate)
             key and not longer by pressing the "p" key.
     - qlin: The user might specyfy a specific name for the line on the
             command-line or by picking an existing line with the mouse-
             pointer. The key to end a line has changed from "l" to "g".
     - qsur: The user might specyfy a specific name for the surf on the
             command-line or by picking an existing surf with the mouse-
             pointer. The key to end a line has changed from "l" to "g".
             It is possible to reference a NURBS with the "S" key.
     - qbod: The user might specyfy a specific name for the body on the
             command-line or by picking an existing body with the mouse-
             pointer.
     - qflp: The syntax has changed and all connected surfaces can be 
             oriented regarding the orientation of the selected one.
             Necessary if a cad-volume should be meshed with triangles to
             define a meshable volume.
     - read: It is possible to read a solver input file during run-time.
             For example to include additional elements and nodes. 
     - send: A mesh made of triangles can be exported in stl format.
             and additional features from Paul CARRICO:
             'send all aster' for exporting a complete mesh in CODE ASTER 
             format. The file will have the '.mail' extension
             'send name_set aster names' for exporting the GROUP_NO 
             (node group) and the GROUP_MA (mesh group) which compose the
             set. The file will have '.nam' extension.

  o  New menu-items:
     - Hardcopy -> start recording giff-movie
 

cgx 1.1 -> cgx 1.2
---------------------

  o  Scott Lanham's Nurbs-Trimming functions are stored in a separate library
     called libSNL.

  o  Nodal values can be displayed on the deformed structure with the menu
     item "Toggle Add Displacements".

  o  Arrows representing a vector can be displayed either with the menu
     item "Vector Plot" or in general cases with the command 'lc'. DUNS
     results require the use the command line.

  o  A new entity called 'faces' is available. A face is one side of an
     element and can be used to define boundary conditions. Faces exist
     only on the surface of the part.

  o  New boundary conditions for the thermal capabilities of the solver
     are available like *FILM, *RADIATION etc.

  o  New commands:
     - scal: This keyword is used to scale scalar-, vector-values and 
             the deformed structure. 

  o  Changed commands:
     - qdis: The distances between points are calculated also in the
             cylindrical system.
     - qlin: Lines can be splitted as with 'qspl'.
     - rep:  This command prepares now all types of surfaces for illumination.
             After this command returns you can display all surfaces
             illuminated. This is very helpfull for selection.
     - send: Creates and sends several new boundary conditions for the
             new thermal capabilities of ccx.
     - gsur: formal changes in this command require the update of the
             vda2fbd interface to version 1.0. The version 0.9 of vda2fbd
             might not work for complicated surfaces any longer. 
  

cgx 1.0 -> cgx 1.1
---------------------

  o  Thanks to Scott Lanham Nurbs-Trimming is supported now! CAD-geometries
     can be rendered with illumination. The connection between vda2fbd and
     cgx is much better now.

  o  Wedge-elements can be displayed now.

  o  Bug fixes in:
     - duns-support

  o  Updated documentation.

  o  New commands:
     - qdis: The distances between points are calculated. 

  o  Changed commands:
     - div:  The option "auto" calculates divisions based on element-length
             and curvature. A single line can be used instead of a set.
     - comp: The option e (edges) assigns all edge-points of the
             lines used by the entities which are already included to the set. 
     - qpnt: It is now possible to move a point to a surface if the 
             surface is related to a NURBS.
     - plot/plus: The option 'l' to see elements illuminated is replaced
             by the option 'i'. This option 'i' can also be used with surfaces
             if the surface is related to a NURBS and if the command "rep all"
             was issued before. 
     - rep:  The command (rep) trims the NURBS by the border-lines of the
             related surfaces. If an fbd file is read which 
             includes also NURBS-lines (nurbl) then this commands are issued
             automatically. This is the case if the fbd file was created by
             "vda2fbd" 
              

cgx 0.93 -> cgx 1.0
---------------------

  o  Bug fixes in:
     - command mesh in combination with 7 sided bodies
     - command qspl in combination with splines

  o  Updated documentation.

  o  Some support for the cfd-code duns (www.sourceforge.net) is included.
     It is possible to create 2D- and 3D-meshes and to display the 
     results of a duns-calculation. See the command mesh. To 
     read a result-file you have to use the parameter -duns2d or -duns3d 
     at start-up (example: "cgx -duns2d dunsout").

  o  So far only 6 components (entities) of a dataset could be displayed.
     This has changed and there is no practical restriction any more.

  o  The results of the pre-defined calculations like v. Mises Stress
     are not longer stored in additional datasets. They are added to the 
     basis-datasets. In addition not only the worst-principal-stress is 
     shown, also all 3 principal stresses are included now. 

  o  New commands:
     - qbia: The ratio of the length of the first element to the last 
             element along a line can be set. 

  o  Changed commands:
     - qpnt: A picked first point can be moved to the place of a picked 
             second point.
     - send: Input for the ccx- or abaqus user-routine umpc can be generated.  


cgx 0.92 -> cgx 0.93
---------------------

  o  Bug fixes in:
     - command proj in combination with parameter rot

  o  Updated documentation. Small examples of geometry are shown. A disk,
     a cylinder and a segment of a sphere.

  o  General speed improvements.

  o  Small "undo" functionality in some "q" commands (ie. qadd, qbod)
     
  o  New commands:
     - mata, mats: Material-numbers can be defined. Useful for nastran
                   only.
     - nurl, nurs: Definition of NURBS Lines and Shapes, Nurbs-Lines will
                   be transformed to splines. Useful for CAD-interfaces.
                   Plot this entities with "plot L all" or "plot S all".
     - qseq: Used to redefine a straight- or arc-line as a sequence-line.

  o  Changed commands:
     - body, gbod, qbod: can deal now with five-, six- and seven-sided
                         bodies
     - surf, gsur, qsur: can deal now with three-, four- and five-sided
                         surfaces 
     - comp: Also elements are included in a given set after a
             "comp set up" if nodes were originally included.
     - line, qlin: the definition of arc- and spline-lines are changed.
     - qadd, qbod, qlin, qpnt, qnod, qsur: last action can be erased by
                                           pressing the 'u' key
     - qspl: Multiple crossing lines are splitted in a way, that they use
             a common end-point at the crossing position.
     - read: You might specify a column if you read nodes- or element-
             numbers with the command "read <list-file> '-n'|'-e'&<column>" 

  o  An solver input file (ccx) can be read with the option -c at startup
     (example: "cgx -c solverfile.inp").


cgx 0.91 -> cgx 0.92
---------------------

  o  Bug fixes in:
     - command proj in combination with parameter rot

  o  Updated documentation.

  o  General speed improvements.

  o  Small changes to the mesher. This results in changed node positions
     in situations where opposite edges have different divisions.

  o  Much better element edge representation in the surface mode. In the 
     volume mode the edge representation is unchanged.

  o  New commands:
     - minus: This command will remove certain entities from the display list 
              (annulment of a previous "plus" command).

  o  Changed commands:
     - group: A new mechanism is installed if not suppressed with the 
              parameter -g at the start of the program. This mechanism, called
              "auto-group" assigns the active group number to all elements
              which are displayed by the commands plot or plus. Therefore the
              presentation of results ("Datasets" -> "entity") is restricted
              to the visible sets of elements. With that feature easy insight
              into the structure is possible.

     - plot/plus: A new color l "lighted-grey" is available for elements.
  
  o  New menu-items:
     - Viewing -> Show Bad Elements: Calculates the jacobian matrix and shows
              the elements with negative values. 
 

cgx 0.9 -> cgx 0.91
---------------------

  o  Bug fixes.

  o  Updated documentation.

  o  General speed improvements.

  o  Its now possible to change the first letter in the entity names
     and to define the first node- and element-number of the mesh.
     The function is named "asgn".

  o  Radii can be fixed with the function "corrad".

  o  Time history plots can be created with the function "graph".

  o  Projections of geometry are possible with the function "proj".


