找回密码
 注册
Simdroid-非首页
查看: 718|回复: 12

[二次开发] ABAQUS参数化建模的问题

[复制链接]
发表于 2010-10-29 15:34:12 | 显示全部楼层 |阅读模式 来自 广东广州
想要建立如附件中图片所示的模型,想要实现参数化,输入长宽和椭圆的长半径短半径,然后选择网格划分的方式,来生成这种网格,建立分析的模型。有没有高手能指点一二!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2010-11-7 16:08:00 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
我觉得应该不难吧
回复 不支持

使用道具 举报

发表于 2010-11-7 16:10:01 | 显示全部楼层 来自 黑龙江哈尔滨
use python
回复 不支持

使用道具 举报

发表于 2010-11-7 19:04:19 | 显示全部楼层 来自 山东济南
1# baby_gogogo
你这个问题是参数化建模的基本问题,从几个方面简单说说:
1、从实现方式上说,论坛上有很多的帖子提到可以采用脚本Plug-in的方式实现,可以参考老帖子“Plug-in”,tudou发的,很容易理解6.5或6.6版本的一些程序和界面的交互怎么实现,毕竟手册看起来非常费劲。
2、你重点强调的是网格划分的自动化过程,通过参考手动的.rpy文件,把你输入的数作为变量来定义(看看1提到的例子),也就是说只要你手动实现的,总会有对应的python语句。
3、如果想长时间学习,可以看手册(4个部分)
Programming
Abaqus Scripting User's Manual
Abaqus Scripting Reference Manual
Abaqus GUI Toolkit User's Manual
Abaqus GUI Toolkit Reference Manual

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2010-11-8 11:04:09 | 显示全部楼层 来自 广东广州
4# zhanshenchuanyu
谢谢啊,已经实现了
但是后处理又出现一些问题了,也请教一下你吧
我想输出右侧边界线上的那一排17个节点的位移和应力数值?怎么利用Python选中那些节点,至上而下排列(我想根据判断Y的取值可以实现)输出到一个文本里啊?
回复 不支持

使用道具 举报

发表于 2010-11-8 20:20:48 | 显示全部楼层 来自 山东济南
本帖最后由 zhanshenchuanyu 于 2010-11-8 20:33 编辑

5# baby_gogogo
你的这些点的特点是其中一个坐标值,比如X相等而且最大,同时想通过另一个方向(Y方向)来排列这些最终输出。
建议:遍历所有节点的X坐标并通过比较把最大值得到(通过max()函数),同时得到这17个点,然后可以把Y坐标再判断就简单了,17个点即便是重新判断一遍Y值大小也很快。
位移这些值的输出参考rpy没问题,最终输出用python写入文件功能,写成.txt格式就OK了!
祝成功!

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2010-11-9 08:58:09 | 显示全部楼层 来自 广东广州
6# zhanshenchuanyu
嗯,谢谢啦,这个两侧面的就按照你提供的思路,我去摸索一下!
那再问一下,如果要输出中间椭圆孔一圈的节点上的位移和应力,怎么个思路呢?怎么选中这些椭圆孔的64个节点,按逆时针排序呢?
回复 不支持

使用道具 举报

发表于 2010-11-9 15:57:45 | 显示全部楼层 来自 广东广州
像ANSYS中选中这椭圆的节点,是转换坐标系到画椭圆的坐标系中选择的,
CSWPLA,11,1,1.5,1,
CSYS,11,
NSEL,S,LOC,X,0.06
不知道ABAQUS有没有类似的选法呢?
回复 不支持

使用道具 举报

发表于 2010-11-9 16:22:22 | 显示全部楼层 来自 山东济南
7# baby_gogogo
不太清楚你用这64个点做什么,如果是用作集合,那么直接在建模part里建立,如果划分完网格再建立集合可就是orphan mesh了,建立集合就会走弯路。
判断语句的依据就是你观察一些特征,比如上面我说的某个坐标值相等作为判断条件。
如果是在orphan mesh上做这个操作,用下面的命令
mdb.models[name].parts[name].nodes[i].getElemEdges()
#This method returns a tuple of unique element edges that share the node.
用命令行界面看看那64个点是不是
if len(mdb.models[name].parts[name].nodes[i].getElemEdges())==3:
    ……
而其他的节点把外头的节点去掉都是4,或许这可以作为你的判断语句,一个建议。
回复 不支持

使用道具 举报

发表于 2018-10-30 16:57:51 | 显示全部楼层 来自 北京
学习一下学习一下学习一下学习一下学习一下
回复 不支持

使用道具 举报

发表于 2018-11-5 15:30:04 | 显示全部楼层 来自 北京
学习一下学习一下学习一下学习一下学习一下
回复 不支持

使用道具 举报

发表于 2019-11-7 16:25:39 | 显示全部楼层 来自 浙江杭州

学习一下学习一下学习一下学习一下学习一下
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-25 08:47 , Processed in 0.060069 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表