
發(fā)布
注冊
/
登錄ansys如何自定義界面的案例
Ansys Zemax|如何自定義優(yōu)化操作數(shù)
用戶自定義操作數(shù)是否會使評價函數(shù)計算緩慢?
也許您會好奇,在評價函數(shù)中使用自定義的操作數(shù)時,是否會使得評價函數(shù)計算緩慢?其實,這很大程度依賴于您宏計算的復(fù)雜程度,一般情況下宏計算是非常快的。
作為演示,我們現(xiàn)在對Cooke Triplet執(zhí)行兩次優(yōu)化:一次使用ZPLM操作數(shù)加上宏,一次使用內(nèi)建操作數(shù)WFNO。
第一種情況,我們將ZPLM的目標值設(shè)置為5,權(quán)重設(shè)置為1。第二種情況,我們將WFNO的目標值設(shè)置為5,權(quán)重設(shè)置為1。按下圖設(shè)置評價函數(shù):
我們使用DLS優(yōu)化,可以看到執(zhí)行的時間大約4.4s:
點擊F3撤銷優(yōu)化,將ZPLM操作數(shù)權(quán)重設(shè)置為0,WFNO目標值設(shè)置為5,權(quán)重設(shè)置為1,再次優(yōu)化。
可以看出兩者計算的時間相差并不大。
因此,即使我們使用了自定義的宏,Zemax OpticStudio依舊可以高效的執(zhí)行計算。
總結(jié)
在使用Zemax OpticStudio的過程中,我們有時會遇到內(nèi)建的優(yōu)化操作數(shù)不能滿足我們要計算/返回的數(shù)值情況。這時我們需要利用ZPLM和宏結(jié)合或使用外部定義和匯編程序?qū)@些數(shù)值進行計算和優(yōu)化。兩種方法,ZPLM和宏結(jié)合更為簡單,與Zemax OpticStudio集成的更好,需要更少的編程技巧。
展開 Ansys Zemax | 如何使用 ZPL 創(chuàng)建用戶自定義求解
附件下載
聯(lián)系工作人員獲取附件
概述
本文使用兩個示例演示了如何使用 ZPL 創(chuàng)建用戶自定義解。第一個示例介紹了如何創(chuàng)建 ZPL 解以確保序列文件中像面的曲率半徑等于系統(tǒng)的 Petzval 曲率。第二個示例介紹了如何在非序列元件編輯器(Non-Sequential Component Editor)中基于其他物體的參數(shù)來約束的物體位置。
簡介
求解 ( Solve ) 是可以在諸如鏡頭數(shù)據(jù)編輯器或非序列元件編輯器之類的編輯器中主動調(diào)整特定值的功能。例如,可以在曲率半徑,圓錐系數(shù)或 TCE 上指定求解類型,并通過單擊要放置的求解單元的求解框進行設(shè)置。盡管 OpticStudio 提供了許多默認的求解類型,但用戶有可能希望自定義求解類型,這可以通過使用Zemax 編程語言( Zemax Programming Language ,ZPL)來實現(xiàn)。
ZPL 宏求解可用于任何編輯器中的幾乎所有單元(曲率半徑,厚度,參數(shù),多重結(jié)構(gòu)等)。可以像任何其他求解類型一樣,通過在編輯器中單擊參數(shù)單元格右側(cè)的小框來設(shè)置 ZPL 宏求解。
ZPL 宏求解通過執(zhí)行 ZPL 宏來確定解的值,并使用 SOLVERETURN 關(guān)鍵字將其返回給編輯器。一旦創(chuàng)建了用于求解的宏,并將其放置在 <Documents>\Zemax\Macros 目錄中,即可在求解窗口的“宏:( Macro: )”中輸入該宏的名稱:
請注意,在求解框中輸入的宏名稱不區(qū)分大小寫,并且不需要其擴展名(.ZPL)。為確保宏求解按照預(yù)期的方式工作,需要遵循一些規(guī)則,請參閱“技巧和陷阱”部分以獲取更多信息。
Petzval 曲率求解示例
假設(shè)我們想要能夠自動將像面的曲率半徑設(shè)置為等于 Petzval 曲率的解。
展開 Workbench用戶自定義控件界面顯示類型
Workbench用戶自定義控件界面顯示類型
上一期我們演示了APDL命令封裝為Mechanical用戶自定義插件,在插件中,我們只能選擇模型,設(shè)置float類型的數(shù)據(jù)。在實際使用中遇到情況會更復(fù)雜,比如通過下拉列表選擇加載形式、選擇載荷坐標系,選擇文件等情況,本期我將介紹常見的界面定義方式,實現(xiàn)以下功能。
元素
<PropertyGroup> 將多個屬性封裝為一組屬性
<propertygroup name="Group1" caption="Simple group with caption" display="caption">
<property name="Prop1" caption="Prop1" control="text" />
<property name="Prop2" caption="Prop2" control="text" />
<property name="Prop3" caption="Prop3" control="text" />
</propertygroup>
元素propertygroup 有一個特殊的屬性display。當display設(shè)置為caption,表示所有子屬性都顯示在標題下。如果省略caption,display默認為hidden,表示屬性組隱藏.
2. 通過Group Select屬性選擇,確定屬性的顯示與隱藏。
展開 Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何使用ZPL創(chuàng)建用戶自定義求解
本文使用兩個示例演示了如何使用ZPL創(chuàng)建用戶自定義解。 第一個示例介紹了如何創(chuàng)建ZPL解以確保序列文件中像面的曲率半徑等于系統(tǒng)的Petzval曲率。第二個示例介紹了如何在非序列元件編輯器 ( Non-Sequential Component Editor ) 中基于其他物體的參數(shù)來約束的物體位置。作者 Nam-Hyong Kim, updated by Alessandra Croce下載文章附件簡介求解 ( Solve ) 是可以在諸如鏡頭數(shù)據(jù)編輯器或非序列元件編輯器之類的編輯器中主動調(diào)整特定值的功能。例如,可以在曲率半徑,圓錐系數(shù)或TCE上指定求解類型,并通過單擊要放置的求解單元的求解框進行設(shè)置。盡管OpticStudio提供了許多默認的求解類型,但用戶有可能希望自定義求解類型,這可以通過使用Zemax編程語言( Zemax Programming Language ,ZPL)來實現(xiàn)。ZPL宏求解可用于任何編輯器中的幾乎所有單元(曲率半徑,厚度,參數(shù),多重結(jié)構(gòu)等)。可以像任何其他求解類型一樣,通過在編輯器中單擊參數(shù)單元格右側(cè)的小框來設(shè)置ZPL宏求解。ZPL宏求解通過執(zhí)行ZPL宏來確定解的值,并使用 SOLVERETURN 關(guān)鍵字將其返回給編輯器。一旦創(chuàng)建了用于求解的宏,并將其放置在 <Documents>\Zemax\Macros 目錄中,即可在求解窗口的“宏:( Macro: )”中輸入該宏的名稱:請注意,在求解框中輸入的宏名稱不區(qū)分大小寫,并且不需要其擴展名(.ZPL)。
為確保宏求解按照預(yù)期的方式工作,需要遵循一些規(guī)則,請參閱“技巧和陷阱”部分以獲取更多信息。Petzval 曲率求解示例假設(shè)我們想要能夠自動將像面的曲率半徑設(shè)置為等于Petzval曲率的解。當然,在編寫宏之前,請始終先檢查一下仍不支持的解!
展開 
hypermesh二次開發(fā)之界面自定義按鈕的添加 ¥30
<p>hypermesh擁有強大的二次開發(fā)功能,用戶可以利用Tcl / Tk語言進行二次開發(fā),涉及自動化腳本、界面按鈕添加、彈窗等,本次主要講述通過在Utility菜單的User頁面添加自定義按鈕,按鈕附加Tcl / Tk腳本,直接進行用戶所需的特殊功能。如下圖所示:</p><p><br></p><figure style="text-align: center;" class="ql-align-center">
<figure class="figure-image" contenteditable="false" data-img="https://img.jishulink.com/202503/attachment/c7171445acb943e7a194e71d2310faac.png" style="display: inline-block;">
<img src="https://img.jishulink.com/202503/attachment/c7171445acb943e7a194e71d2310faac.png" data-mobile-src="https://img.jishulink.com/202503/attachment/c7171445acb943e7a194e71d2310faac.png?image_process=/format,webp" data-pc-src="https://img.jishulink.com/202503/attachment/c7171445acb943e7a194e71d2310faac.png?
展開 ANSYS里的自定義失效準則怎么定義的?
想請教各位:
ANSYS里的自定義失效準則怎么定義的呢?一定要用UPFs編用戶子程序才行嗎?UPFs看起來非常復(fù)雜啊,怎么辦?
又沒有人做過這個阿?
謝謝了!!!!
基于ANSYS經(jīng)典界面的帶孔薄板的自適應(yīng)網(wǎng)格劃分
希望隨著ANSYS的發(fā)展,最終能夠?qū)τ谌我獾姆治龆寄軌蜃龅竭@一點,這對于用戶來說無疑是相當重要的,我們翹首企盼好了。
本文轉(zhuǎn)自宋博士的博客,分享學(xué)習(xí)
ANSYS經(jīng)典界面自適應(yīng)網(wǎng)格案例—帶孔板受力
為了進行網(wǎng)格加密,一般有限元軟件提供了具備網(wǎng)格加密的方式,有些也提供了自適應(yīng)網(wǎng)格劃分方法來幫助用戶迅速找到收斂解。
本文說明ANSYS是如何使用自適應(yīng)網(wǎng)格劃分技術(shù)來自動得到收斂解的。
【問題描述】
一塊帶孔方板,一端固定,另外一端施加分布壓力,要求其中的應(yīng)力分布。
已知方板長200mm,寬100mm,在正中間鉆一通孔,半徑為10mm。
【問題分析】
靜力學(xué)問題,平面應(yīng)力,最簡單的線彈性問題。
為了得到問題的真實解,需要細分網(wǎng)格。
如果對整體細分網(wǎng)格,則會面臨一個問題:在左邊固定端的上下角點處,由于應(yīng)力集中,此處的應(yīng)力會隨著網(wǎng)格劃分細密而無限增大。真正應(yīng)該細分的是中間空周圍。
如果是手工劃分方式來細分網(wǎng)格,也是可行的。不過這要手工細分多次,這里使用自適應(yīng)網(wǎng)格劃分方法來自動細分網(wǎng)格。
為了只對中間關(guān)注區(qū)域進行網(wǎng)格細分,這里把整個面分為三部分,然后選中中間一塊面,對它進行自適應(yīng)網(wǎng)格劃分。
計算的結(jié)果就是收斂的結(jié)果,不需要再次細分網(wǎng)格。
1. 建模
1.1創(chuàng)建單元類型,設(shè)置材料模型
/PREP7
ET,1,PLANE42
MP,EX,1,2e11
MP,PRXY,1,0.3
上述命令確定用PLANE42單元來建模,并給出了彈性模量和泊松比。
1.2繪制帶孔方板
RECTNG,0,0.03,0,0.1
RECTNG,0.03,0.17,0,0.1
RECTNG,0.17,0.2,0,0.1
AGLUE,ALL
CYL4,0.1,0.05,0,,0.01
ASBA,4,2
上述命令首先以此創(chuàng)建三個相連的面,然后把它們粘接在一起,接著在中間創(chuàng)建一個圓面,然后減去該圓面,從而得到帶孔的方板模型。
這里把整體劃分為三個部分,是為了只對中間部分進行網(wǎng)格細分,因為基于力學(xué)理論我們知道,中間圓形周圍才是最危險處。
展開 ANSYS梁單元自定義截面
ANSYS梁單元自定義截面
梁單元作為一種簡單且高效的計算單元,在結(jié)構(gòu)分析尤其是建筑結(jié)構(gòu)中得到廣泛的應(yīng)用。使用梁單元可以避免將結(jié)構(gòu)中梁柱全部轉(zhuǎn)換為實體單元,從而降低了計算量,且梁單元結(jié)構(gòu)形式簡單,求解精度也相對較高。在ANSYS中,梁單元基本上可以分為線性單元和二次單元,二者之間計算理論不同,經(jīng)典的二次單元即BEAM189單元的積分點如下圖所示:
在ANSYS中可以為BEAM單元定義截面,其中大部分經(jīng)典的截面形式都包含在ANSYS的截面庫中,但是經(jīng)典的梁單元計算時截面方向分為四個單元,這對于一般計算來說是足夠的,但如果需要仔細分析截面方向的內(nèi)力,可能就略顯的粗糙了。除此之外,鋼管混凝土、組合梁之類也都是異形梁截面,此時標準截面庫中的數(shù)據(jù)也沒什么用。針對這個問題存在兩種解決方式,一種是使用ASEC自定義截面參數(shù),這個命令不管截面如何,只需要給出截面相關(guān)的信息即可,截面的信息輸入如下圖所示:
至于這些截面的參數(shù)可以使用簡單的截面計算工具得到,如果是鋼筋混凝土梁這種比較復(fù)雜的復(fù)合梁,那么需要使用Xtract之類的截面有限元軟件進行計算。將截面信息填入。采用ASEC的截面輸入方式計算效率高,截面信息準確的話,精度也不差,但缺點是不能輸出截面積分點和柵點的數(shù)據(jù)。
另一種方式就是自定義截面,其基本思路如下:
1.設(shè)定MESH200單元,建立截面幾何形狀;
2.用MESH200單元劃分截面,并保存截面數(shù)據(jù);
3.建立計算幾何模型,讀取截面數(shù)據(jù);
4.賦予模型截面,施加邊界條件計算;
5.后處理。
展開 ANSYS梁單元自定義截面
在ANSYS中,梁單元基本上可以分為線性單元和二次單元,二者之間計算理論不同,經(jīng)典的二次單元即BEAM189單元的積分點如下圖所示:
在ANSYS中可以為BEAM單元定義截面,其中大部分經(jīng)典的截面形式都包含在ANSYS的截面庫中,但是經(jīng)典的梁單元計算時截面方向分為四個單元,這對于一般計算來說是足夠的,但如果需要仔細分析截面方向的內(nèi)力,可能就略顯的粗糙了。除此之外,鋼管混凝土、組合梁之類也都是異形梁截面,此時標準截面庫中的數(shù)據(jù)也沒什么用。針對這個問題存在兩種解決方式,一種是使用ASEC自定義截面參數(shù),這個命令不管截面如何,只需要給出截面相關(guān)的信息即可,截面的信息輸入如下圖所示:
至于這些截面的參數(shù)可以使用簡單的截面計算工具得到,如果是鋼筋混凝土梁這種比較復(fù)雜的復(fù)合梁,那么需要使用Xtract之類的截面有限元軟件進行計算。將截面信息填入。采用ASEC的截面輸入方式計算效率高,截面信息準確的話,精度也不差,但缺點是不能輸出截面積分點和柵點的數(shù)據(jù)。
另一種方式就是自定義截面,其基本思路如下:
1.設(shè)定MESH200單元,建立截面幾何形狀;
2.用MESH200單元劃分截面,并保存截面數(shù)據(jù);
3.建立計算幾何模型,讀取截面數(shù)據(jù);
4.賦予模型截面,施加邊界條件計算;
5.后處理。
展開 ANSYS梁單元自定義截面
ANSYS梁單元自定義截面
梁單元作為一種簡單且高效的計算單元,在結(jié)構(gòu)分析尤其是建筑結(jié)構(gòu)中得到廣泛的應(yīng)用。使用梁單元可以避免將結(jié)構(gòu)中梁柱全部轉(zhuǎn)換為實體單元,從而降低了計算量,且梁單元結(jié)構(gòu)形式簡單,求解精度也相對較高。在ANSYS中,梁單元基本上可以分為線性單元和二次單元,二者之間計算理論不同,經(jīng)典的二次單元即BEAM189單元的積分點如下圖所示:
在ANSYS中可以為BEAM單元定義截面,其中大部分經(jīng)典的截面形式都包含在ANSYS的截面庫中,但是經(jīng)典的梁單元計算時截面方向分為四個單元,這對于一般計算來說是足夠的,但如果需要仔細分析截面方向的內(nèi)力,可能就略顯的粗糙了。除此之外,鋼管混凝土、組合梁之類也都是異形梁截面,此時標準截面庫中的數(shù)據(jù)也沒什么用。針對這個問題存在兩種解決方式,一種是使用ASEC自定義截面參數(shù),這個命令不管截面如何,只需要給出截面相關(guān)的信息即可,截面的信息輸入如下圖所示:
至于這些截面的參數(shù)可以使用簡單的截面計算工具得到,如果是鋼筋混凝土梁這種比較復(fù)雜的復(fù)合梁,那么需要使用Xtract之類的截面有限元軟件進行計算。將截面信息填入。采用ASEC的截面輸入方式計算效率高,截面信息準確的話,精度也不差,但缺點是不能輸出截面積分點和柵點的數(shù)據(jù)。
另一種方式就是自定義截面,其基本思路如下:
1.設(shè)定MESH200單元,建立截面幾何形狀;
2.用MESH200單元劃分截面,并保存截面數(shù)據(jù);
3.建立計算幾何模型,讀取截面數(shù)據(jù);
4.賦予模型截面,施加邊界條件計算;
5.后處理。
展開 
ZEMAX | 如何使用 ZPL 創(chuàng)建用戶自定義求解
本文使用兩個示例演示了如何使用 ZPL 創(chuàng)建用戶自定義解。第一個示例介紹了如何創(chuàng)建 ZPL 解以確保序列文件中像面的曲率半徑等于系統(tǒng)的 Petzval 曲率。第二個示例介紹了如何在非序列元件編輯器 ( Non-Sequential Component Editor ) 中基于其他物體的參數(shù)來約束的物體位置。【請聯(lián)系我們領(lǐng)取文章的附件】
簡介
求解 ( Solve )
是可以在諸如鏡頭數(shù)據(jù)編輯器或非序列元件編輯器之類的編輯器中主動調(diào)整特定值的功能。例如,可以在曲率半徑,圓錐系數(shù)或 TCE 上指定求解類型,并通過單擊要放置的求解單元的求解框進行設(shè)置。盡管 OpticStudio 提供了許多默認的求解類型,但用戶有可能希望自定義求解類型,這可以通過使用Zemax 編程語言( Zemax Programming Language ,ZPL)來實現(xiàn)。
ZPL 宏求解可用于任何編輯器中的幾乎所有單元(曲率半徑,厚度,參數(shù),多重結(jié)構(gòu)等)。可以像任何其他求解類型一樣,通過在編輯器中單擊參數(shù)單元格右側(cè)的小框來設(shè)置 ZPL 宏求解。
ZPL 宏求解通過執(zhí)行 ZPL 宏來確定解的值,并使用
SOLVERETURN
關(guān)鍵字將其返回給編輯器。一旦創(chuàng)建了用于求解的宏,并將其放置在 <Documents>\Zemax\Macros 目錄中,即可在求解窗口的“宏:( Macro: )”中輸入該宏的名稱:
請注意,在求解框中輸入的宏名稱不區(qū)分大小寫,并且不需要其擴展名(.ZPL)。
為確保宏求解按照預(yù)期的方式工作,需要遵循一些規(guī)則,請參閱“技巧和陷阱”部分以獲取更多信息。
Petzval 曲率求解示例
假設(shè)我們想要能夠自動將像面的曲率半徑設(shè)置為等于 Petzval 曲率的解。
展開 ZEMAX | 如何編寫用戶自定義表面
概念
這篇文章介紹了:
■ 什么是用戶自定義表面 (User-Defined Surfaces)
■ 如何使用Microsoft Visual Studio 2017 (VS2017) 編寫用戶自定義表面
■ 如何使用其他編譯器
您可以前往以下鏈接查看并下載VS2017
鏈接: https://visualstudio.microsoft.com/zh-hans/vs/community/
用戶自定義表面
表面用來定義不同光學(xué)介質(zhì)之間的界面。表面可以定義為透射、反射或是衍射的。OpticStudio 18.9版本支持78種表面類型,其中包括非常通用的表面類型,例如多項式表面 (Polynomial surface) 和雙錐Zernike (Biconic Zernikes) 表面等。
但有些時候,用戶會需要滿足特定要求的表面類型,這也是用戶自定義表面類型發(fā)揮作用的時候。您可以隨時將您對新表面的需求發(fā)送給support@zemax.com,但OpticStudio也為您提供了自己實現(xiàn)新表面設(shè)置的途徑。
用戶自定義表面是一個編譯好的函數(shù)(嚴格意義上是Windows的DLL),它可以根據(jù)您的需要實現(xiàn)任意表面形狀、相位、透過率函數(shù)、梯度折射率或這幾種類型的組合。在定義用戶自定義表面時,您可以自行輸入表面參數(shù),或根據(jù)已有的數(shù)據(jù)庫進行定義。
本文以O(shè)pticStudio中自帶的示例文件為基礎(chǔ),介紹了編譯用戶自定義表面的基本步驟。本文不涉及構(gòu)建特定表面的方法,這將在其他文章中介紹。
如果您已經(jīng)擁有基礎(chǔ)的編程經(jīng)驗并且對想要構(gòu)建的表面已經(jīng)有了清晰的數(shù)學(xué)描述規(guī)范,那么定義用戶自定義表面是非常容易的。通過示例文件,本文將帶您快速了解如何定義用戶自定義表面,但是確定所需要的數(shù)學(xué)函數(shù)往往是最難的部分。
我們要做的第一步就是確定表面的定義規(guī)范。
展開 ZEMAX | 如何用 ZOS-API 創(chuàng)建用戶自定義分析
運行自定義分析
為了檢查我們的新自定義分析,我們現(xiàn)在可以啟動OpticStudio并打開透鏡文件 {Zemax}\Samples\Sequential\Objectives\Double Gauss 28 degree field.zmx。
在編程 (Programming) 標簽下,我們找到自定義分析 (User Analyses),這里應(yīng)該是我們剛剛做的分析。
當我們點擊它時,就會得到自定義分析的結(jié)果!
其他可能性
在本例中,表面變化、變化范圍和步長以及報告MTF的空間頻率都是編死的,但是可以簡單地添加對話框允許用戶輸入數(shù)值來改變硬編程。這樣們可以創(chuàng)建一個可以更通用的自定義分析。設(shè)置存儲在由鍵-值對組成的簡單字典中。當您的第一次啟動分析時,字典是空的,但是添加到設(shè)置字典中的任何條目都將在更新時保存。
展開 Abaqus如何施加自定義函數(shù)的位移約束
Abaqus如何施加自定義函數(shù)的位移約束
對于有一些模型需要加載隨時間變化的載荷和約束,Abaqus提供各種定義方式,通過Amplitude來完成,本次想闡述的時加載不隨時間變化而是隨坐標變化的約束。
建立如圖所示的模型,想對這個模型的整體在x方向施加一個隨著Y軸坐標線性變化的位移約束,即u1=kY形式的約束。
圖1
直接施加肯定不可能,與ANSYS一樣,需要先建立函數(shù),建立函數(shù)菜單的位置如圖2所示,在Load模塊下的Tool菜單下。
圖2
點開之后如圖3所示,點擊Creat彈出對話框,采用Expression field的方式建立函數(shù),并可以修改名稱。
圖3
之后即可通過如圖4所示的界面來創(chuàng)建函數(shù),能夠用的變量是坐標XYZ,運算符在右邊,坐標采用的坐標系可以自由選擇,默認采用笛卡爾總體坐標系。選擇坐標的時候可以直接點選Abaqus/CAE窗口的已有坐標系直接選擇。
圖4
創(chuàng)建完保存。
之后即可創(chuàng)建位移約束,如圖5所示,需要注意兩個東西,一個是通過Distrubition選擇剛才創(chuàng)建的函數(shù)AnalyticalField-1,另外施加u1時填入數(shù)字1的含義表示施加1倍的函數(shù)。
圖5
創(chuàng)建完之后,可以通過主菜單的View-Assembly Display Option-Attribute來設(shè)置顯示,如圖6所示。
圖6
最終加載完成如圖7所示。
圖7
很明顯隨著Y坐標的不同而不同。
展開