spool.ses | () |
## Purpose : This file will generate a PATRAN database# "spool.db" which consists of a free standing# aluminum spool, wound with a wire which results# in a compressive pressure on the spool's core# and flanges.## 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.## Model : The spool is 8 units tall with a core diameter of# 2 units, a flange diameter of 8 units. Fillet# radius is 1 unit. The spool is made of aluminum,# 0.075 units thick.## The model consists of# * +400 psi compressive pressure on spool core# * +20 psi compressive pressure on the top and# bottom flanges# * +400 to +20 psi compressive pressure varying# over the top and bottom flanges## Analysis & After running this session file, analysis can be# Results: done by following these steps.# 1. Choose "MSC.Nastran" from "Preferences",# "Analysis..." pulldown menus on the menu bar.# 2. Select "Analysis" switch and from the form# displayed, select the "Subcase Select" menu# button from the "The Subcases For Solution Sequence: 101"# select both default and spool_loads from the List box# and it will be added the selected subcases list box.# Enter OK. This will generate Subcase 1 (Default subcase)# 3. Select the "Translation Parameters..."# button. From the "OUTPUT2 Fomat" Option Menu# select option "Text". Press "OK".# 4. Press "Apply" on "Analysis" window.# If MSC.Nastran is available this will create# a file "spool.op2"# 5. From the "Analysis" window, from "Action"# Option Menu, select "Read Output2" option.# 6. Click on the "Select Results File.." Button# and select "spool.op2". Press "Apply".# 7. The results will be read, and a file# "spool.jbr" is created.#---------------------------------------------------------------------## Create a new database and set the preferencesuil_file_new.go("", "./spool.db")$? YES 36000002ga_viewport_size_set( "default_viewport", 3.5, 3.5, 1 )ga_viewport_location_set( "default_viewport", 0.0, 5.0, 1 )db_set_pref( 303, 3, 0, FALSE, 0.0040000002, "" )#---------------------------------------------------------------------# Construct two curves for the bottom flange and coreSTRING asm_create_line_xyz_created_ids[VIRTUAL]asm_const_line_xyz( "1", "<3 0 0>", "[0 0 0]", "Coord 0", @ asm_create_line_xyz_created_ids )asm_const_line_xyz( "2", "<0 4 0>", "[0 0 0]", "Coord 0", @ asm_create_line_xyz_created_ids )#---------------------------------------------------------------------# Create a fillet between the flange and the core curvesSTRING asm_create_line_fil_created_ids[VIRTUAL]asm_const_line_fillet( "3", 1, 1., 0.0040000002, TRUE, @ "Construct PointCurveUOnCurve (Evaluate Geometry"// @ "(Point 1 )) (Evaluate Geometry (Curve 1 ))", @ "Construct PointCurveUOnCurve (Evaluate Geometry"// @ "(Point 1 )) (Evaluate Geometry (Curve 2 ))", @ asm_create_line_fil_created_ids )$# Do you wish to trim the original curves?$? YESFORALL 1000047#---------------------------------------------------------------------# Create spool surface using Create's Revolve methodSTRING sgm_sweep_surface_r_created_ids[VIRTUAL]sgm_const_surface_revolve( "1", "{[-1 0 0][-1 1 0]}", 360., @ 0.,"Coord 0","Curve 1 3 2", sgm_sweep_surface_r_created_ids )ga_view_aa_set( 30., 60., 0. )ga_display_lines_set( "general", 2 )#---------------------------------------------------------------------# Create the surfaces for the top half of the spool using# Mirror methodSTRING sgm_transform_surf__created_ids[VIRTUAL]sgm_transform_mirror( "4", "surface", "{[0 4 0][0 5 0]}", @ 0., TRUE, FALSE, "Surface 1:3 ", sgm_transform_surf__created_ids )#---------------------------------------------------------------------# Set the positive surface normal vectorsSTRING sgm_edit_surface_r_reversed_ids[VIRTUAL]sgm_edit_surface_reverse( TRUE, "Surface 1:6", @ sgm_edit_surface_r_reversed_ids )sgm_edit_surface_reverse( TRUE, "Surface 1:6", @ sgm_edit_surface_r_reversed_ids )#---------------------------------------------------------------------# Create a local cylindrical coordinate frameSTRING asm_create_cord_3po_created_ids[VIRTUAL]asm_const_coord_3point( "1", "Coord 0", 2, "[-1 0 0]", "[-1 1 0]", @ "[1 0 0]", asm_create_cord_3po_created_ids )#---------------------------------------------------------------------# Create a pressure field 400_20_psi_transitionfields_create( "400_20_psi_transition", "Spatial", 1, "Scalar", @ "Real", "Coord 1", "", "Function", 1, "R", "", "", @ "780-380*'R", "", "", FALSE, [0.], [0.], [0.], [[[0.]]] )#---------------------------------------------------------------------# Apply a pressure varying from 400 to 20 psi on the filletloadsbcs_create( "fillet_pressure", "Pressure", "Element Uniform", @ "2D", "Static", ["Surface 2 5"], "Geometry", "", 1., ["", @ "f:400_20_psi_transition", ""], ["", "", ""] )# Apply a pressure of 400 psi on the coreloadsbcs_create( "400_psi", "Pressure", "Element Uniform", "2D", @ "Static", ["Surface 3 6"], "Geometry", "", 1., ["", "400", @ ""], ["", "", ""] )# Apply a pressure of 20 psi on the top and bottom flangesloadsbcs_create( "20_psi", "Pressure", "Element Uniform", "2D", @ "Static", ["Surface 1 4"], "Geometry", "", 1., ["", "20", ""], @ ["", "", ""] )#---------------------------------------------------------------------# Apply displacement constraint at the centre of the spoolloadsbcs_create( "TZ_fixed", "Displacement", "Nodal", "", "Static", @ ["Point 7"], "Geometry", "Coord 1", 1., ["<0,0,0>", "<0,0,0 >" @ ], ["", ""] )#---------------------------------------------------------------------# Create a new group called "fem_model" and make it currentsys_poll_option( 2 )ga_group_create( "fem_model" )ga_group_current_set( "fem_model" )$# Group "fem_model" created.sys_poll_option( 0 )#---------------------------------------------------------------------# Define mesh seeds for the flanges, core and filletsui_exec_function( "mesh_seed_display_mgr", "init" )mesh_seed_create( "Curve 1 3 2 Surface 6.1 5.1 4.1 ", 1, 4, 0., @ 0., 0.)mesh_seed_create( "Surface 1.1 4.4 ", 1, 24, 0., 0., 0. )mesh_seed_display_mgr.erase( )#---------------------------------------------------------------------# Create the finite element meshINTEGER fem_create_mesh_surfa_num_nodesINTEGER fem_create_mesh_surfa_num_elemsSTRING fem_create_mesh_s_nodes_created[VIRTUAL]STRING fem_create_mesh_s_elems_created[VIRTUAL]fem_create_mesh_surf_2( "IsoMesh", 0, "Surface 1:6 ", 1, [0.1], @ "Quad4", "1", "1", "Coord 0", "Coord 0", @ fem_create_mesh_surfa_num_nodes, @ fem_create_mesh_surfa_num_elems, @ fem_create_mesh_s_nodes_created, @ fem_create_mesh_s_elems_created )#---------------------------------------------------------------------# Equivalence the coincident nodesREAL fem_equiv_all_x_equivtolINTEGER fem_equiv_all_x_segmentfem_equiv_all_group3( [" "], 0, "", 1, 0.0040000002, FALSE, @ fem_equiv_all_x_equivtol, fem_equiv_all_x_segment )#---------------------------------------------------------------------# Optimise the modelINTEGER fem_optimize_iband(4)INTEGER fem_optimize_iprof(4)INTEGER fem_optimize_maxwf(4)REAL fem_optimize_avgwf(4)REAL fem_optimize_rmswf(4)fem_optimize( "Nodes", "Both", "Profile", 1, fem_optimize_iband, @ fem_optimize_iprof, fem_optimize_maxwf, fem_optimize_avgwf, @ fem_optimize_rmswf )#---------------------------------------------------------------------# Define material properties for Aluminummaterial.create( "Analysis code ID", 1, "Analysis type ID", 1, @ "aluminum", 0, "Date: 14-May-97 Time: 13:49:55", @ "Isotropic", 1, "Directionality", 1, "Linearity", 1, @ "Homogeneous", 0, "Linear Elastic", 1, "Model Options & IDs", @ ["", "", "", "", ""], [0, 0, 0, 0, 0], "Active Flag", 1, @ "Create", 10, "External Flag", FALSE, "Property IDs", @ ["Elastic Modulus", "Poisson Ratio", "Density"], [2, 5, 16, 0], @ "Property Values", ["10.1e6", "0.33", "0.1", ""] )#---------------------------------------------------------------------# Create and assign element propertieselementprops_create( "const_thick_spool", 51, 25, 35, 1, 1, 20, @ [13, 20, 36, 4037, 4111, 4118, 4119], [5, 9, 1, 1, 1, 1, 1], @ ["m:aluminum", "", "0.075", "", "", "", ""], "Surface 1:6" )#---------------------------------------------------------------------# Create a load case consisting the pressures and displacement# constraintloadcase_create2( "spool_loads", "Static", "", 1., ["TZ_fixed", @ "20_psi", "400_psi", "fillet_pressure"], [0, 0, 0, 0], [1., 1., @ 1., 1.], "", 0., TRUE )sys_poll_option( 2 )#---------------------------------------------------------------------pref_fa_set([FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,@ FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, @ FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, @ FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, @ FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, @ TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,@ TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,@ TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, @ FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, @ FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, @ FALSE, FALSE, FALSE, FALSE, FALSE], [6, 3, 1, 1, 5, 7, 2, 2, 8,1,@ 2, 3, 3, 5, 2, 1, 3, 4, 5, 3, 3, 2, 2, 2, 2, 6, 6, 6, 3, 6, 15,5,@ 5, 5, 5, 6, 7, 8, 9, 10], [FALSE, FALSE, FALSE, FALSE, FALSE, @ FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, @ FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, @ FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, @ FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE], [3, 4, 5, 6, 1,@ 1, 7, 8, 9, 10], [FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE,@ TRUE, TRUE, TRUE], FALSE )display_fa_vectors( TRUE )sys_poll_option( 0 )#---------------------------------------------------------------------# End of File.