拿出来大家一起学习吧
呵呵
所用软件:MSC.Marc2005
以下为menten源代码:
*define h 4
*define b 8 *define l 15 *define a1 1.5 *define a2 1 *define a2 1.5 *define a1 1 *define force -5e5 *define moment -1e5 *define nexpand 22 *define da 0.5 *add_solids 0 0 0 b h -l *set_solid_type cylinder *add_solids 0 0 0 0 0 -1 1.5 1.5 *move_reset *set_move_scale_factors a2/a1 1 1 *move_solids 2 # | End of List *move_reset *set_move_translations b h 0 *move_solids 2 # | End of List *fill_view *solids_subtract 1 2 # | End of List *reset_view *fill_view *rot_model_cspace_x_for *rot_model_cspace_x_for *rot_model_cspace_y_rev *rot_model_cspace_y_rev *rot_model_cspace_z_rev *fill_view *convert_solid_faces_surfaces all_existing *remove_solids all_existing *set_curve_div_type_fix_avgl *set_curve_div_type_fix_avgl *set_curve_div_avgl 1 *apply_curve_divisions all_existing *set_curve_div_type_fix_avgl *set_curve_div_type_fix_avgl *set_curve_div_avgl 0.3 *apply_curve_divisions *zoom_box *zoom_box(1,0.385621,0.442735,0.628758,0.724786) 4 36 1 31 3 8 6 9 2 7 5 14 # | End of List *match_curves 0.1 all_existing *dt_surface_trimesh all_existing *fill_view *clear_geometry *set_sweep_tolerance 0.1 *sweep_nodes all_existing *remove_unused_nodes *align_shells 1 *set_mesh_transition 1.1 *dt_tet_tri_mesh all_existing *store_elements tets all_existing *set_nodes off *elements_solid *regenerate *select_clear *visible_selected *add_points 0 -1 0 0 -1.5 0 0 -1 -1 0 -1.5 -1 0 -0.5 0 0 -0.5 -1 *set_curve_type polyline *add_curves 2 4 3 # | End of List *add_curves 1 1 # | End of List *add_curves 3 6 5 # | End of List *set_surface_type ruled *add_surfaces 1 2 2 3 *fill_view *convert_surfaces 1 # | End of List *set_expand_rotations 0 0 -90/nexpand *expand_elements all_visible *set_expand_repetitions *undo *set_expand_repetitions nexpand *expand_elements all_visible *store_elements crack1 all_visible *set_sweep_tolerance 0.001 *sweep_nodes all_visible *select_clear *visible_selected *convert_surfaces 2 # | End of List *expand_elements all_visible *fill_view *store_elements crack2 all_visible *sweep_nodes all_visible *select_clear *visible_selected *clear_geometry *add_points 0 -0.5 0 0 0 0 *set_curve_type arc_cpp *add_curves 0 0 0 -0.5 0 0 0 -0.5 0 *set_curve_type line *add_curves 2 3 2 1 *set_curve_div_type_fix_ndiv *set_curve_div_type_fix_ndiv *set_curve_div_num 10 *apply_curve_divisions 2 3 # | End of List *set_curve_div_type_fix_ndiv *set_curve_div_num 22 *apply_curve_divisions 1 # | End of List *set_mesh_transition 1 *af_planar_quadmesh all_visible *set_expand_translations 0 0 -1/5 *expand_reset *set_expand_translations 0 0 -1/5 *set_expand_repetitions 5 *expand_elements all_visible *remove_unused_nodes *clear_geometry *store_elements fill all_visible *select_sets tets *move_reset *set_move_scale_factors a2/a1 1 1 *move_elements all_unselected *move_reset *set_move_translations b h 0 *move_elements all_unselected *select_clear *fill_view *select_sets crack2 fill *visible_selected *fill_view *set_sweep_tolerance 0.005 *sweep_nodes all_visible *select_clear *invisible_selected *fill_view *zoom_box *zoom_box(1,0.418301,0.494017,0.596078,0.682051) *select_sets crack1 *visible_selected *set_curve_type arc_cpa *set_curve_type arc_cpp *add_curves 0 0 0 -1 0 0 0 -1 0 *move_reset *set_move_scale_factors a2/a1 1 1 *move_curves all_existing *fill_view *move_reset *set_move_translations b h 0 *move_curves all_existing *fill_view *set_attach_limit on *set_attach_distance 0.01 *set_attach_tolerance 1e-5 *attach_edges_curve 1 *undo *fill_view *move_curves all_existing *fill_view *attach_nodes_point *attach_edges_curve *attach_faces_surface *attach_edges_curve 1 all_visible *select_nodes_curves 1 # | End of List *store_nodes crackfront all_selected *store_nodes crackfront *select_clear *invisible_selected *fill_view *zoom_box *zoom_box(1,0.405229,0.464957,0.606536,0.711111) *new_crack *crack_option rigreg_method:topology *crack_param num_rig_regions 7 *set_crack_tip_node_path crackfront *crack_param tip_node_dist_tol 0.001 *material_type mechanical:isotropic *material_value isotropic:youngs_modulus 2e5 0.3 *add_material_elements all_existing *zoom_box *zoom_box(1,0.558170,0.600000,0.684967,0.687180) *fill_view *zoom_box *zoom_box(1,0.473203,0.540171,0.482353,0.558974) *new_contact_body *contact_body_name crack2 *contact_deformable *add_contact_body_elements crack2 fill *new_contact_body *contact_body_name crack1 *contact_deformable *add_contact_body_elements crack1 *new_contact_body *contact_body_name tets *contact_deformable *add_contact_body_elements tets *fill_view *clear_geometry *add_points -10 -10 -l -10 20 -l 18 -10 -l 18 20 -l *set_surface_type quad *add_surfaces 2 1 3 4 *add_points b -10 10 b -10 -25 b 20 -25 b 20 10 *add_surfaces 6 7 8 5 *duplicate_reset *set_duplicate_translations 0 0 l *duplicate_surfaces 1 # | End of List *flip_surfaces 1 # | End of List *fill_view *new_contact_body *contact_body_name moving *contact_rigid *contact_option control:load *add_contact_body_surfaces 1 # | End of List *renumber_nodes *add_nodes b/2 h/2 -l b/2 h/2 -l *new_contact_body *contact_body_name force *remove_current_contact_body *cbody_control_node nnodes()-1 *cbody_control_node_rot 6964 *new_apply *apply_name force *new_md_table 1 1 *table_name *set_md_table_type 1 time *table_name pointload *table_add 0 0 1 1 *show_model *apply_type point_load *apply_dof z *apply_dof_value z force *apply_dof_table z pointload *add_apply_nodes nnodes()-1 # | End of List *new_apply *apply_name moment *apply_type point_load *apply_dof mx *apply_dof_value mx moment *apply_dof_table mx pointload *add_apply_nodes nnodes() # | End of List *new_contact_body *contact_body_name symmx *contact_symmetry *add_contact_body_surfaces 2 # | End of List *new_contact_body *contact_body_name cracksym *contact_symmetry *add_contact_body_surfaces 3 # | End of List *new_contact_table *contact_table_entry 1 3 *contact_table_option $ctbody1 $ctbody2 contact_type:glue *contact_table_option $ctbody1 $ctbody2 glue_separation:allowed *contact_table_property $ctbody1 $ctbody2 sep_for 1e32 *contact_table_entry 1 2 *contact_table_option $ctbody1 $ctbody2 contact_type:glue *contact_table_option $ctbody1 $ctbody2 glue_separation:allowed *contact_table_property $ctbody1 $ctbody2 sep_for 1e32 *contact_table_entry 3 2 *contact_table_option $ctbody1 $ctbody2 contact_type:glue *contact_table_option $ctbody1 $ctbody2 glue_separation:allowed *contact_table_property $ctbody1 $ctbody2 sep_for 1e32 *contact_table_entry 3 4 *contact_table_option $ctbody1 $ctbody2 contact_type:glue *contact_table_option $ctbody1 $ctbody2 glue_separation:allowed *contact_table_property $ctbody1 $ctbody2 sep_for 1e32 *contact_table_entry 2 5 *contact_table_option $ctbody1 $ctbody2 contact_type:touching *contact_table_entry 1 5 *contact_table_option $ctbody1 $ctbody2 contact_type:touching *contact_table_entry 3 5 *contact_table_option $ctbody1 $ctbody2 contact_type:touching *contact_table_entry 2 6 *contact_table_option $ctbody1 $ctbody2 contact_type:touching *contact_table_entry 3 6 *contact_table_option $ctbody1 $ctbody2 contact_type:touching *loadcase_type static *loadcase_ctable ctable1 *job_class mechanical *add_job_loadcases lcase1 *job_contact_table ctable1 *job_param disttol 0.01 *add_post_tensor stress *add_post_var von_mises *job_option solver:it_sparse *job_option sparse_prec:inc_chol *save_model *update_job *submit_job 1 *monitor_job *kill_job *monitor_job *apply_type point_load *apply_dof x *apply_dof_value x *clear_apply_dof mx *apply_dof_value x moment *apply_dof_table x pointload *save_model *update_job *submit_job 1 *monitor_job *monitor_job *update_job *submit_job 1 *monitor_job *save_model *post_open_default *post_contour_bands *set_deformed both *find_solid_outline *post_value Equivalent Von Mises Stress *post_monitor *zoom_box *zoom_box(1,0.435294,0.515203,0.607843,0.726351) *post_monitor *zoom_box *zoom_box(1,0.295425,0.224662,0.515033,0.452703) *save_model |