Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

  
GiD_Geometry -v2 ?-no_model? create|delete|get|list|edit|exists point|line|surface|volume <num>|append <data>
To create, delete, get data or list the identifiers of geometric entities:

...

  • GiD_Geometry -v2 create surface <num>|append planarsurface|nurbssurface|coonsurface|meshsurface|contactsurface <layer> <trimmed>|-interpolate {line1...linen} {o1...on} <geometrical_data>

<geometrical data> depends of each entity type (see get command)

  • GiD_Geometry -v2 create line <num>|append stline|nurbsline|arcline <layer> <inipoint> <endpoint> <geometrical_data>

Instead the NURBS parameters is possible to create a curve that interpolates a list of points (also tangents at start and end can be specified)

...

-interpolate is only valid for nurbssurface, and then must only provide {line1...linen}, but not  {o1...on}  or <geometrical_data>

and in this case the lines must not be a closed boundary, but a series of near-parallel curves, to create a surface interpolating them.

  • GiD_Geometry -v2 create line <num>|append stline|nurbsline|arcline <layer> <inipoint> <endpoint> <geometrical_data>

Instead the NURBS parameters is possible to create a curve that interpolates a list of points (also tangents at start and end can be specified)

  • GiD_Geometry -v2 create point line <num> | append <layer> <point_x> <point_y> <point_z>

...

  • GiD_Geometry delete point|line|surface|volume <args>

with <args>: num numa:numb numa: layer:layer_name

...

  • GiD_Geometry -v2 get point|line|surface|volume <args>

with <args>: num ?line_uv <line_index> | index_boundaries | has_holes | render_mesh | mesh | material?

...

  • GiD_Geometry -v2 get point <num>

will return:
<layer> <geometrical data>
<layer> is the layer name
<geometrical data> the coordinates x y z

  • GiD_Geometry -v2 get line <num>

...

  • nurbsline <layer> <inipoint> <endpoint> {-interpolate {p1_x p1_y p1_z ... pn_x pn_y pn_z} ?-tangents {t0_x t0_y t0_z} {t1_x t1_y t1_z}?}
  • GiD_Geometry -v2 create line <num>|append stline <layer> <inipoint> <endpoint>
  • GiD_Geometry -v2 create point <num>|append <layer> <point_x> <point_y> <point_z>


delete: to erase model entities

  • GiD_Geometry -v2 delete ?-also_lower_entities? point|line|surface|volume {id_1> ... <id_n>}

To delete the geometric entities with this ids. 

-also_lower_entities to delete also its dependent lower-entities when possible (nod depend on other higher-entities or have applied conditions)

{id_1> ... <id_n>} is an objarray of integers (can use a GiD_Geometry list command to select filtered entities, like the surfaces of a layer, etc.)


get: to obtain all the geometrical data to define a single entity

  • GiD_Geometry -v2 get point|line|surface|volume <args>

with <args>: num ?line_uv <line_index> | index_boundaries | has_holes | render_mesh | mesh | material?


line_uv <line_index> extra arguments must be only used in case of nurbs surfaces, to get the information of the <line_index> curve (integer from 1 to the number of trimming curves) on the surface, defined in its uv space parameter.


index_boundaries extra argument to get an objarray of integers with the index of the list of curves where each boundary start.
If the surface doesn't has any hole, it return 0 (the start index of the outer loop)
It the surface has holes it return an index by hole (the start index or the hole inner loop)


has_holes: it return 0 if the surface doesn't has any hole, 1 else


-v2 mean version 2 of this command and then return this data (deprecated version 1 documentation must be seen in help of old versions of the program)

  • GiD_Geometry -v2 get point <num>

will return:
<layer> <geometrical data>
<layer> is the layer name
<geometrical data> the coordinates x y z

  • GiD_Geometry -v2 get line <num>

will return:
<type> <layer> <p1> <p2> <geometrical data>
<type> can be: stline, nurbsline, arcline, polyline
<layer> is the layer name
<p1> identifier of start point
<p2> identifier of end point
<geometrical data> item depends of each entity type
stline: nothing

...


