ABAQUS二次开发|findAt函数创建集合的使用方法

关注微信公众号:仿真社,回复“findAt”获取源文件

Abaqus二次开发时,经常会遇到getSequenceFromMask,用此命令创建的集合是掩码编码,若集合是作为优化变量,则不具备操作性,应该尽量避免使用它。findAt函数是解决这一不足的有力武器,findAt函数是通过坐标点的方式来创建point、surface、cell集合,具有参数化的特点,方便控制。

1.问题描述

a)  建立A B 两个区域的集合

ABAQUS二次开发|findAt函数创建集合的使用方法的图1

图1 A,B区域图

有限元模型的长宽分别为60mm,25mm,A区域的位置为x小于30y大于18;B区域的位置为x大于30,y小于7


b)为优化集中力位置,使用findAt()函数在悬臂梁的顶部创建一个施加集中力的可变集合(图2)。

ABAQUS二次开发|findAt函数创建集合的使用方法的图2

图2悬臂梁模型

2.技术路线

2.1创建AB区域的集合

findAt函数是利用区域内的一点坐标创建集合,因此选择A区域的坐标(10,20,0),B区域的坐标(50,5,0),为新创建的集合命名为Set-target,代码如下:

ABAQUS二次开发|findAt函数创建集合的使用方法的图3


2.2 创建点的可变集合

创建点集合的思路为:如果点在线内(不包含端点),则首先创建一个基准点,然后对模型基于基准点进行切分,最后创建集合;如果点在线的两端,则直接创建集合。图2展示了实现该功能的代码,主要是一个判断功能,保证创建的点集合在模型上,否则就报错。

ABAQUS二次开发|findAt函数创建集合的使用方法的图4

图3 判断是否需要进行切分

下面展示了实现创建集合功能的代码,其中findAt函数实现了对加载集中力位置的定义。在定义点时,用到的一个对象是vertices,即顶点,这也就是为什么要切分的原因。模型只有切分了之后才会有顶点!

ABAQUS二次开发|findAt函数创建集合的使用方法的图5

图4 创建集合

3.结果

ABAQUS二次开发|findAt函数创建集合的使用方法的图6

图5 应力云图

4.结论

演示了使用findAt函数参数化建立了集合的流程。 该模型完整代码可在后台回复“findAt”获取。下期给大家分享一个python reader编译器,可实时显示.rpy代码,助力高效 二次开发。若没有第三方软件协助,一个模型成百上千的代码是多么的令人抓狂 ABAQUS二次开发|findAt函数创建集合的使用方法的图7 ABAQUS二次开发|findAt函数创建集合的使用方法的图8 ABAQUS二次开发|findAt函数创建集合的使用方法的图9

往期推荐:

  1. Abaqus|Abaqus与Matlab对I型裂纹研究分析

  2. Abaqus|复合材料热变形案例

  3. Abaqus|杆件结构中刚接点、铰接点、交叉杆件的设置方法与模拟

  4. 二次开发|Python脚本文件生成悬链线


ABAQUS二次开发|findAt函数创建集合的使用方法的图10


ABAQUS二次开发|findAt函数创建集合的使用方法的图11


ABAQUS二次开发|findAt函数创建集合的使用方法的图12

点个在看你最好看

ABAQUS二次开发|findAt函数创建集合的使用方法的图13
ABAQUS二次开发|findAt函数创建集合的使用方法的图14
ABAQUS二次开发

ABAQUS二次开发|findAt函数创建集合的使用方法的评论0条

    暂无评论

    ABAQUS二次开发|findAt函数创建集合的使用方法的相关案例教程

    在讲解 findAt() 方法之前,先让我们简单回顾一下Abaqus中需要指定区域(region)的情况吧~ Load命令:使用region参数指定施加荷载的区域 Mesh命令:使用region参数指定单元类型、网格种子的定义区域 Set命令:使用region参数定义节点集、单元集 当我们在CAE中建立模型后,软件会自动为他们进行编号,如节点编号、单元编号、各条边等,如果我们在编写脚本的时候选用模
    例如:cell4 = mdb.models['block'].parts['crankcase'].cells[4],要把part模块中编号为4的体赋值给cell4,就需通过路径mdb→models→part→cells(4号体属性),其中'block'、'crankcase'、分别是model和part的名字。 在草图Sketch中画线: s = mdb.models[' block '].Co
    前言 Python具有以下特点。Python语言是一种动态解释型编程语言,其功能强大,简单易学,支持面向对象编程((object-oriented programming),虽然由于其动态性致使程序解释执行速度比编译语言慢,但是随着Python语言的不断优化以及计算机硬件的迅猛发展,Python语言将会受到越来越多用户的关注。Python具有开源、自由等特征。它的简洁性和易用性使程序的开发过程变得
    from abaqus import * from abaqusConstants import * backwardCompatibility.setValues(includeDeprecated=True,reportDeprecated=False) # Create a model. myModel = mdb.Model(name='Beam') # Create a new view
    Key1:getSequenceFromMask转换成通用代码 对一个名为“Part-1”的零件创建一个set,命名为“test”,类型选择Geometry,选择模型中某几何边界作为该集合的元素,将模型保存后,查询生成的指令文件Abaqus.rpy,如下: p = mdb.models['test'].parts['Part-1'] e = p.edges edges = e.getSequenc
    影响力
    粉丝
    内容
    获赞
    收藏
      项目客服
      培训客服
      0 3