PCL Examples > Finite Element Functions > Transform Action
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX''">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX''">   
Transform Action
This section contains examples of some of the functions used to mirror, rotate, and translate finite element model nodes, elements, multi-point constraints (MPCs), meshes, and mesh seeds.
  
()
#
#  Purpose          :  This file provides an example of a call to the
#                      function fem_transform_elems_mirror_1()
#
#                      This session file creates a new database by
#                      name new.db. Two nodes and a bar element using
#                      the nodes are created. This function is then
#                      called to mirror translate the bar element.
#
#                      This file can be run by starting a session of
#                      Patran, and running this session file
#                      through the "File","Session","Play" pulldown
#                      menus on the menu bar.
#
#  The function fem_transform_elems_mirror()
#  has the following arguments:
#
#  fem_transform_elems_mirror_1
#     (  mirror_elem_select,
#        plane_select,
#        offset,
#        reverse_elements,
#        flag,
#        element_select,
#        nodes_created,
#        elements_created,
#        nodes_deleted,
#        elements_deleted )
#
#---------------------------------------------------------------------
#  Variable Declarations
STRING   s_mirror_elem_select[32]
STRING   s_plane_select[32]
REAL     r_offset
LOGICAL  l_reverse_elements
INTEGER 		i_flag
STRING   s_element_select[32]
STRING   sv_nodes_created[VIRTUAL]
STRING   sv_elements_created[VIRTUAL]
STRING   sv_nodes_deleted[VIRTUAL]
STRING   sv_elements_deleted[VIRTUAL]
STRING   sv_fem_nodes_created[VIRTUAL]
STRING   s_fem_elements_created[32]
INTEGER  i_return_value
 
#---------------------------------------------------------------------
#  Open a new database "new.db"
uil_file_new.go("","new.db")
$? YES 36000002
 
#---------------------------------------------------------------------
#  Create 2 nodes without associating with any geometry
 
i_return_value =                                 @
   fem_create_nodes                              @
      (  "Coord 0", "Coord 0", FALSE, "1",       @
         "[2 2 0][3 5 0]", sv_fem_nodes_created) 
dump i_return_value
 
node_label( TRUE )
bar_elem_label( TRUE )
 
#---------------------------------------------------------------------
#  Create a bar element using the 2 nodes
#
i_return_value =                                 @
   fem_create_elems                              @
      (  "Bar", "Bar2", "1", "Standard",         @
         TRUE, "Node 1", "Node 2", "", "",       @
         "", "", "", "", s_fem_elements_created)
dump i_return_value
dump s_fem_elements_created
 
#---------------------------------------------------------------------
#  Mirror translate the bar element
#
s_mirror_elem_select = "2"
s_plane_select       = "Coord 0.2"
r_offset             = 3.
l_reverse_elements   = TRUE
i_flag	 	 	 	 	 	= TRUE
s_element_select     = "Elm 1"
 
i_return_value =                                 @
   fem_transform_elems_mirror_1		 		 	 	 	 	 	 	 	 	 	 	 	 @
      (  s_mirror_elem_select,                   @
         s_plane_select,                         @
         r_offset,                               @
         l_reverse_elements,                     @
		i_flag	 	 	 	 	 ,                       @
         s_element_select,                       @
         sv_nodes_created,                       @
         sv_elements_created,                    @
         sv_nodes_deleted,                       @
         sv_elements_deleted )
dump i_return_value
dump sv_nodes_created
dump sv_elements_created
dump sv_nodes_deleted
dump sv_elements_deleted
 
sys_free_string(sv_nodes_created)
sys_free_string(sv_elements_created)
sys_free_string(sv_nodes_deleted)
sys_free_string(sv_elements_deleted)
sys_free_string(sv_fem_nodes_created)
 
#---------------------------------------------------------------------
  