meshsurface: <nnode> {x1 y1 z1 ... xnn ynn znn} {a1 b1 c1 ?d1? ... ane bne cne ?dne?}
nnode: number of nodes by element: 3 or 4 (triangles or quadrilaterals)
xi yi zi: coordinates
ai bi ci di di: connectivities (di only for quadrilaterals: connectivities (di only for quadrilaterals)

  • GiD_Geometry get surface <surface_id> line_uv <line_index>

will return the information of the curve in uv space of the surface <surface_id>, with similar format as GiD_Geometry get line <num> in case of a nurbs curve.

  • GiD_Geometry get surface <surface_id> has_holes

Return a boolean 1 or 0 indicating if the surface is trimmed with inner holes.

  • GiD_Geometry get surface <surface_id> index_boundaries

Return an objarray of int of num_holes+1 items with the index in the list of boundary curves where each loop starts (the first is the outer loop and then the inner loops)

  • GiD_Geometry get surface <surface_id> line_uv <line_index>

...

  • ?-force? render_mesh

Will return the information of the curve in uv space of the surface <surface_id>, with similar format as GiD_Geometry get line <num> in case of a nurbs curve.

  • GiD_Geometry get surface <surface_id> has_holes

Return a boolean 1 or 0 indicating if the surface is trimmed with inner holes.

  • GiD_Geometry get surface <surface_id> index_boundaries

Return an objarray of int of num_holes+1 items with the index in the list of boundary curves where each loop starts (the first is the outer loop and then the inner loops)

  • GiD_Geometry get surface <surface_id> ?-force? render_mesh

Will return the information of the render mesh of the surface <surface_id> as a list: {element_type element_num_nodes coordinates connectivities normals uvs}

...

  • GiD_Geometry -v2 get volume <num>

will return:
<type> <layer> {s1 sn} {o1 ... on}
<type> can be: volume or contactvolume
<layer> is the layer name
{si} identifier of surfaces bounding the volume (including holes. the first must be the outer boundary)
{oi} are its orientation for the volume ( 0 along to the surface normal, 1 opposite)

Note: the normal of a surface with orientation 0 points inside the volume

  • GiD_Geometry get volume <volume_id> has_holes

Return a boolean 1 or 0 indicating if the volume has inner holes.

  • GiD_Geometry get volume <volume_id> index_boundaries

...

  • GiD_Geometry get point|line|surface|volume <id> mesh

Will return the information of the render mesh of the surface <surface_id> as a list: {element_type element_num_nodes coordinates connectivities normals uvs}


use -force flag to create the render mesh if it was not created.


element_type: triangle or quadrilateral
element_num_nodes: 3 or 4
coordinates: objarray with 3*num_nodes items of float with x y z of the render mesh nodes.
connectivities: objarray with element_num_nodes*num_elements of int with the connectivities of the elements (starting by zero)
normals: optional objarray with 3*num_nodes items of float with x y z of the render mesh normals. (it is optional, the array could have zero length)
uvs: optional objarray with 2*num_nodes items of float with u v space parameters of each node. (it is optional, the array could have zero length)

  • GiD_Geometry -v2 get volume <num>

will return:
<type> <layer> {s1 sn} {o1 ... on}
<type> can be: volume or contactvolume
<layer> is the layer name
{si} identifier of surfaces bounding the volume (including holes. the first must be the outer boundary)
{oi} are its orientation for the volume ( 0 along to the surface normal, 1 opposite)

Note: the normal of a surface with orientation 0 points inside the volume

  • GiD_Geometry get volume <volume_id> has_holes

Return a boolean 1 or 0 indicating if the volume has inner holes.

  • GiD_Geometry get volume <volume_id> index_boundaries

Return an objarray of int of num_holes+1 items with the index in the list of boundary surfaces where each shell starts (the first is the outer shell and then the inner shells)

  • GiD_Geometry get point|line|surface|volume <id> mesh

Will return the information of the mesh of the geometric entity <id> as a list: {element_type element_num_nodes node_ids coordinates element_ids connectivities ?radius_and_normals?}
element_type: string
element_num_nodes: integer with the amount of nodes of an element (all mesh elements are of same type)
node_ids: objarray of integers with num_nodes items, where num_nodes is the amount of nodes of the elements of this mesh (node id one-based)
coordinates: objarray with 3*num_nodes items of double with x y z of the mesh nodes.
element_ids: objarray of integers with num_elements items (element id one-based)
connectivities: objarray with element_num_nodes*num_elements of int with the connectivities of the elements (one-based)
radius_and_normals: only for sphere and circle elements. objarray with num_elements items of double with the radius of each element or num_elements*4 items for circles, with the radius and the normal 3D vector (normal to the plane of the circle).


  • GiD_Geometry get surface|volume <id> mesh_boundary

Will return the information of the boundary of the mesh of the geometric entity <id> as a list: {element_type element_num_nodes node_ids coordinates element_ids connectivities ?radius_and_normals?}
element_type: string
connectivities}
element_type: string
element_num_nodes: integer with the amount of nodes of an element (all mesh elements are of same type). Can be also a quadratic mesh, whit more nodes than the linear ones of the corners.
connectivities: objarray with element_num_nodes: integer with the amount of nodes of an element (all mesh elements are of same type)
node_ids: objarray of integers with num_nodes items, where num_nodes is the amount of nodes of the elements of this mesh (node id one-based)
coordinates: objarray with 3*num_nodes items of double with x y z of the mesh nodes.
element_ids: objarray of integers with num_elements items (element id one-based)
connectivities: objarray with element_num_nodes*num_elements of int with the connectivities of the elements (one-based)
radius_and_normals: only for sphere and circle elements. objarray with num_elements items of double with the radius of each element or num_elements*4 items for circles, with the radius and the normal 3D vector (normal to the plane of the circle).*num_elements of int with the connectivities of the elements (one-based)
a volume with a mesh of prisms or pyramid will have as boundary a mix of quadrilateral and triangles, all are expressed as quadrilaterals (triangles will write the 4th node repeating the last id)

