() |
## Purpose : This file provides an example of a call to the# function fem_geom_match_closest()## This file opens a new database "new.db" and# creates four points. Gets the closest point# for point 4 from the target list of remaining# three points.# # This file can be run by starting a session of# Patran, through the "File","Session", # "Play" pulldown menus on the menu bar.## The function fem_geom_match_closest()# has the following arguments:## fem_geom_match_closest# ( source_select,# target_select,# entity_count,# match,# distance,# length )##---------------------------------------------------------------------# Variable DeclarationsSTRING s_source_select[32]STRING s_target_select[32]INTEGER i_entity_countSTRING sv_match[VIRTUAL]REAL rv_distance(VIRTUAL)INTEGER i_lengthINTEGER i_return_valueSTRING sv_grid_xyz_created_ids[VIRTUAL]#---------------------------------------------------------------------# Open a new database "new.db"uil_file_new.go("","new.db")$? YES 36000002#---------------------------------------------------------------------# Create four pointsi_return_value = @ asm_const_grid_xyz( "1", "[0 0 0][-1 2 0][1 2 0][2 3 0]", @ "Coord 0", sv_grid_xyz_created_ids )dump i_return_valuepoint_label( TRUE )#---------------------------------------------------------------------# Get the closest match of the point 4 from target lists_source_select = "Point 4"s_target_select = "Point 2 1 3"i_return_value = @ fem_geom_match_closest @ ( s_source_select, @ s_target_select, @ i_entity_count, @ sv_match, @ rv_distance, @ i_length )dump i_return_valuedump i_entity_countdump sv_matchdump rv_distancedump i_lengthsys_free_string(sv_grid_xyz_created_ids)sys_free_string(sv_match)sys_free_array(rv_distance)#---------------------------------------------------------------------() |
## Purpose : This file provides an example of a call to the# function fem_geom_edge_length()## This function opens a new database "new.db"# and creates a quadrilateral and a triangular# elements. It then gets the lengths of all the# element edges using this function.## This file can be run by starting a session of# Patran, through the "File","Session", # "Play" pulldown menus on the menu bar.## The function fem_geom_edge_length()# has the following arguments:## fem_geom_edge_length# ( element_select,# lengths,# entity_count )##---------------------------------------------------------------------# Variable DeclarationsSTRING s_element_select[64]REAL rv_lengths(VIRTUAL)INTEGER i_entity_countINTEGER i_return_valueSTRING sv_elems_created[VIRTUAL]#---------------------------------------------------------------------# Open a new database "new.db"uil_file_new.go("","new.db")$? YES 36000002#---------------------------------------------------------------------# Create a quadrilateral elementi_return_value = @ fem_create_elems ("Quad", "Quad4", "1", "Standard", @ TRUE, "[0 0 0] ","[1 0 0] ", @ "[1 1 0] ", "[0 1 0] ", "", "", "", @ "", sv_elems_created )dump i_return_valuequad_elem_label( TRUE )#---------------------------------------------------------------------# Create a triangular elementi_return_value = @ fem_create_elems( "Tri ", "Tria3", "2", "Standard", @ TRUE, "[2 0 0] ", "[3 0 0] ", @ "[2 1 0] ", "", "", "", "", "", @ sv_elems_created )dump i_return_valuetri_elem_label( TRUE )#---------------------------------------------------------------------# Get lengths of all the edgess_element_select = "Elm 1.1.1 1.1.2 1.1.3 1.1.4 2.1.1 2.1.2 2.1.3"i_return_value = @ fem_geom_edge_length @ ( s_element_select, @ rv_lengths, @ i_entity_count )dump i_return_valuedump rv_lengthsdump i_entity_countsys_free_string(sv_elems_created)sys_free_array(rv_lengths)#---------------------------------------------------------------------() |
## Purpose : This file provides an example of a call to the# function fem_geom_edge_length2()## This file opens a new database "new.db",# creates a cube and meshes it. Using this# function it gets the edge length of two# elements by specifying the required face and# edge ids.## This file can be run by starting a session of# Patran, through the "File","Session", # "Play" pulldown menus on the menu bar.## The function fem_geom_edge_length2()# has the following arguments:## fem_geom_edge_length2# ( edge_count,# element_id,# element_face_id,# element_face_edge_id,# segment_count,# edge_length )##---------------------------------------------------------------------# Variable DeclarationsINTEGER i_edge_countINTEGER ia_element_id(2)INTEGER ia_element_face_id(2)INTEGER ia_element_face_edge_id(2)INTEGER i_segment_countREAL rv_edge_length(VIRTUAL)INTEGER i_return_valueSTRING sv_hpat_xyz_created_ids[VIRTUAL]INTEGER i_mesh_solid_num_nodesINTEGER i_mesh_solid_num_elemsSTRING sv_mesh_s_nodes_created[VIRTUAL]STRING sv_mesh_s_elems_created[VIRTUAL]#---------------------------------------------------------------------# Open a new database "new.db"uil_file_new.go("","new.db")$? YES 36000002#---------------------------------------------------------------------# Create a solidi_return_value = @ asm_const_hpat_xyz( "1", "<1 1 1>", "[0 0 0]", "Coord 0", @ sv_hpat_xyz_created_ids )dump i_return_valuei_return_value = @ ga_view_aa_set (23., -34., 0.)dump i_return_value#---------------------------------------------------------------------# Mesh the solidi_return_value = @ fem_create_mesh_sol_3( "IsoMesh", 0, "Solid 1 ", 1, [0.5], @ "Hex8", "1", "1", "Coord 0", @ "Coord 0", i_mesh_solid_num_nodes, @ i_mesh_solid_num_elems, @ sv_mesh_s_nodes_created, @ sv_mesh_s_elems_created )dump i_return_value#---------------------------------------------------------------------# Get the edge lengths of elementsi_edge_count = 2ia_element_id(1) = 1ia_element_id(2) = 2ia_element_face_id(1) = 5ia_element_face_id(2) = 0ia_element_face_edge_id(1) = 2ia_element_face_edge_id(2) = 8i_segment_count = 2i_return_value = @ fem_geom_edge_length2 @ ( i_edge_count, @ ia_element_id, @ ia_element_face_id, @ ia_element_face_edge_id, @ i_segment_count, @ rv_edge_length )dump i_return_valuedump rv_edge_lengthsys_free_string(sv_hpat_xyz_created_ids)sys_free_string(sv_mesh_s_nodes_created)sys_free_string(sv_mesh_s_elems_created)sys_free_array(rv_edge_length)#---------------------------------------------------------------------() |
## Purpose : This file provides an example of a call to the# function fem_geom_face_area()## This file opens a new database "new.db",# creates a quadrilateral and a triangular# elements. Using this function it gets the# face area of these two elements.## This file can be run by starting a session of# Patran, through the "File","Session", # "Play" pulldown menus on the menu bar.## The function fem_geom_face_area()# has the following arguments:## fem_geom_face_area# ( element_select,# areas,# entity_count )##---------------------------------------------------------------------# Variable DeclarationsSTRING s_element_select[32]REAL rv_areas(VIRTUAL)INTEGER i_entity_countINTEGER i_return_valueSTRING sv_elems_created[VIRTUAL]#---------------------------------------------------------------------# Open a new database "new.db"uil_file_new.go("","new.db")$? YES 36000002#---------------------------------------------------------------------# Create a quadrilateral elementi_return_value = fem_create_elems( "Quad", "Quad4", "1", @ "Standard", TRUE, "[0 0 0] ","[1 0 0] ", "[1 1 0] ", @ "[0 1 0] ", "", "", "", "", sv_elems_created )dump i_return_valuequad_elem_label( TRUE )#---------------------------------------------------------------------# Create a triangular elementi_return_value = fem_create_elems( "Tri ", "Tria3", "2", @ "Standard", TRUE, "[2 0 0] ", "[3 0 0] ", "[2 1 0] ", "", "",@ "", "", "", sv_elems_created )dump i_return_valuetri_elem_label( TRUE )#---------------------------------------------------------------------# Get the face areas of the elementss_element_select = "Elem 1 2 "i_return_value = @ fem_geom_face_area @ ( s_element_select, @ rv_areas, @ i_entity_count )dump i_return_valuedump rv_areasdump i_entity_countsys_free_string(sv_elems_created)sys_free_array(rv_areas)#---------------------------------------------------------------------() |
## Purpose : This file provides an example of a call to the# function fem_geom_elem_volume()## This file opens a new database "new.db", and # creates brick and wedge elements and gets# their volumes using this function.## This file can be run by starting a session of# Patran, through the "File","Session", # "Play" pulldown menus on the menu bar.## The function fem_geom_elem_volume()# has the following arguments:## fem_geom_elem_volume# ( element_select,# volumes,# entity_count )##---------------------------------------------------------------------# Variable DeclarationsSTRING s_element_select[32]REAL rv_volumes(VIRTUAL)INTEGER i_entity_countINTEGER i_return_valueSTRING sv_hpat_xyz_created_ids[VIRTUAL]INTEGER i_mesh_solid_num_nodesINTEGER i_mesh_solid_num_elemsSTRING sv_s_nodes_created[VIRTUAL]STRING sv_s_elems_created[VIRTUAL]#---------------------------------------------------------------------# Open a new database "new.db"uil_file_new.go("","new.db")$? YES 36000002#---------------------------------------------------------------------# Create two solidsi_return_value = @ asm_const_hpat_xyz( "1", "<1 1 1>", "[0 0 0]", "Coord 0", @ sv_hpat_xyz_created_ids )dump i_return_valuei_return_value = @ asm_const_hpat_xyz( "", "<1 1 1>", "[2 0 0]", "Coord 0", @ sv_hpat_xyz_created_ids )dump i_return_valuei_return_value = @ ga_view_aa_set (23., -34., 0.)dump i_return_value#---------------------------------------------------------------------# Mesh the solid 1 with brick elementi_return_value = @ fem_create_mesh_sol_3( "IsoMesh", 0, "Solid 1 ", 1, [1.], @ "Hex8", "1", "1", "Coord 0", @ "Coord 0", i_mesh_solid_num_nodes, @ i_mesh_solid_num_elems, @ sv_s_nodes_created, sv_s_elems_created )dump i_return_valuehex_elem_label( TRUE )#---------------------------------------------------------------------# Mesh the solid 2 with wedge elementi_return_value = @ fem_create_mesh_sol_3( "IsoMesh", 0, "Solid 2 ", 1, @ [1.], "Wedge6", "9", "2", "Coord 0",@ "Coord 0", i_mesh_solid_num_nodes, @ i_mesh_solid_num_elems, @ sv_s_nodes_created, sv_s_elems_created )dump i_return_valuewedge_elem_label( TRUE )#---------------------------------------------------------------------# Get the volume of brick and wedge elementss_element_select = "Elem 1:3 "i_return_value = @ fem_geom_elem_volume @ ( s_element_select, @ rv_volumes, @ i_entity_count )dump i_return_valuedump rv_volumesdump i_entity_countsys_free_string(sv_hpat_xyz_created_ids)sys_free_string(sv_s_nodes_created)sys_free_string(sv_s_elems_created)sys_free_array(rv_volumes)#---------------------------------------------------------------------() |
## Purpose : This file provides an example of a call to the# function fem_geom_elem_location()## This file opens a new database "new.db",# creates a quadrilateral element and gets the# location of all the element edges.## This file can be run by starting a session of# Patran, through the "File","Session", # "Play" pulldown menus on the menu bar.## The function fem_geom_elem_location()# has the following arguments:## fem_geom_elem_location# ( element_select,# locations,# entity_count )##---------------------------------------------------------------------# Variable DeclarationsSTRING s_element_select[64]REAL rv_locations(VIRTUAL)INTEGER i_entity_countINTEGER i_return_valueSTRING sv_elems_created[VIRTUAL]#---------------------------------------------------------------------# Open a new database "new.db"uil_file_new.go("","new.db")$? YES 36000002#---------------------------------------------------------------------# Create a quadrilateral elementi_return_value = @ fem_create_elems( "Quad", "Quad4", "1", "Standard", @ TRUE, "[0 0 0] ","[1 0 0] ", @ "[1 1 0] ", "[0 1 0] ", "", "", "", @ "", sv_elems_created )dump i_return_valuequad_elem_label( TRUE )#---------------------------------------------------------------------# Get the element edge locationss_element_select = "Elm 1 Elm 1.1.1 Elm 1.1.2 Elm 1.1.3 Elm 1.1.4"i_return_value = @ fem_geom_elem_location @ ( s_element_select, @ rv_locations, @ i_entity_count )dump i_return_valuedump rv_locationsdump i_entity_countsys_free_string(sv_elems_created)sys_free_array(rv_locations)#---------------------------------------------------------------------() |
## Purpose : This file provides an example of a call to the# function fem_get_mesh_edge_def_data()## This file opens a new database "new.db"# creates a surface and creates mesh seed for# all the edges with different methods. It# meshes the surface and gets the mesh and# mesh seed details for all the edges using# this function.## This file can be run by starting a session of# Patran, through the "File","Session", # "Play" pulldown menus on the menu bar.## The function fem_get_mesh_edge_def_data()# has the following arguments:## fem_get_mesh_edge_def_data# ( curve_id,# mesh_status,# mesh_type,# num_elements,# mesh_ratio,# num_hard,# node_locations )##---------------------------------------------------------------------# Variable DeclarationsINTEGER i_curve_idINTEGER i_mesh_statusINTEGER i_mesh_typeINTEGER i_num_elementsREAL r_mesh_ratioINTEGER i_num_hardREAL rv_node_locations(VIRTUAL)INTEGER i_return_valueSTRING sv_patch_xy_created_ids[VIRTUAL]INTEGER i_mesh_surfa_num_nodesINTEGER i_mesh_surfa_num_elemsSTRING sv_mesh_s_nodes_created[VIRTUAL]STRING sv_s_elems_created[VIRTUAL]INTEGER i_countINTEGER ia_curve_ids(4) = [1, 2, 3, 4]#---------------------------------------------------------------------# Open a new database "new.db"uil_file_new.go("","new.db")$? YES 36000002#---------------------------------------------------------------------# Create a surfacei_return_value = @ asm_const_patch_xyz( "1", "<1 1 0>", "[0 0 0]", "Coord 0", @ sv_patch_xy_created_ids )dump i_return_value#---------------------------------------------------------------------# Create mesh seed for all the surface edgesi_return_value = @ mesh_seed_create( "Surface 1.1 ", 1, 5, 0., 0., 0. )dump i_return_valuei_return_value = @ mesh_seed_create( "Surface 1.2 ", 3, 5, 1.25, 0., 0. )dump i_return_valuei_return_value = @ mesh_seed_create( "Surface 1.3 ", 5, 5, 1.5, 0., 0. )dump i_return_valuei_return_value = @ mesh_seed_create_tabular( "Surface 1.4 ", "Arc_Length", @ 6, [0., 0.2, 0.4, 0.6, 0.8, 1., 0., 0.] )dump i_return_value#---------------------------------------------------------------------# Mesh the surfacei_return_value = @ fem_create_mesh_surf_2( "IsoMesh", 0, "Surface 1 ", @ 1, [0.1], "Quad4", "1", "1", @ "Coord 0", "Coord 0", @ i_mesh_surfa_num_nodes, @ i_mesh_surfa_num_elems, @ sv_mesh_s_nodes_created, @ sv_s_elems_created )dump i_return_value#---------------------------------------------------------------------# Get the mesh and mesh seed details of all the suface edgesFOR (i_count = 1 TO 4 ) i_curve_id = ia_curve_ids(i_count) i_return_value = @ fem_get_mesh_edge_def_data @ ( i_curve_id, @ i_mesh_status, @ i_mesh_type, @ i_num_elements, @ r_mesh_ratio, @ i_num_hard, @ rv_node_locations ) dump i_return_value dump i_mesh_status dump i_mesh_type dump i_num_elements dump r_mesh_ratio dump i_num_hard dump rv_node_locationsEND FORsys_free_array(rv_node_locations)sys_free_string(sv_patch_xy_created_ids)sys_free_string(sv_mesh_s_nodes_created)sys_free_string(sv_s_elems_created)#---------------------------------------------------------------------