One-Click Report Generator (PPTX)
前面我們所介紹的自動生成報告是以 HTML 形式作為報告的主體格式,此篇筆者將介紹用常用的 Office PowerPoint 作為一鍵生成報告格式的作法,本節最後以同步發電機(Synchronous Generator)Maxwell 2D 模擬來做一個「One-Click PPTX Report Generator」功能的呈現。
Last updated
前面我們所介紹的自動生成報告是以 HTML 形式作為報告的主體格式,此篇筆者將介紹用常用的 Office PowerPoint 作為一鍵生成報告格式的作法,本節最後以同步發電機(Synchronous Generator)Maxwell 2D 模擬來做一個「One-Click PPTX Report Generator」功能的呈現。
Last updated
PPTX 是 Microsoft PowerPoint (圖3-13)使用的一種檔案格式,它是一種基於 XML(eXtensible Markup Language)的標記語言。綜整來說 PPTX 格式有以下幾個特點:
檔案結構: PPTX 檔案實際上是一個壓縮的ZIP檔案,其中包含了多個資料夾和檔案。這種結構使得檔案能夠更有效地儲存和處理。
XML格式: PPTX 使用 XML 作為其主要標記語言。這意味著檔案中的內容以可讀的文本形式存在,而不是二進制格式,這有助於易於編輯和理解檔案的結構。
投影片內容: PPTX 檔案包含了演示文稿的所有內容,如文字、圖片、圖表、影片和其他媒體。這些元素都被組織成一個或多個投影片,每個投影片可以包含多個物件。
樣式和格式: PPTX 檔案還包含有關文本樣式、字型、顏色、版面配置等方面的信息。這些資訊確保了演示文稿的一致性和專業外觀。
儲存: PPTX 檔案可以輕鬆地保存在本地裝置或雲端,方便與他人分享。同時,由於使用了XML,它也相對容易與其他應用程式進行整合。
編輯: 除了專業的 PPT 編輯軟體,由於檔案的結構和使用 XML,你也可以使用文本編輯器或來修改 PPTX 檔案。
PPT 是舊版 Office PowerPoint 使用的二進制檔案格式。它不同於 PPTX 的 XML 結構,而是以二進制形式存儲演示文稿內容。PPT 檔案也通常較大也無法用文本編輯器修改。
總的來說,PPTX 是一種更現代、更靈活、更容易處理的格式,而 PPT 則是舊世代格式,可能在一些方面不如 PPTX 靈活和高效。製作 Powerpoint 時,建議盡量使用 PPTX 格式,以確保最佳的相容性和功能。
在日常的工作中,因為 PPTX 是一個靈活且廣泛使用的演示文稿格式,適用於創建具有多媒體內容的專業演示文稿。所以各種工作人員都以 PowerPoint 是主要報告的工具,很多人也會以此來做為報告的整理格式。
以筆者的習慣來說,在設計前期整理日常工作時,HTML 格式非常適合紀錄使用;但在確定最終設計後,生成 PPTX 格式的報告,以便能夠直接在會議中進行口頭報告。恰巧,我們可以利用兩種方式來區分設計中版本(HTML)和最終確認版本(PPTX)。
基於前面章節的基礎,在這篇文章中,筆者將介紹「One-Click PPTX Report Generator」的開發,讓 AEDT 自動產生 PowerPoint 模擬報告。
在 CPython 中有 Python-PPTX 這個方便的模組來產生 PPTX 報告(有興趣的讀者可以參考前面PyAEDT章節),實際上在 IronPython 中,我們有類似的模組可以使用。利用 IronPython 內建的 clr 模組,來加載 "Microsoft.Office.Interop.PowerPoint
" 這個類似於 C# 模組組件,就能來自動製作 PPTX 投影片。然而,與 Python-PPTX 模組提供的豐富說明資源不同,使用這個模組可能會面臨兩個困難:一是模組的語法不像 CPython 那樣簡潔易於理解;二是相關的網路說明資源並不容易找到,撰寫不易。
clr
模組,它是一個IronPython內建的模組,用於訪問.NET組件。
例如: clr.AddReference("Microsoft.Office.Interop.PowerPoint")
: 這一行代碼是使用clr
模組,它是一個 Python 內建的模組,用於訪問 .NET 組件。這裡,它通知IronPython要加載Microsoft.Office.Interop.PowerPoint
組件,這是與 PowerPoint 互動的 .NET 組件。
以下筆者盡自己的淺薄經驗和讀者分享使用方式。
在 IronPython 中,"Microsoft.Office.Interop.PowerPoint
" 模組是一組用於與 PowerPoint 應用程式進行交互的介面和類別的集合。這允許開發者使用 IronPython 腳本來自動化和控制 Microsoft PowerPoint 應用程式,以建立、修改和管理 PowerPoint 演示文稿。
ApplicationClass: 代表 PowerPoint 應用程式的頂層對象。通過創建 ApplicationClass
實例,你可以打開、關閉、建立演示文稿等。
Presentation: 表示 PowerPoint 演示文稿的類別。你可以通過 ApplicationClass
創建新的演示文稿,然後通過該類別來操作演示文稿的屬性和方法。或是打開現有的範本來做套用。
Slide: 代表 PowerPoint 中的一張幻燈片。你可以通過 Slides
屬性獲取演示文稿中的幻燈片集合,並對每張幻燈片進行操作。
Shapes: 表示 PowerPoint 中的形狀物件。可以通過 Shapes
屬性來獲取幻燈片中的形狀集合,並對形狀進行操作。
Table: 代表 PowerPoint 中的表格物件。你可以使用 AddTable
方法在幻燈片中添加表格,並對表格進行操作。
改寫前面的程式碼並加入 PPTX 的生成功能後,程式碼的撰寫就接近完成。相比於 HTML 版本,PPTX 的編成工作不需要全部自定義內容,且因為有了模組的幫忙,可以減少許多編寫程式碼的工作時間。
完成程式碼後,我們依著前面章節的步驟,創建了一個「One-Click PPTX Reporter」的圖示,再利用 customerize tool 將 Script 與圖示放入 AEDT Maxwell 的工具列當中。
置入完成後,可以在 AEDT 的執行畫面中看到,已經新增的 OC_PPTX 按鍵出現在 Automation 的功能頁面中,如圖3-15。直接點選按鍵,就能執行一鍵生成報告。
下面筆者以一個同步發電機案例來作為本節的功能演示。
同步發電機作為一種關鍵的電力轉換裝置,用於將機械能轉換為電能,在多個領域中有廣泛的應用。其原理基於磁場的旋轉,使其成為發電廠、風力發電系統、柴油發電機組等的主要元件。同時,融合 Ansys Maxwell 的模擬技術,我們可以更深入地設計和優化同步發電機,以確保其性能和效率。
應用方面:
在發電廠中,同步發電機與蒸汽或水力渦輪機結合,形成發電機組,提供穩定的電力輸出。同步發電機也被廣泛應用於風力發電系統,將風車轉動能量轉換為電能。在柴油發電機組中,同步發電機是核心元件,應對應急發電和區域電力缺乏的情況。
馬達設計要點:
同步發電機的馬達設計考慮多個關鍵因素。首先,定子和轉子的設計需要嚴謹,包括適當的鐵芯選擇、繞組設計以及轉子極數的配置。在 Ansys Maxwell 的模擬中,進行電磁場分析,確保磁場分佈均勻,繞組設計合理,以提高效能。
此外,考慮冷卻系統的效果是不可或缺的,Ansys Maxwell 的熱損耗分析可以結合 Icepak 模擬冷卻系統的性能,確保發電機在長時間運轉中保持適當的溫度。機械結構分析則涵蓋了振動和應力分析,以及機械部件之間的耦合效應,保證發電機在高速運轉時的穩定性。
最後,效能優化是設計過程中的重要一環。透過 Ansys Maxwell 模擬分析繞組中的損耗,並優化設計,以提高能量轉換效率,確保同步發電機在各種應用中都能發揮最佳性能。同步發電機的應用廣泛,設計考慮多方面因素,結合 Ansys Maxwell 的模擬技術,能夠更精確地設計和優化同步發電機,以應對不同的應用場景,確保其可靠運行和高效能轉換。
在進行模擬完後,我們可以用「One-Click PPTX Report Generator」來產生模擬報告。如圖3-16的動畫所示。執行按鍵後,選擇並確認欲放置的資料夾,接著 AEDT 的 Message 視窗會跳出目前轉檔的情況,完成後報告會自動生成 PPTX 格式放在資料夾中。
因為也是基於本章同樣的程式碼架構做開發,生成的報告如同前面的 HTML 版本,包含了以下幾個部分:
最後生成的報告如圖3-17~19所示。
此次的開發,可重複使用,同樣能安裝在 AEDT 各軟件 (例如:HFSS、Q3D、Icepak、Maxwell3D、Maxwell2D) 中使用。
對於筆者來說,用過 HTML 與 PPTX 這兩種報告格式,兩者各有其適合應用的地方,HTML 好處是一頁式報告,找尋資料與歸檔方便,檔案亦較小容易開啟與保存;PPTX 的格式能快速調整格式、適用於公司資料分享,並能直接做口頭報告使用。
本節介紹的生成式報告 PPTX,能套用現有的 PowerPoint 報告格式。也就是說,如果已經有既定的 PPTX 母片檔案,生成的報告能遵循其格式做套用,快速調整成自我風格的投影片。