精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Excel真的可以調用HFSS?

iIeQ_mwrfnet ? 來源:微波射頻網 ? 作者:94巨蟹座少年 ? 2021-06-28 15:34 ? 次閱讀

學個Antenna是以天線仿真和調試為主,理論原理為輔的干貨天線技術專欄,包括天線入門知識以及各類天線的原理簡介、仿真軟件建模、設計、調試過程及思路。如有想看到的內容或技術問題,可以在文尾寫下留言。

摘要:

學個Antenna:HFSS腳本建模入門一文,對HFSS腳本建模進行了入門級的介紹,不過要裝上日趨臃腫、動輒十幾G的MATLAB軟件。幸運的是,HFSS支持VBScript進行二次開發,因此在Excel中對HFSS進行調用不是夢!

本文使用的軟件為AnsysEM 18.2和Excel 2013

0 1Excel vba

Microsoft Visual Basic for application,簡稱為VBA,是Visual Basic的一種宏語言,是微軟開發出來在其桌面應用程序中執行通用的自動化(OLE)任務的編程語言。那這個和HFSS軟件有啥聯系么?

在HFSS軟件中順著Help文件找到HFSS Scripting(文末有HFSS官方HFSS Scripting Guide下載鏈接),打開該PDF,在Introduction to VBScript章節,我們可以獲得以下信息

ANSYS Electronics Desktop uses theMicrosoft Visual Basic Scripting Edition (VBScript) scripting language to recordmacros. VBScript is based on theMicrosoft Visual Basic programming language

ANSYS Electronics Desktop 使用 Microsoft Visual Basic Scripting Edition (VBScript) 腳本語言來記錄宏。 VBScript 基于 Microsoft Visual Basic 編程語言

Using scripts is a fast, effective way to accomplish tasks you want to repeat.When you execute a script, the commands in the script are performed.

使用腳本是完成您想要重復的任務的一種快速、有效的方法。當您執行腳本時,腳本中的命令就會被執行。

You can write a script using any text editor or you can record a script fromwithin the ANSYS Electronics Desktop interface. After recording the script fromwithin ANSYS Electronics Desktop, you can thenmodify it if necessary using a text editor.

您可以使用任何文本編輯器編寫腳本,也可以從 ANSYS Electronics Desktop 界面中記錄腳本。 在 ANSYS Electronics Desktop 中記錄腳本后,如有必要,您可以使用文本編輯器對其進行修改。

由于Excel內置了VBA代碼編輯器,因此理論上可以用其進行調用HFSS進行建模。

新建一個excel文件,另存為.xlsm格式(擴展名xlsm在打開excel文件時,會自動執行宏代碼)。如下圖所示,即可打開VBA編輯器。

一個簡單的測試代碼如下:

Sub Hello() Dim bj As String bj = InputBox(“請輸入您的文本”, “請輸入”) MsgBox “確定按鈕被點擊”, vbOKOnlyEnd Sub

0 2Excel調用HFSS軟件

當上面的步驟都順暢無阻后,我們可以進入下一環節,即在Excel vba編輯器里面編寫代碼調用HFSS軟件。首先我們要打開HFSS軟件,并保證Project Manager下為空,防止后續出現報錯現象。

‘oAnsoftApp為VBScript提供了訪問Ansys.ElectronicsDesktop的句柄Set oAnsoftApp = CreateObject(“Ansoft.ElectronicsDesktop”)

’oDesktop用于執行桌面級操作,包括項目管理。Set oDesktop = oAnsoftApp.GetAppDesktop()

‘Project對象對應于產品中打開的一個項目。它用于操縱項目及其數據。 ’其數據包括變量、材料定義等。Set oProject = oDesktop.GetActiveProject()

‘oDesign對象對應于項目中已存在的一個設計實例。該對象用于操縱設計及其數據。’它的數據包括變量、模塊和編輯器。Set oDesign = oProject.GetActiveDesign()

‘oEditor 對象對應于已存在的一個編輯器,例如3D建模器、布局或原理圖編輯器。’該對象用于在編輯器中添加和修改數據。Set oEditor = oDesign.SetActiveEditor(“3D Modeler”)

‘oModule 對象對應設計中的一個模塊。Modules 用于處理一組相關功能。Set oModule = oDesign.GetModule(“BoundarySetup”)

當然,看完上面的內容可能會云里霧里,現在直觀地解釋下:

首先你要創建一個Ansoft.ElectronicsDesktop對象,并獲取oDesktop用于執行桌面級操作。這就是你手動打開HFSS軟件并獲得該軟件控制權的那一步

接著oProject和oDesign就是模擬你新建Project和Design,獲得其句柄

然后oEditor和oModule主要是獲取我們建模、設置邊界條件、求解器、建立報告等操作的句柄

紙上得來終覺淺,我們可以打開HFSS的腳本錄制功能,在錄制的代碼中來學習:

