ABAQUS python编程 接触关系的建立、查找find_contacts()、观察(3)

2019-03-16 21:50

name = action[:3] + '_' + inst1.name + '_' + setname[prefix + len(inst1.partName) + 1:] + '(m)//' + inst2.name

created = cont_func (master_inst= inst1, slave_inst=inst2, name=name, m s prop=prop)

elif baseOn == 'slave':

name=action[:3] + '_' + inst2.name + '(m)//' + inst1.name + '_' + setname[prefix + len(inst1.partName) + 1:]

created = cont_func(master_inst=inst2,slave_inst=inst1,name=name, m s prop=prop)

if created:

find_num = find_num + 1

print '★num =',find_num, \\

if one_one == 'yes': ## 假如一个实例只是跟另外一个实例而不是另外多个实例相接触的话。

break

if not found:

print '★No mate faces was found in mate insts based on setname=',setname,'of',inst1.name

## Situation5 (cross‐range method)

if find_num == 0:

print ' '

if sets_tried == True:

print 'Failed by face sets method. ',

print 'Trying cross‐range method... ★★★'

cross_tried = True

for inst1 in base_insts:

space1 = insts_range[inst1.name]

for inst2 in mate_insts:

if inst2.name == inst1.name:

continue

space2 = insts_range[inst2.name]

cross = intersect(space1,space2) ## 获取两个实例之间的交集

if cross <> False:

range_x, range_y, range_z, cross_type = cross

if cross_type <> 'flat_tangent':

continue

print ' '

print 'Finding mate faces of', inst1.name, 'in', inst2.name,'...'

if 'find' in method:

faces1 = face_select(inst1,x=range_x,y=range_y,z=range_z, external=True)

faces1,faces2 = faces_pair(faces1,inst1,inst2,method=['find'],byseed=byseed)

elif 'search' in method:

faces1 = face_select(inst1,x=range_x,y=range_y,z=range_z, external=True)

faces2 = face_select(inst2,x=range_x,y=range_y,z=range_z, external=True)

if len(faces1) > 0 and len(faces2) > 0:

if baseOn == 'master':

name = inst1.name + '(m)//' + inst2.name

created = cont_func(master_inst=inst1, slave_inst=inst2, name=name, m s prop=prop)

elif baseOn == 'slave':

name=inst2.name + '(m)//' + inst1.name

created = cont_func(master_inst=inst2, slave_inst=inst1, name=name, m s prop=prop)

if created:

find_num = find_num + 1

print '★num =',find_num, ', find by flat_tangent cross‐range between two instances:', inst1.name, '//',inst2.name

......

从find_contacts()函数的原型可知,该函数的使用是非常灵活的。可以不提供任何参数,也可以只提供部分参数。完全不提供任何参数时,所建立的部分接触对的主从面或者类型(contact或tie)可能需要更改,这和ABAQUS CAE中的通用接触的界面操作情况是一样的。当提供参数时,所建立的接触对通常不需要修改了。部分具体使用形式如下所示:

## Interactions

## find_contacts('tie',slave_parts=beam2,master_parts=beam1)

## find_contacts('tie',slave_parts=[beam3,beam4],master_parts=beam2,method='cross')

## find_contacts('tie',slave_parts=sup,master_parts=beam2,method='sets')

## find_contacts('tie',slave_parts=sup,master_parts=panel,baseOn='master')

## find_contacts('tie',slave_parts=sup,master_parts=panel,method='cross')

## find_contacts('tie',slave_parts=sup,master_parts=panel,slave_set='fc_sup_top',master_set='fc_panel_rail_left')

## find_contacts('tie',slave_parts=sup,master_parts=panel,slave_set='fc_sup_top', method='find',byseed='no')

## find_contacts('tie',slave_set='fc_sup_top',master_set='fc_panel_rail_left') ##只提供face set

##

## find_contacts('tie',slave_parts=[rope1,rope2,rope3,rope4],master_parts=beam1,method='cross')

## find_contacts('contact',slave_parts=beam2,master_parts = con2)

find_contacts() ##完全不提供任何参数。

下面在参数全部缺省的情况下的让find_contacts()函数自动查找和建立接触对。该函数还可以通过检查 防止建立重复的接触对。该函数对每一个接触对的主从面均建立face set以便检查接触对的实际接触面积。部分查找过程的输出信息如下:

>>> find_contacts()

...

Finding mate faces of panel_A6 by its setname= fc_panel_rail_right (method=['sets', 'find'], byseed=no, one_one=no)...

Refine the source face set fc_panel_rail_right in panel_A6 ...


ABAQUS python编程 接触关系的建立、查找find_contacts()、观察(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:一个草根期货交易者的操盘经历

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: