对于建立过大型的ABAQUS分析模型的同学们,肯定会面对繁琐的重复性建模过程。比如对上百个点施加集中力,比如建立几百个耦合约束。这些重复性操作,如果使用cae操作的话,不仅费时,而且极其容易出错。

利用Python程序来处理这些问题吧,把繁琐的工作留给程序吧,我们留下的只有创造力!!!

如下图所示的一块板,我想要在图示的节点处加上水平向和垂向的集中力。每个集中力是时间的函数,所以利用Amplitude中的Tabular来导入荷载时程。

你准备怎么做呢?是直接在cae里面来建立吗,幅值通过复制粘贴来建立??

对于这个只有9个点的情况,当然可以这样,但是假如是有九百个呢?

所以我们需要使用Python。

下面直接给出相关Python程序。#一般在ABAQUS中使用Python必须加上这三行

from abaqus import *

from abaqusConstants import *

from caeModules import *

session.journalOptions.setValues(replayGeometry=COORDINATE,recoverGeometry= COORDINATE)

blist = []

myAssembly = mdb.models['Model-1'].rootAssembly

#将力的时程存在txt文件里。存储格式是第一列为时间,其余每列是荷载时程。每列之间逗号分隔

with open('G:/zhanfang/Faster_focce.txt', 'r') as bf:

bRVlist = [b.strip().split(',') for b in bf]

with open('G:/zhanfang/Faster_focce.txt', 'r') as bf:

bRHlist = [b.strip().split(',') for b in bf]

#建立要加集中力的节点集合。因为节点排列没有顺利,所以按顺序依次建立。在我的模型里节点号为2,1,15,24,21。。。即为[x:x+1]里面的后一个值。

n1 = myAssembly.instances['GD-slab-1'].nodes

nodes1=n1[1:2]+n1[0:1]+n1[14:15]+n1[23:24]+n1[20:21]+n1[31:32]+n1[28:29]+n1[39:40]+n1[36:37]

jiedianshu=9

for i in range(1,jiedianshu+1):

nodesi = nodes1[i-1:i]

F1nodelist = ''.join(['line7load',str(i)])

myAssembly.Set(nodes=nodesi, name=F1nodelist)

nodes2i = nodes2[i-1:i]

F2nodelist = ''.join(['line8load',str(i)])

myAssembly.Set(nodes=nodes2i, name=F2nodelist)

LoadnamelistV = ''.join(['Load8V-',str(i)])

LoadnamelistH = ''.join(['Load8H-',str(i)])

#下面这个程序块是建立垂向力的幅值

train250V = ()

strlist = ['AmpRV-',str(i)]

cstrlistV = ''.join(strlist)

#这个for循环是将荷载数据转换成ABAQUS建立幅值的形式

for bl in bRVlist:

train250V = train250V+((float(bl[0]),float(bl[i])),)

mdb.models['Model-1'].TabularAmplitude(name=cstrlistV, timeSpan=STEP, smooth=SOLVER_DEFAULT, data=train250V)

#下面这个程序块是建立横向力的幅值

train250H = ()

strlist = ['AmpRH-',str(i)]

cstrlistH = ''.join(strlist)

for bl in bRHlist:

train250H = train250H+((float(bl[0]),float(bl[i])),)

mdb.models['Model-1'].TabularAmplitude(name=cstrlistH, timeSpan=STEP,smooth=SOLVER_DEFAULT, data=train250H)

#建立集中力

region1 = myAssembly.sets[F2nodelist]

mdb.models['Model-1'].ConcentratedForce(name=LoadnamelistV, createStepName='Step-2',

region=region1, cf3=1.0, amplitude=cstrlistV, distributionType=UNIFORM,

field='', localCsys=None)

region2 = myAssembly.sets[F2nodelist]

mdb.models['Model-1'].ConcentratedForce(name=LoadnamelistH, createStepName='Step-2',

region=region1, cf1=1.0, amplitude=cstrlistH, distributionType=UNIFORM,

field='', localCsys=None)添加荷载后的板

tips:

1.对于完成某个操作的程序命令具体是怎样的,可以从打开每个模型就会自动生成的abaqus.py文件查看。这个文件记录了每步cae操作对应的命令流。

2.由于Python自身的强制缩进的机制,上面给出的程序在缩进方面需要修改。建立熟悉基本的python语言规则,在来学习将Python和abaqus结合使用。

因为上一篇的关于abaqus的专栏文章多了好多关注呢,谢谢各位的关注啊。本小硕会持续把学习过程中的点滴收获和大家分享哦。

python利用集合的无重复性_利用Python程序完成ABAQUS中的一些重复性操作相关推荐

  1. python怎么重复程序_利用Python程序完成ABAQUS中的一些重复性操作

    对于建立过大型的ABAQUS分析模型的同学们,肯定会面对繁琐的重复性建模过程.比如对上百个点施加集中力,比如建立几百个耦合约束.这些重复性操作,如果使用cae操作的话,不仅费时,而且极其容易出错. 利 ...

  2. python利用集合的无重复性_python集合?

    展开全部 *事先说明:以下代码及结果来自本设备Python控制台,在不同设备上可能32313133353236313431303231363533e59b9ee7ad9431333433643632结 ...

  3. python头像右上角加红色数字_利用python实现微信头像加红色数字功能

    通过Python实现将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 实现过程: 准备两张图片如下: 使用PIL图像处理库,导入moudle ...

  4. python的turtle怎么画曲线_利用 turtle库绘制简单图形

    turtle库是python的基础绘图库,这个库被介绍为一个最常用的用来介绍编程知识的方法库,其主要是用于程序设计入门,是标准库之一,利用turtle可以制作很多复杂的绘图. turtle名称含义为& ...

  5. 基于python的数据分析方法五种_利用Python进行数据分析 第5章 pandas入门(1)

    pandas库,含有使数据清洗和分析工作变得更快更简单的数据结构和操作工具.pandas是基于NumPy数组构建. pandas常结合数值计算工具NumPy和SciPy.分析库statsmodels和 ...

  6. python以某种编码进行打印_如何在一场面试中展现你对Python的coding能力?

    (点击上方快速关注并设置为星标,一起学Python) 来源:Python数据科学    链接: https://mp.weixin.qq.com/s/KwjLpeRT4l-pOc_iRCLWzg 如果 ...

  7. python怎么学比较有技巧_学python必须知道的30个技巧

    收集这些有用的捷径技巧 1. 原地进行交换两个数字 我们对赋值的右侧进行一个新的元组,左侧解析(unpack)那个(未被引用的)元组到变量 和 赋值完成时,新的元组变成了未被引用状态并且被标记没用处, ...

  8. python核心编程第三版_《Python核心编程(第3版)》

    <Python核心编程(第3版)>是经典畅销图书<Python核心编程(第二版)>的全新升级版本,本书适合具有一定经验的Python开发人员阅读,总共分为3部分.第1部分为讲解 ...

  9. python爬虫面试问题及答案_关于Python爬虫面试50道题

    语言特性 1.谈谈对 Python 和其他语言的区别 答:Python属于比较"自由"的语言,首先变量使用前不需要声明类型,其次语句结束不需要使用分号作为结尾,同时不需要大括号进行 ...

最新文章

  1. 【5月19日】 开源论文代码分享 分割、姿势预测,目标检测
  2. 来聊一聊Cookie(小甜饼),及其涉及到的web安全吧
  3. 让开发自动化: 利用 Ivy 管理依赖项
  4. Linux下Shell文件内容替换(sed)(转)
  5. 执行perl xttdriver.pl报错Can't locate Getopt/Long.pm in @INC
  6. JavaScript Promise查缺补漏
  7. listView使用checkBox的实现
  8. iOS开发UI篇—常见的项目文件介绍
  9. 2.3线性表的链式表示和实现(静态链表)
  10. nginx搭建视频服务器
  11. 卫生统计学计算机操作教程第二版,卫生统计学spss中文教程.pdf
  12. java查询城市区号_中国城市电话区号对照表
  13. 5个适合提升自己的自学网站,每一个都很强大, 适合职场人自我提升的学习网站,利用起来,离加薪更近一步
  14. 注释大全,神兽护体,佛祖保佑,永无bug
  15. python转写java踩坑记录
  16. QIIME 2:可重复、交互和扩展的微生物组数据分析流程
  17. stm32 BKP 擦除后备寄存器存储的数据
  18. WLS(适用于Windows的Linux子系统)的安装
  19. ScriptX.cab与Smsx.cab打印代码
  20. 书评:由乍得·福勒撰写的《热情的程序员》

热门文章

  1. SYNCHRONIZE_DRAIN
  2. struts2 action中result参数详解
  3. ASP.NET:判断session是否合法示例
  4. Go 编码建议——风格篇
  5. OpenMP并行加速笛卡尔乘积
  6. MySQL 常见面试知识点
  7. Framework7——基础工具类
  8. ant.design pro 登录模块分析
  9. 【bzoj4355】Play with sequence 线段树区间最值操作
  10. Music 环形界面的算法记录