’ ----------------------------------------------‘ Script Recorded by ANSYS Electronics Desktop Version 2017.2.0’ ----------------------------------------------Dim oAnsoftAppDim oDesktopDim oProjectDim oDesignDim oEditorDim oModuleSet oAnsoftApp = CreateObject(“Ansoft.ElectronicsDesktop”)Set oDesktop = oAnsoftApp.GetAppDesktop()oDesktop.RestoreWindowSet oProject = oDesktop.NewProjectoProject.InsertDesign “HFSS”, “HFSSDesign1”, “DrivenModal”, “”

從上面的代碼中,我們可以很直觀地感受到:先進行oAnsoftApp,oDesktop,oProject,oDesign,oEditor,oModule五要素的變量定義;接著對oAnsoftApp,oDesktop配置句柄;然后利用oProject.InsertDesign插入一個“HFSSDesign1”的設計文件。

剩下的oEditor,oModule我們可以根據上面的編程邏輯進行句柄的設置。

Set oDesign = oProject.SetActiveDesign(“HFSSDesign1”) Set oEditor = oDesign.SetActiveEditor(“3D Modeler”)

到此為止,我們就將調用HFSS需要的句柄全部掌握在手里了,后續在Excel中調用HFSS軟件指日可待。

在官方HFSS Scripting Guide的P51:Sample HFSS Script里有一段比較詳細的英文教程,建議大家先觀摩下。

0 3簡單實例演示

以上內容都讀懂后,剩下的就是自己錄制腳本,分析代碼,學習修改代碼,封裝成function進行調用。

這里給出本人部署好的一段代碼,可直接粘貼到Excel vba編輯器進行復現:

Sub Training1() Dim oAnsoftApp Dim oDesktop Dim oProject Dim oDesign Dim oEditor Dim oModule

Dim sub1_H, sub1_W, sub1_L sub1_H = 0.254: sub1_W = 20

Set oAnsoftApp = CreateObject(“Ansoft.ElectronicsDesktop”) Set oDesktop = oAnsoftApp.GetAppDesktop() Set oProject = oDesktop.NewProject oProject.InsertDesign “HFSS”, “Test”, “DrivenModal”, “” Set oDesign = oProject.SetActiveDesign(“Test”) Set oEditor = oDesign.SetActiveEditor(“3D Modeler”)

‘Variable Define InsertVariable oDesign, “sub1_H”, CStr(sub1_H), “mm” InsertVariable oDesign, “sub1_W”, CStr(sub1_W), “mm” InsertVariable oDesign, “sub1_L”, “2 * sub1_W”, “”

’Create the Substrate CreateBox oEditor, “Sub1”, Array(“-sub1_W/2”, “0mm”, “0mm”), _ Array(“sub1_W”, “sub1_L”, “-sub1_H”), “vacuum”End Sub

Function InsertVariable(oDesign, Name, value, Unit) oDesign.ChangeProperty _ Array(“NAME:AllTabs”, _ Array(“NAME:LocalVariableTab”, _ Array(“NAME:PropServers”, _ “LocalVariables”), _ Array(“NAME:NewProps”, _ Array(“NAME:” + Name, _ “PropType:=”, “VariableProp”, “UserDef:=”, True, _ “Value:=”, value + Unit))))End Function‘模型建立部分Function CreateBox(oEditor, Boxname, S1, D1, material) oEditor.CreateBox Array(“NAME:BoxParameters”, “XPosition:=”, S1(0), “YPosition:=”, _ S1(1), “ZPosition:=”, S1(2), “XSize:=”, D1(0), “YSize:=”, D1(1), “ZSize:=”, _ D1(2)), Array(“NAME:Attributes”, “Name:=”, Boxname, “Flags:=”, “”, “Color:=”, _ “(34 139 34)”, “Transparency:=”, 0, “PartCoordinateSystem:=”, “Global”, “UDMId:=”, _ “”, “MaterialValue:=”, “” & Chr(34) & material & Chr(34) & “”, “SurfaceMaterialValue:=”, _ “” & Chr(34) & “” & Chr(34) & “”, “SolveInside:=”, True, “IsMaterialEditable:=”, _ True, “UseMaterialAppearance:=”, False, “IsLightweight:=”, False)End Function

以上代碼的編寫還是要有一定vba編程的語法基礎,難點在于根據錄制的腳本代碼找規律,將其封裝為普適的Function,便于開發者自行調用。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微軟
    +關注

    關注

    4

    文章

    6567

    瀏覽量

    103958
  • VBA
    VBA
    +關注

    關注

    0

    文章

    18

    瀏覽量

    11900
  • 代碼
    +關注

    關注

    30

    文章

    4750

    瀏覽量

    68357
  • hfss
    +關注

    關注

    32

    文章

    167

    瀏覽量

    50257
  • 求解器
    +關注

    關注

    0

    文章

    77

    瀏覽量

    4514

原文標題:Excel也能調用HFSS?

