许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  ABAQUS批量建connector连接器脚本,直接拿去用

ABAQUS批量建connector连接器脚本,直接拿去用

阅读数 2
点赞 0
article_banner

这个脚本,在距离判断的时候如果用‘==’,判断连接器两点的距离与我们输入的连接器的长度是否相等时,如果连接器两点的距离比较短可能会不成功

此时,可将if的判定条件‘==’改为'<'

<左边为模型中连接器两点的距离,右边输入一个稍稍大于连接器长度的数

具体的代码如下

代码块

PlainText


     自动换行
   


     复制代码
   

123456789101112131415161718192021222324252627


import section

import regionToolset
import displayGroupMdbToolset as dgm
from abaqusConstants import *
import part
import material
import assembly
import step
import interaction
import load
import mesh
import optimization
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
import math
a = mdb.models['test'].rootAssembly
n1,n2 = a.sets['set1'].nodes,a.sets['set2'].nodes
for i in n1:
    for j in n2:
        xd,yd,zd=i.coordinates[0]-j.coordinates[0],i.coordinates[1]-j.coordinates[1],i.coordinates[2]-j.coordinates[2]
        if pow( xd**2.0+yd**2.0+zd**2.0,0.5 ) < 0.051:
            a.WirePolyLine(points=((i, j),), mergeType=IMPRINT, meshable=OFF)
            
      复制成功
     
     
     
     

加入getinput可以在abaqus里输入所需的参数,修改后的代码如下

代码块

PlainText


     自动换行
   


     复制代码
   

123456789101112131415161718192021222324252627282930313233


#!/usr/bin/python

# -*- coding: utf-8 -*-
import section
import regionToolset
import displayGroupMdbToolset as dgm
from abaqus import*
from abaqusConstants import *
import part
import material
import assembly
import step
import interaction
import load
import mesh
import optimization
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
ModelName = str(getInput("请输入模型的名称"))
Set1 = str(getInput("请输入第一个set的名称"))
Set2 = str(getInput("请输入第二个set的名称"))
a = mdb.models[ModelName].rootAssembly 
n1,n2 = a.sets[Set1].nodes,a.sets[Set2].nodes 
d = float(getInput("请输入连接器的长度"))
for i in n1:
    for j in n2:
        xd,yd,zd=i.coordinates[0]-j.coordinates[0],i.coordinates[1]-j.coordinates[1],i.coordinates[2]-j.coordinates[2]
        if pow(xd**2.0+yd**2.0+zd**2.0, 0.5) < d:
            a.WirePolyLine(points=((i, j),), mergeType=IMPRINT, meshable=OFF)
            
      复制成功
     
     
     
     

可将该脚本在abaqus里做成插件文件在abaqus菜单栏的Plug-ins栏里找到

将以下分享的文件复制到c盘的用户文件夹内,重启abaqus即可使用该插件

基于部件的几何点vertices脚本:

代码块

PlainText


     自动换行
   


     复制代码
   

1234567891011121314151617181920212223242526272829303132333435363738394041424344


#!/usr/bin/python
# -*- coding: utf-8 -*-
import math
import section
import regionToolset
import displayGroupMdbToolset as dgm
from abaqus import*
from abaqusConstants import *
import part
import material
import assembly
import step
import interaction
import load
import mesh
import optimization
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
def euclidean_distance(tuple1, tuple2):
    squared_diffs = [(a - b) ** 2 for a, b in zip(tuple1, tuple2)]
    sum_of_squared_diffs = sum(squared_diffs)
    distance = math.sqrt(sum_of_squared_diffs)
    return distance

ModelName = str(getInput("请输入模型的名称"))
Set1 = str(getInput("请输入第一个set的名称"))
Set2 = str(getInput("请输入第二个set的名称"))
a = mdb.models[ModelName].rootAssembly 
n1 = a.sets[Set1].vertices
n2 = a.sets[Set2].vertices 
d = float(getInput("请输入连接器的长度"))
for i in n1:
    for j in n2:
        up = i.pointOn[0]
        down = j.pointOn[0]
        distance = euclidean_distance(up,down)
        if distance == d:
            a.WirePolyLine(points=((i, j),), mergeType=IMPRINT, meshable=OFF) 
            print(distance)


      复制成功
     
     
     
     



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空