()
#
#  Purpose          :  This file provides an example of a call to the
#                      function fem_transform_elems_rotate_1()
#
#                      This session file creates a new database by
#                      name new.db. Two nodes and a bar element using
#                      the nodes are created. This function is then
#                      called to rotate the bar element twice.
#
#                      This file can be run by starting a session of
#                      Patran, and running this session file
#                      through the "File","Session","Play" pulldown
#                      menus on the menu bar.
#
#  The function fem_transform_elems_rotate()
#  has the following arguments:
#
#  fem_transform_elems_rotate_1
#     (  rotate_elem_select,
#        axis_select,
#        rotation_angle,
#        offset_angle,
#        ref_coord_frame,
#        repeat_number,
#		flag	
#        element_select,
#        nodes_created,
#        elements_created,
#        nodes_deleted,
#        elements_deleted )
#
#---------------------------------------------------------------------
#  Variable Declarations
STRING   s_rotate_elem_select[32]
STRING   s_axis_select[32]
REAL     r_rotation_angle
REAL     r_offset_angle
STRING   s_ref_coord_frame[32]
INTEGER  i_repeat_number
INTEGER		i_flag 
STRING   s_element_select[32]
STRING   sv_nodes_created[VIRTUAL]
STRING   sv_elements_created[VIRTUAL]
STRING   sv_nodes_deleted[VIRTUAL]
STRING   sv_elements_deleted[VIRTUAL]
STRING   sv_fem_nodes_created[VIRTUAL]
STRING   s_fem_elements_created[32]
INTEGER  i_return_value
 
#---------------------------------------------------------------------
#  Open a new database "new.db"
uil_file_new.go("","new.db")
$? YES 36000002
 
#---------------------------------------------------------------------
#  Create 2 nodes without associating with any geometry
 
i_return_value =                                 @
   fem_create_nodes                              @
      (  "Coord 0", "Coord 0", FALSE, "1",       @
         "[2 2 0][3 5 0]", sv_fem_nodes_created) 
dump i_return_value
 
node_label( TRUE )
bar_elem_label( TRUE )
 
#---------------------------------------------------------------------
#  Create a bar element using the 2 nodes
#
i_return_value =                                 @
   fem_create_elems                              @
      (  "Bar", "Bar2", "1", "Standard",         @
         TRUE, "Node 1", "Node 2", "", "",       @
         "", "", "", "", s_fem_elements_created)
dump i_return_value
dump s_fem_elements_created
 
#---------------------------------------------------------------------
#  Rotate the bar element twice
#
s_rotate_elem_select = "2"
s_axis_select        = "Coord 0.3"
r_rotation_angle     = 40.
r_offset_angle       = 10.
s_ref_coord_frame    = "Coord 0"
i_repeat_number      = 2
i_flag	 	 	 	 	 	= TRUE
s_element_select     = "Elm 1"
 
i_return_value =                                 @
   fem_transform_elems_rotate_1	 	 	 	 	 		 	 	 	 	 	 	 	 	@
      (  s_rotate_elem_select,                   @
         s_axis_select,                          @
         r_rotation_angle,                       @
         r_offset_angle,                         @
         s_ref_coord_frame,                      @
         i_repeat_number,                        @
		i_flag,   		 	 	 	 	 		 	 	 	 	 	@
         s_element_select,                       @
         sv_nodes_created,                       @
         sv_elements_created,                    @
         sv_nodes_deleted,                       @
         sv_elements_deleted )
dump i_return_value
dump sv_nodes_created
dump sv_elements_created
dump sv_nodes_deleted
dump sv_elements_deleted
 
sys_free_string(sv_nodes_created)
sys_free_string(sv_elements_created)
sys_free_string(sv_nodes_deleted)
sys_free_string(sv_elements_deleted)
sys_free_string(sv_fem_nodes_created)
 
#---------------------------------------------------------------------
   
()
#
#  Purpose          :  This file provides an example of a call to the
#                      function fem_transform_nodes_rotate_1()
#
#                      This session file creates a new database by the
#                      name new.db. A node is created. This function
#                      is then called to rotate the node.
#
#                      This file can be run by starting a session of
#                      Patran, and running this session file
#                      through the "File","Session","Play" pulldown
#                      menus on the menu bar.
#
#  The function fem_transform_nodes_rotate()
#  has the following arguments:
#
#  fem_transform_nodes_rotate_1
#     (  rotate_node_select,
#        axis_select,
#        rotation_angle,
#        offset_angle,
#        ref_coord_frame,
#        repeat_number,
#       	 	flag,
#        node_select,
#        nodes_created,
#        nodes_deleted )
#
#---------------------------------------------------------------------
#  Variable Declarations
STRING   s_rotate_node_select[32]
STRING   s_axis_select[32]
REAL     r_rotation_angle
REAL     r_offset_angle
STRING   s_ref_coord_frame[32]
INTEGER  i_repeat_number
INTEGER		i_flag
STRING   s_node_select[32]
STRING   sv_nodes_created[VIRTUAL]
STRING   sv_nodes_deleted[VIRTUAL]
STRING   sv_fem_nodes_created[VIRTUAL]
INTEGER  i_return_value
 
#---------------------------------------------------------------------
#  Open a new database "new.db"
uil_file_new.go("","new.db")
$? YES 36000002
 
#---------------------------------------------------------------------
#  Create a node
#
i_return_value =                                 @
   fem_create_nodes                              @
      (  "Coord 0", "Coord 0", FALSE, "1",       @
         " [ 5 6 0 ]", sv_fem_nodes_created )
dump i_return_value
dump sv_fem_nodes_created
 
node_label( TRUE )
 
#---------------------------------------------------------------------
#  Rotate the node twice
#
s_rotate_node_select = "2"
s_axis_select        = "Coord 0.3"
r_rotation_angle     = 30.
r_offset_angle       = 10.
s_ref_coord_frame    = "Coord 0"
i_repeat_number      = 2
i_flag	 	 	 	 	 	= TRUE
s_node_select        = "Node 1"
 
i_return_value =                                 @
   fem_transform_nodes_rotate_1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	@
      (  s_rotate_node_select,                   @
         s_axis_select,                          @
         r_rotation_angle,                       @
         r_offset_angle,                         @
         s_ref_coord_frame,                      @
         i_repeat_number,                        @
         i_flag,                       @
         s_node_select,                          @
         sv_nodes_created,                       @
         sv_nodes_deleted )
dump i_return_value
dump sv_nodes_created
dump sv_nodes_deleted
 
sys_free_string(sv_fem_nodes_created)
sys_free_string(sv_nodes_created)
sys_free_string(sv_nodes_deleted)
 
#---------------------------------------------------------------------
  
()
#
#  Purpose          :  This file provides an example of a call to the
#                      function fem_translate_nodes_1()
#
#                      This session file creates a new database by the
#                      name new.db. A node is created. This function
#                      is then called to translate the node.
#
#                      This file can be run by starting a session of
#                      Patran, and running this session file
#                      through the "File","Session","Play" pulldown
#                      menus on the menu bar.
#
#  The function fem_translate_nodes()
#  has the following arguments:
#
#  fem_translate_nodes
#     (  trans_node_select,
#        vector_select,
#        ref_coord_frame,
#        repeat_number,
#        transform_type,
#        delete_parents,
#        node_select,
#        nodes_created,
#        nodes_deleted )
#
#---------------------------------------------------------------------
#  Variable Declarations
STRING   s_trans_node_select[32]
STRING   s_vector_select[32]
STRING   s_ref_coord_frame[32]
INTEGER  i_repeat_number
LOGICAL  l_transform_type
LOGICAL  l_delete_parents
STRING   s_node_select[32]
STRING   sv_nodes_created[VIRTUAL]
STRING   sv_nodes_deleted[VIRTUAL]
STRING   sv_fem_nodes_created[VIRTUAL]
INTEGER  i_return_value
 
#---------------------------------------------------------------------
#  Open a new database "new.db"
uil_file_new.go("","new.db")
$? YES 36000002
 
#---------------------------------------------------------------------
#  Create a node
#
i_return_value =                                 @
   fem_create_nodes                              @
      (  "Coord 0", "Coord 0", FALSE, "1",       @
         " [ 5 6 0 ]", sv_fem_nodes_created )
dump i_return_value
dump sv_fem_nodes_created
 
node_label( TRUE )
 
#---------------------------------------------------------------------
#  Translate the node twice
#
s_trans_node_select = "2"
s_vector_select     = "<1 0 0>"
s_ref_coord_frame   = "Coord 0"
i_repeat_number     = 2
l_transform_type    = FALSE
l_delete_parents    = FALSE
s_node_select       = "Node 1"
 