文章出處:【微信號:mwrfnet,微信公眾號:微波射頻網】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    還在Excel中管理您的持續改進項目嗎?

    對于大多數公司來說,Microsoft Excel是一種可靠的資源,它確實提供了極高的價值。然而,當它被用來跟蹤持續改進項目時,它的價值就減少了。浪費時間從不同內部系統的不同報告中收集數據,會占
    的頭像 發表于 07-01 11:07 ?221次閱讀

    LabVIEW調用Aspose.dll實現excel讀寫、圖片插入,

    使用labview讀寫excel,有多種方式。 1、使用LV自帶的excel函數庫,缺點是電腦必須安裝相應版本的excel,且容易報各種錯誤。放棄。 2、調用NPOI的dll,免費,不
    發表于 06-24 17:01

    怎么用fatfs寫excel

    的論壇發現,確實有轉EXCEL的事情。 所以,我想,用單片機去建立EXCEL文件,代價太高了,支出的ROM不少啊,倒是把XML命令格式搞清楚肯定可以。 是否可以先建立一個
    發表于 05-11 07:59

    ADS調用spectre網表仿真異常—薛定諤的NetlistInclude

    ADS是支持調用spice/spectre等網表文件進行仿真的可以用NetlistInclude控件來進行調用
    的頭像 發表于 03-07 09:57 ?2100次閱讀
    ADS<b class='flag-5'>調用</b>spectre網表仿真異常—薛定諤的NetlistInclude

    介紹一種使用HFSS進行車載天線布局仿真及評估天線性能的方法

    ANSYS HFSS的FEM算法求解電小尺寸問題的能力在業界已被廣泛認可。
    的頭像 發表于 02-25 11:43 ?1945次閱讀
    介紹一種使用<b class='flag-5'>HFSS</b>進行車載天線布局仿真及評估天線性能的方法

    verilog如何調用其他module

    。 1.2 為什么要調用其他模塊? 在復雜的設計中,我們通常需要實現各種不同的功能,并且這些功能往往可以通過不同的模塊來實現。通過調用其他模塊,我們可以將問題分解為更小的子問題,并且
    的頭像 發表于 02-22 15:56 ?5437次閱讀

    labview處理excel數據中的粗大誤差

    的一個主要因素。在LabVIEW中,我們可以利用其強大的數據處理和分析功能來識別和處理Excel數據中的粗大誤差,從而提高數據的準確性和可靠性。 首先,讓我們了解一下粗大誤差的定義。粗大誤差是指與其他觀測值顯著不符的觀測結果。這種誤差通
    的頭像 發表于 01-05 16:15 ?835次閱讀

    labview讀取excel數據中的每個數據

    如何使用 LabVIEW 讀取 Excel 數據,并對其中的每個數據進行處理。 Excel 是一種常用的電子表格軟件,廣泛用于數據存儲和分析。在實際的工程項目中,常常需要從 Excel 中讀取數據,并進行數據處理和分析。LabV
    的頭像 發表于 12-26 11:19 ?3558次閱讀

    Python利用pandas讀寫Excel文件

    使用pandas模塊讀取Excel文件可以更為方便和快捷。pandas可以Excel文件讀取為一個DataFrame對象,方便進行數據處理和分析。
    的頭像 發表于 12-16 11:22 ?1276次閱讀
    Python利用pandas讀寫<b class='flag-5'>Excel</b>文件

    hfss怎么讓天線發生彎曲

    HFSS是一種電磁仿真軟件,用于設計和分析微波和無線電頻段的天線。在HFSS中,讓天線發生彎曲需要按照以下步驟進行操作: 步驟1:打開HFSS軟件并新建一個項目。選擇“File”菜單中的“New
    的頭像 發表于 12-15 09:21 ?2493次閱讀

    excel中xlookup函數怎么使用

    XLOOKUP函數是Excel中的一種查找函數,用于在指定的數據區域中查找并返回與給定條件匹配的值。它是Excel 365中新增的函數,通常在需要靈活進行查找操作時使用。 XLOOKUP函數
    的頭像 發表于 12-03 10:16 ?2232次閱讀

    excel把所有的NA替換成0

    Excel中用于表示缺失值或無效數據的特殊符號。當我們進行計算或圖表制作時,NA通常會影響結果的準確性。為了避免這種情況,我們可以將所有的NA替換為0。 方法一:使用查找和替換功能 Excel中有一個內置的查找和替換功能,
    的頭像 發表于 12-01 10:04 ?1.8w次閱讀

    if函數excel公式怎么用

    Excel中的IF函數是一種邏輯函數,它可以根據特定的條件返回不同的結果。這個函數非常有用,可以在大量的情況下幫助我們進行判斷和計算。在本文中,我將詳細介紹IF函數的語法、用法以及一些常見應用場
    的頭像 發表于 11-30 17:05 ?1415次閱讀

    python調用windows命令

    Python是一種強大的編程語言,可以用于開發各種不同類型的應用程序。其中一個常見的用途是使用Python調用Windows命令來執行特定的任務。在本文中,我們將詳細討論如何使用Python調用
    的頭像 發表于 11-29 14:34 ?1001次閱讀

    不帶public的類可以調用

    訪問的類,而不帶public修飾符的類則具有更為受限的可見性。本文將詳盡、詳實、細致地探討不帶public修飾符的類是否可以調用。 類的可見性: 在Java中,類的可見性取決于類的修飾符。公共類(public class)可以
    的頭像 發表于 11-28 16:29 ?881次閱讀