It is not returned any information of node_ids, coordinates or element_ids.

the list of node_ids can be obtained easily with something like this, sorting the ids of connectivities removing duplicates

set node_ids [objarray sort -unique [lindex [GiD_Geometry get volume $volume_id mesh_boundary] 2]]

or

set node_ids [ lsort -unique -integer [lindex [GiD_Geometry get volume $volume_id mesh_boundary] 2]]

the coordinates could be obtained from the node_ids with other commands like GiD_Mesh get node

element_ids are not returned because the boundary faces doesn't exists explicitly in GiD, and then they don't have a number


  • GiD_Geometry get point <id> node

...

  • GiD_Geometry get point|line|surface <id> higherentity

Will return an integer >=0 with the counter of parent entities using this entity.

It is not defined for volume because this is the top category and doesn't has any parent.

  • GiD_Geometry get point <id> forced surface|volume

In case of being a point forced to be meshes as a node of a surface or volume it return the id of this geometrical entity


list: to get a list of entity identifiers of a range or inside some layer

  • GiD_Geometry list ?<filter_flags>? point|line|surface|volume ?<args>?

<filter_flags> could be: ?-count? ?-unrendered? ?-higherentity <num_higher>? ?-material <id_material>? ?-layer <layer_name>? ?-plane {a b c d r}? ?-avoid_frozen_layers? ?-mesh_data element_type|structured|meshing|size|skip|boundary_layer|mesher|point_forced_to?

-count to return the amount of entities instead of the objarray with its ids
-unrendered flag is only valid for surface
-higherentity <num_higher> to filter the selection and list only the entities with the amount of parents equal to <num_higher> (integer >=0)
-material <id_material>to filter the selection and list only the entities with material id equal to <id_material> (integer >=0)

-layer <layer_name> to filter the selection and list only the entities with layer equal to <layer_name>
-plane <a b c d r> to list only the entities with center that match the plane equation a*x+b*y+c*z+d<=r
-entity_type <types_allowed> to list only the entities of a type contained in <types_allowed>, that must be a list of allowed types ("STLINE | ARCLINE |POLYLINE | NURBLINE | NURBSURFACE PLSURFACE COONSURFACE MESHSURFACE CONTACTSURFACE VOLUME CONTACTVOLUME")

...

<selected> to set the selection flag (value 0 or 1)


exists: to check if a single entity exists or not

  • GiD_Geometry exists point|line|surface|volume <id>

Return 1 if exists, 0 otherwise



Examples:

Creation of a new NURBS surface:

...