众所周知,在Workbench的Mechanical模块里是有一个自动生成报告的功能,只是鲜有人用,可能是真的不好用,一般情况下,大家都会选择手工编写仿真报告。很多定制的二次开发中都会涉及到自动出报告,但是其实这个功能,其实无需其他额外的软件支持,只需要安装了Ansys,都可以实现,它就是Workbench平台自带的脚本功能(Scripting)。
Workbench平台的二次开发的脚本语言是IronPython,它和现流行的Python在代码编写上差异不大,本次会向大家简单介绍如何利用IronPython来进行控制编写。使用版本Ansys_2021R1。
Workbench的脚本编辑器的界面可以看到使用的IronPython的版本是2.7 on .NET4.0,基本可以约等于Python2.7。.NET实际是微软开发的跨平台框架,能做的事情很多,基本都是基于Windows平台的。
可以看出,Workbench的脚本编辑器的界面是真的平平无奇,但是功能还是很强大的。
这里需要说明,要实现通过脚本编辑器打开Word,首先要保证Word是能够正常使用的(虽然是句废话,但是还是需要提醒一下),版本问题没有测试过,笔者使用的是2013版本。
首先导入必要的模块。
Import 语句用于导入相应的模块,CLR(Common Language Runtime)模块是.NET框架的核心组件之一,主要负责在运行时执行.NET程序。Word是基于.NET框架下的一个应用,因此可以使用IronPython直接调用。
代码:
通过上面两个命令,打开Word应用,由于没有新建空白页,此时的显示是应用打开的状态。
效果:
代码:
效果:
通过Add()方法,新建一个空白页
代码:
效果:
在段落的最后插入文字,文字内容是text1的内容,“\n”是换行。
代码:
效果:
代码给出了图片的地址,插入图片的位置,图片插入时按比例缩小,以及图片的标题。
代码:
效果:
代码给出了图片的地址,插入图片的位置,图片插入时按比例缩小,以及图片的标题。
每次在插入新的内容前,需要先将光标移至最后,才能保证每次插入的新内容是在文章的最后~
#导入模块
import clr
clr.AddReference("Microsoft.Office.Interop.Word")
import Microsoft.Office.Interop.Word as MSWord
#打开应用
wordApp = MSWord.ApplicationClass()
wordApp.Visible = True
#新建空白页
myword = wordApp.Documents.Add()
#插入一段文字
text1 = "我是一段测试文字!"
myword.Paragraphs.Last.Range.Text = text1 + "\n"
#光标移至最后
unite = MSWord.WdUnits.wdStory
wordApp.Selection.EndKey(unite)
#插入图片
picPath = r"D:\test.png"
loc_range = wordApp.Selection.Paragraphs.Last.Range
inlineShape = myword.InlineShapes.AddPicture(picPath,False,True,loc_range)
inlineShape.ScaleWidth = 20
inlineShape.ScaleHeight = 20
pic_title = "我是测试图片"
inlineShape.Range.InsertAfter("\n" + pic_title + "\n")
#光标移至最后
wordApp.Selection.EndKey(unite)
#插入表格
row_num = 3
col_num = 4
loc_range = wordApp.Selection.Paragraphs.Last.Range
table = myword.Tables.Add(loc_range,3,4)
table.Borders.Enable = 1
index = 0
for i in range(row_num):
for j in range(col_num):
table.Cell(i+1,j+1).Range.Text = "我是测试"+str(index)
index +=1