i_return_value =                                 @
   fem_translate_nodes                           @
      (  s_trans_node_select,                    @
         s_vector_select,                        @
         s_ref_coord_frame,                      @
         i_repeat_number,                        @
         l_transform_type,                       @
         l_delete_parents,                       @
         s_node_select,                          @
         sv_nodes_created,                       @
         sv_nodes_deleted )
dump i_return_value
dump sv_nodes_created
dump sv_nodes_deleted
 
sys_free_string(sv_fem_nodes_created)
sys_free_string(sv_nodes_created)
sys_free_string(sv_nodes_deleted)
 
#---------------------------------------------------------------------
  
()
#
#  Purpose          :  This file provides an example of a call to the
#                      function fem_translate_elems_1()
#
#                      This session file creates a new database by
#                      name new.db. Two nodes and a bar element using
#                      the nodes are created. This function is then
#                      called to translate the bar element.
#
#                      This file can be run by starting a session of
#                      Patran, and running this session file
#                      through the "File","Session","Play" pulldown
#                      menus on the menu bar.
#
#  The function fem_translate_elems()
#  has the following arguments:
#
#  fem_translate_elems
#     (  trans_elem_select,
#        vector_select,
#        ref_coord_frame,
#        repeat_number,
#        transform_type,
#        flag,
#        element_select,
#        nodes_created,
#        elements_created,
#        nodes_deleted,
#        elements_deleted )
#
#---------------------------------------------------------------------
#  Variable Declarations
STRING   s_trans_elem_select[32]
STRING   s_vector_select[32]
STRING   s_ref_coord_frame[32]
INTEGER  i_repeat_number
LOGICAL  l_transform_type
INTEGER 		i_flag
STRING   s_element_select[32]
STRING   sv_nodes_created[VIRTUAL]
STRING   sv_elements_created[VIRTUAL]
STRING   sv_nodes_deleted[VIRTUAL]
STRING   sv_elements_deleted[VIRTUAL]
STRING   sv_fem_nodes_created[VIRTUAL]
STRING   s_fem_elements_created[32]
INTEGER  i_return_value
 
#---------------------------------------------------------------------
#  Open a new database "new.db"
uil_file_new.go("","new.db")
$? YES 36000002
 
#---------------------------------------------------------------------
#  Create 2 nodes without associating with any geometry
 
i_return_value =                                 @
   fem_create_nodes                              @
      (  "Coord 0", "Coord 0", FALSE, "1",       @
         "[2 2 0][3 5 0]", sv_fem_nodes_created) 
dump i_return_value
 
node_label( TRUE )
bar_elem_label( TRUE )
 
#---------------------------------------------------------------------
#  Create a bar element using the 2 nodes
#
i_return_value =                                 @
   fem_create_elems                              @
      (  "Bar", "Bar2", "1", "Standard",         @
         TRUE, "Node 1", "Node 2", "", "",       @
         "", "", "", "", s_fem_elements_created)
dump i_return_value
dump s_fem_elements_created
 
#---------------------------------------------------------------------
#  Translate the bar element
#
s_trans_elem_select = "2"
s_vector_select     = "<2 1 0>"
s_ref_coord_frame   = "Coord 0"
i_repeat_number     = 1
l_transform_type    = FALSE
l_delete_parents    = FALSE
s_element_select    = "Elm 1"
 
i_return_value =                                 @
   fem_translate_elems_1 @
      (  s_trans_elem_select,                    @
         s_vector_select,                        @
         s_ref_coord_frame,                      @
         i_repeat_number,                        @
         l_transform_type,                       @
         i_flag,                    	 	 	 	 	 	 	 	 	 	 	 	 @
         s_element_select,                       @
         sv_nodes_created,                       @
         sv_elements_created,                    @
         sv_nodes_deleted,                       @
         sv_elements_deleted )
dump i_return_value
dump sv_nodes_created
dump sv_elements_created
dump sv_nodes_deleted
dump sv_elements_deleted
 
sys_free_string(sv_nodes_created)
sys_free_string(sv_elements_created)
sys_free_string(sv_nodes_deleted)
sys_free_string(sv_elements_deleted)
sys_free_string(sv_fem_nodes_created)
 
#---------------------------------------------------------------------