基于Abaqus的python机器人零件仿真应用开发初步探析

2017-06-05 16:05王瑞文史豪斌杨铭邓一鸣闰奕崎
电脑知识与技术 2017年7期
关键词:脚本机器人

王瑞文 史豪斌 杨铭 邓一鸣 闰奕崎

摘要;众所周知,在这计算机高速发展的时代,很多工作已经可以在计算机上完成了,尤其是设计与仿真分析。如今,循环进行“修改到完善”的传统设计方法难以满足现代设计要求,先进的有限元分析方法就成为有效支持产品设计的工具。在众多的有限元软件中,Abaqus作为国际知名的有限元分析软件,其分析精准性早已得到反复验证,广泛的用户群就是不言而喻的有力证明。该文就如何更好的使用Abaqus脚本去对机器人零部件仿真分析进行了研究。

关键词:Ahaqus;Python:脚本;机器人

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2017)07-0077-02

随着计算技术和计算机的快速发展,有限元软件的发展速度迅速,功能日渐强大。目前国际上被广泛采用的通用有限元软件有ANSYS、MSC、ABAQUS等。利用商业软件进行计算现在已是科学研究中的一项重要手段。由于工程问题的千差万别,不同的用户有不同的专业背景和发展方向,通用软件不免在具体的专业方面有所欠缺,针对这些不足,大部分的通用软件都提供了二次开发功能,以帮助用户减少重复性的编程工作、提高开发起点、缩短研发周期、降低开发成本,并能简化后期维护工作,给用户带来很多方便。基于通用软件平台进行开发,是目前研究的一个重要发展方向。ABAQUS也提供了若干用户子程序(User Subroutines)接口,它是一个功能非常强大且适用的分析工具,與命令行的程序格式相比,用户子程序的限制少得多,从而使用更加灵活方便。

为了帮助对机器人仿真分析的人们更方便地使用ABAQUS,通过编写了一个简单易用的GUI界面程序,使得ABAQUS的仿真分析变得简单高效。

1程序用途

1.1主要功能

编写一个基于Python的Tkinter的GUI程序十编写一个基于Python的Tkinter的GUI程序十分的简单,但是对于如何编写ABAQUS的脚本程序,则是一个比较困难的问题。而我们的软件则可以根据输入的机器人零部件梁的各项参数,来自动输出ABAQUS的脚本程序,使用者只需要完整的输入各项参数,便可得到ABAQus的脚本程序,从而获得ABAQUS的仿真结果。

1.2技术特点

本程序利用了ABAQUS作为开发平台,根据关键参数的数值,利用ABAQUS/Standard或ABAQUS/Explicit求解器,产生分析结果。通过ABAQUS/CAE生成的输入文件,脚本程序把它提交给ABAQUS/Standard或ABAQUS/Explicit求解器。求解器读入输入文件进行分析计算,同时发送信息给ABAQUS/CAE以便对作业的进程进行监控,并产生输出数据。最后,用户可使用可视化模块阅读输出数据,观察分析结果。

1.3功能实现主架构

代码通过调用了捆绑在Python编程语言的图形用户界面包Tkinter,实现了能够在UnixMacintosh和Windows系统运行的GUI程序,并运行起来具有本地系统的外观和感觉.Tkinter是解释性脚本语言Python的图形界面开发工具包,是一个清晰的、面向对象的图形界面开发工具,比起c语言等编译性语言更方便的编写GUI程序。

2程序界面介绍

2.1获取各项参数

通过Python库中的Entry组件,获得各项参数的值,图2为软件的部分界面图,分布有悬臂梁静力仿真对应的12个参数的输入框。下面取其中的一个来说明,对ABAQUS脚本的更改。

Label(root,text="矩形截面的长度h:").grid(row=0,column=0)

v1=StringVar()

e1=Entry(root,textvariable=v1)

e1.grid(row=0,column=1,padx=10,pady=5)

此部分主要完成的工作就是获取输入框中的参数,并修改脚本程序。第一行代码调用的Label组件来创见输入框前的标签文字,第二行代码创建一个用于存放输入框中值的变量,第三行代码调用Entry组件来创建一个输入框并将值赋值给变量v1。

2.2更改与参数相关的语句

当获取了各项参数之后,便进行更改ABAQUS的脚本。下面取其中的一个来说明,对ABAQUS脚本的更改。这行代码调用输入框对象的方法get()来修改脚本语句。

x2="\nrflySketch.reetangle(pointl=(0,0),point2=("+e1.get()+","+e2.get()+"))"

2.3获得更改后的脚本

在输入完各项参数后,点击生成脚本,可以从记事本中看到生成脚本的代码,可以从记事本中复制,也可以在程序的路径中找到Script py这个脚本。

2.4程序界面

程序界面的参数包括机器人零部件梁截面的长度,宽度,截面的拉伸长度,材料的弹性模量,泊松比以及压力载荷,并设置三个按钮;

生成脚本:生成可以执行的脚本文件

生成云图:打开分析结果产生的云图

退出:退出程序

2.5运行脚本

可以使用下列方法之一来运行脚本:

1)启动Abaqus/CAE的同时运行脚本.如果从Abaqus命令行窗口中执行,对应的操作如下:依次单击[开始]、[程序]、[Abaqus6.10]、[Abaqus Command],在命令行窗口中输入下列命令,可以在启动Abaqus/CAE的同时并运行脚本:

Abaqus cae script=Script.py

abaqus cae startup=Script.py

其中,Script py表示脚本文件名。使用下列命令,则可以在启动Abaqus/Viewer的同时并运行脚本:

abaqus viewer script=Script.py

abaqusviewer start-up=Script.py

2)不启动Abaqus/CAE而直接运行脚本.如果不启动Abaqus CAE而直接运行脚本,使用下列命令:

abaqus cae noGUI=Script.py

其中,Script py表示脚本文件名称。使用下列命令,可以不启动Abaqus/Viewer而直接运行脚本:

abaqus viewer noGUI=Script.py

3)从启动屏幕(startup screen)运行脚本.

当启动一个新的Abaqus/CAE任务时,Abaqus将显示启动屏幕。单机run Scriot按钮将弹出Run Script对话框,选择需要执行的脚本文件单机OK按钮就可以运行脚本

3结论

通过Python的Tkinter库编写出的GUI程序,可以很好的帮助那些对Abaqus或Abaqus脚本语言不熟悉的人,只需要通过输入机器人零部件的几项参数,就能生成可用于Abaqus仿真的脚本,然后脚本自动完成建模、设定机器人零件的材料参数、界面属性、加载、设置接触、提交作业、后处理观察结果等。

猜你喜欢
脚本机器人
酒驾
数据库系统shell脚本应用
快乐假期