首頁(yè)/文章/ 詳情
banner

Workbench也能自動(dòng)出仿真報告(你想要的那種)?

1年前瀏覽1899

眾所周知,在Workbench的Mechanical模塊里是有一個(gè)自動(dòng)生成報告的功能,只是鮮有人用,可能是真的不好用,一般情況下,大家都會(huì )選擇手工編寫(xiě)仿真報告。很多定制的二次開(kāi)發(fā)中都會(huì )涉及到自動(dòng)出報告,但是其實(shí)這個(gè)功能,其實(shí)無(wú)需其他額外的軟件支持,只需要安裝了Ansys,都可以實(shí)現,它就是Workbench平臺自帶的腳本功能(Scripting)。

Workbench平臺的二次開(kāi)發(fā)的腳本語(yǔ)言是IronPython,它和現流行的Python在代碼編寫(xiě)上差異不大,本次會(huì )向大家簡(jiǎn)單介紹如何利用IronPython來(lái)進(jìn)行控制編寫(xiě)。使用版本Ansys_2021R1。

1.打開(kāi)腳本編輯器

Workbench的腳本編輯器的界面可以看到使用的IronPython的版本是2.7 on .NET4.0,基本可以約等于Python2.7。.NET實(shí)際是微軟開(kāi)發(fā)的跨平臺框架,能做的事情很多,基本都是基于Windows平臺的。

可以看出,Workbench的腳本編輯器的界面是真的平平無(wú)奇,但是功能還是很強大的。

2.打開(kāi)Word應用

這里需要說(shuō)明,要實(shí)現通過(guò)腳本編輯器打開(kāi)Word,首先要保證Word是能夠正常使用的(雖然是句廢話(huà),但是還是需要提醒一下),版本問(wèn)題沒(méi)有測試過(guò),筆者使用的是2013版本。

首先導入必要的模塊。

Import 語(yǔ)句用于導入相應的模塊,CLR(Common Language Runtime)模塊是.NET框架的核心組件之一,主要負責在運行時(shí)執行.NET程序。Word是基于.NET框架下的一個(gè)應用,因此可以使用IronPython直接調用。

代碼:

通過(guò)上面兩個(gè)命令,打開(kāi)Word應用,由于沒(méi)有新建空白頁(yè),此時(shí)的顯示是應用打開(kāi)的狀態(tài)。

效果:

3.新建空白頁(yè)

代碼:

效果:

通過(guò)Add()方法,新建一個(gè)空白頁(yè)

4.插入一段文字

代碼:

效果:

在段落的最后插入文字,文字內容是text1的內容,“\n”是換行。

5.插入圖片+標題

代碼:

效果:

代碼給出了圖片的地址,插入圖片的位置,圖片插入時(shí)按比例縮小,以及圖片的標題。

6.插入表格

代碼:

效果:

代碼給出了圖片的地址,插入圖片的位置,圖片插入時(shí)按比例縮小,以及圖片的標題。

7.其他

每次在插入新的內容前,需要先將光標移至最后,才能保證每次插入的新內容是在文章的最后~

    #導入模塊import clrclr.AddReference("Microsoft.Office.Interop.Word")import Microsoft.Office.Interop.Word as MSWord#打開(kāi)應用wordApp = MSWord.ApplicationClass()wordApp.Visible = True#新建空白頁(yè)myword = wordApp.Documents.Add()#插入一段文字text1 = "我是一段測試文字!"myword.Paragraphs.Last.Range.Text = text1 + "\n"#光標移至最后unite = MSWord.WdUnits.wdStorywordApp.Selection.EndKey(unite)#插入圖片picPath = r"D:\test.png"loc_range = wordApp.Selection.Paragraphs.Last.RangeinlineShape = myword.InlineShapes.AddPicture(picPath,False,True,loc_range)inlineShape.ScaleWidth = 20inlineShape.ScaleHeight = 20pic_title = "我是測試圖片"inlineShape.Range.InsertAfter("\n" + pic_title + "\n")#光標移至最后wordApp.Selection.EndKey(unite)#插入表格row_num = 3col_num = 4loc_range = wordApp.Selection.Paragraphs.Last.Rangetable = myword.Tables.Add(loc_range,3,4)table.Borders.Enable = 1index = 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
    來(lái)源:CAE中學(xué)生
    MechanicalWorkbench二次開(kāi)發(fā)控制
    著(zhù)作權歸作者所有,歡迎分享,未經(jīng)許可,不得轉載
    首次發(fā)布時(shí)間:2023-05-25
    最近編輯:1年前
    CAE無(wú)劍
    碩士 | 仿真工程師 CAE中學(xué)生
    獲贊 645粉絲 1408文章 236課程 0
    點(diǎn)贊
    收藏
    未登錄
    2條評論
    才人個(gè)是真
    簽名征集中
    4月前
    您好,我為什么用不了這個(gè)方法報錯呀IOException: Could not add reference to assembly Microsoft.Office.Interop.Word
    回復
    Lal
    簽名征集中
    1年前
    博主您好,請問(wèn)該如何實(shí)現”自動(dòng)“功能呢?
    回復
    課程
    培訓
    服務(wù)
    行家
    VIP會(huì )員 學(xué)習 福利任務(wù) 兌換禮品
    下載APP
    聯(lián)系我們
    幫助與反饋