
發布
注冊
/
登錄ansys用戶自定義單元的案例
ABAQUS用戶自定義單元UEL學習資料 ¥49
ABAQUS子程序UEL
一種新思路用于實現ABAQUS用戶自定義單元
</span></blockquote><p><br></p><blockquote><strong style="color: rgb(25, 27, 31);">這種自定義單元完美解決了ABAUS傳統的用于自定義單元無法完成可視化的問題</strong> <span style="color: rgb(25, 27, 31);">。搞過UEL二次開發的人都被自定義單元的可視化問題困擾,要么是將數據導出到第三方軟件進行處理,要么是采用UMAT套一層單元進行可視化,這兩種方法都需要大量的編程工作。</span></blockquote><p><br></p><blockquote><strong>這種自定義單元完美的解決了ABAQUS傳統的用戶自定義單元無法施加面力、體力等復雜力的短板</strong>。</blockquote><p><br></p><blockquote>更多的功能還在探索之中...
展開 梁單元截面偏置(用戶自定義位置)計算方法
對于梁單元和殼單元而言,ANSYS默認單元中心為截面幾何中心,有的時候為更好的符合實際受力模型,很多時候需要對所建立的單元進行截面偏置。特別針對于框架結構建模過程中,如果要進行精細化的建模,如何計算各個截面的偏置距離是一大問題。對于初學者來說,這個是不斷調試的過程或者甚至不管,今天就簡單闡述下如何計算梁單元的截面偏置距離以及方向。
計算主要分為以下幾個步驟:
一、確定幾何直線的方向,直線方向確定了單元坐標系中的X方向
二、確定關鍵點方向,也即確定單元坐標系的Z方向
三、根據右手螺旋定則確定單元坐標系的Y軸,畫出截面的YOZ平面,確定偏置距離。
截面偏置APDL命令為secoffset,user,注意該命令是指截面從截面原點偏置的距離,不同的截面形式其原點位置也不同,例如ANSYS help就以一個槽鋼為例,并說明其原點位置位于左下角處,但矩形截面有所不同,其截面原點位于幾何中心處。其他截面形式的原點也不盡相同。
實例:建立如下小框架的有限元模型,要求梁柱平齊。
以CD梁為例,說明其截面偏置計算。假定在建模的過程中幾何直線的方向為從C到D(如果不是,可以修改線的方向),方向點選擇A點,則CD梁單元的單元方向以及截面偏置計算如下:
圖中X表示計算點,根據其與原點的位置,可知其具體坐標為(-300,-125),同理,其他梁和柱的位置坐標如下所示:
根據截面偏置距離類型,進行截面歸類以及標識,如下所示:
結構建模:
finish
/clear
/prep7
et,1,beam189
et,2,shell181
mp,ex,1,3.0e4
mp,prxy,1,0.2
mp,dens,1,2600e-12
!=================
!
展開 梁單元截面偏置(用戶自定義位置)計算方法(workbench版本)
經典版見水哥的帖子
鏈接為:
梁單元截面偏置(用戶自定義位置)計算方法
workbench的方法
主要是梁的定義
未打開截面的幾何模型
打開截面的幾何模型具體的對齊方式
網格劃分:
workbench的優點:
操作方便,簡單易懂
workbench的缺點
無法像經典能夠對截面的長寬邊的劃分數目進行控制,只能是1.我找了好久,確實沒發現,貌似workbench計算出面積,慣性矩等參量,直接代入

Ansys Zemax | 如何使用 ZPL 創建用戶自定義求解
附件下載
聯系工作人員獲取附件
概述
本文使用兩個示例演示了如何使用 ZPL 創建用戶自定義解。第一個示例介紹了如何創建 ZPL 解以確保序列文件中像面的曲率半徑等于系統的 Petzval 曲率。第二個示例介紹了如何在非序列元件編輯器(Non-Sequential Component Editor)中基于其他物體的參數來約束的物體位置。
簡介
求解 ( Solve ) 是可以在諸如鏡頭數據編輯器或非序列元件編輯器之類的編輯器中主動調整特定值的功能。例如,可以在曲率半徑,圓錐系數或 TCE 上指定求解類型,并通過單擊要放置的求解單元的求解框進行設置。盡管 OpticStudio 提供了許多默認的求解類型,但用戶有可能希望自定義求解類型,這可以通過使用Zemax 編程語言( Zemax Programming Language ,ZPL)來實現。
ZPL 宏求解可用于任何編輯器中的幾乎所有單元(曲率半徑,厚度,參數,多重結構等)。可以像任何其他求解類型一樣,通過在編輯器中單擊參數單元格右側的小框來設置 ZPL 宏求解。
ZPL 宏求解通過執行 ZPL 宏來確定解的值,并使用 SOLVERETURN 關鍵字將其返回給編輯器。一旦創建了用于求解的宏,并將其放置在 <Documents>\Zemax\Macros 目錄中,即可在求解窗口的“宏:( Macro: )”中輸入該宏的名稱:
請注意,在求解框中輸入的宏名稱不區分大小寫,并且不需要其擴展名(.ZPL)。為確保宏求解按照預期的方式工作,需要遵循一些規則,請參閱“技巧和陷阱”部分以獲取更多信息。
Petzval 曲率求解示例
假設我們想要能夠自動將像面的曲率半徑設置為等于 Petzval 曲率的解。
展開 Ansys Zemax光學設計軟件技術教程:如何使用ZPL創建用戶自定義求解
本文使用兩個示例演示了如何使用ZPL創建用戶自定義解。 第一個示例介紹了如何創建ZPL解以確保序列文件中像面的曲率半徑等于系統的Petzval曲率。第二個示例介紹了如何在非序列元件編輯器 ( Non-Sequential Component Editor ) 中基于其他物體的參數來約束的物體位置。作者 Nam-Hyong Kim, updated by Alessandra Croce下載文章附件簡介求解 ( Solve ) 是可以在諸如鏡頭數據編輯器或非序列元件編輯器之類的編輯器中主動調整特定值的功能。例如,可以在曲率半徑,圓錐系數或TCE上指定求解類型,并通過單擊要放置的求解單元的求解框進行設置。盡管OpticStudio提供了許多默認的求解類型,但用戶有可能希望自定義求解類型,這可以通過使用Zemax編程語言( Zemax Programming Language ,ZPL)來實現。ZPL宏求解可用于任何編輯器中的幾乎所有單元(曲率半徑,厚度,參數,多重結構等)。可以像任何其他求解類型一樣,通過在編輯器中單擊參數單元格右側的小框來設置ZPL宏求解。ZPL宏求解通過執行ZPL宏來確定解的值,并使用 SOLVERETURN 關鍵字將其返回給編輯器。一旦創建了用于求解的宏,并將其放置在 <Documents>\Zemax\Macros 目錄中,即可在求解窗口的“宏:( Macro: )”中輸入該宏的名稱:請注意,在求解框中輸入的宏名稱不區分大小寫,并且不需要其擴展名(.ZPL)。
為確保宏求解按照預期的方式工作,需要遵循一些規則,請參閱“技巧和陷阱”部分以獲取更多信息。Petzval 曲率求解示例假設我們想要能夠自動將像面的曲率半徑設置為等于Petzval曲率的解。當然,在編寫宏之前,請始終先檢查一下仍不支持的解!
展開 Ansys Zemax | 用戶自定義表面真實建模衍射式人工晶狀體透鏡
使用 UDS DLL 的衍射表面模型
為了利用上述區域分解方法,我們實現了一個新的用戶定義表面DLL,其中可以通過分析描述浮雕型衍射表面的矢高輪廓。除了精確分析衍射光學元件(DOEs)的性能外,使用UDS DLL的參數化形狀表示還可以對這些衍射表面進行優化和公差分析。有關如何使用自定義 DLL 擴展 OpticStudio 的功能以及如何編譯新解決方案的更多詳細信息,請聯系工作人員了解。
在使用序列表面 DLL 時,OpticStudio 有 10 種不同的方式與 DLL 交互和交換數據。這些方案表示常規信息、參數名稱和安全數據傳輸,以及布局圖、近軸和實際光線追蹤計算。不同的功能是在DLL的不同情況下定義的。
在這個模型中,我們應用了一個簡單的旋轉對稱衍射結構,具有統一的浮雕臺階高度,添加在代表基底面的標準表面之上。為了能夠與內置的OpticStudio解決方案進行模擬比較,我們用偶數非球面多項式描述了浮雕形狀。因此,表面矢高由以下公式給出:
在上式中,mod表示取模運算,c是曲率,即半徑的倒數,k是圓錐常數,r是徑向坐標,h是統一的浮雕臺階高度。
ai為偶次非球面系數、h為步高。首先在DLL的Case 1中定義傳播算法,參數列標題名稱。然后,Case 3描述基于上述公式的表面矢高,以便在布局圖中繪制。Case 4 考慮近軸光線追蹤結果,但由于區域分解方法需要在光線追跡之上進行衍射分析,該方法僅適用于實際光線追蹤,因此我們忽略了這一步。這意味著在近軸近似中,我們的模型表現為標準曲面。最后,Case 5,計算實際光線追跡結果。
展開 ANSYS梁單元自定義截面
ANSYS梁單元自定義截面
梁單元作為一種簡單且高效的計算單元,在結構分析尤其是建筑結構中得到廣泛的應用。使用梁單元可以避免將結構中梁柱全部轉換為實體單元,從而降低了計算量,且梁單元結構形式簡單,求解精度也相對較高。在ANSYS中,梁單元基本上可以分為線性單元和二次單元,二者之間計算理論不同,經典的二次單元即BEAM189單元的積分點如下圖所示:
在ANSYS中可以為BEAM單元定義截面,其中大部分經典的截面形式都包含在ANSYS的截面庫中,但是經典的梁單元計算時截面方向分為四個單元,這對于一般計算來說是足夠的,但如果需要仔細分析截面方向的內力,可能就略顯的粗糙了。除此之外,鋼管混凝土、組合梁之類也都是異形梁截面,此時標準截面庫中的數據也沒什么用。針對這個問題存在兩種解決方式,一種是使用ASEC自定義截面參數,這個命令不管截面如何,只需要給出截面相關的信息即可,截面的信息輸入如下圖所示:
至于這些截面的參數可以使用簡單的截面計算工具得到,如果是鋼筋混凝土梁這種比較復雜的復合梁,那么需要使用Xtract之類的截面有限元軟件進行計算。將截面信息填入。采用ASEC的截面輸入方式計算效率高,截面信息準確的話,精度也不差,但缺點是不能輸出截面積分點和柵點的數據。
另一種方式就是自定義截面,其基本思路如下:
1.設定MESH200單元,建立截面幾何形狀;
2.用MESH200單元劃分截面,并保存截面數據;
3.建立計算幾何模型,讀取截面數據;
4.賦予模型截面,施加邊界條件計算;
5.后處理。
展開 ANSYS梁單元自定義截面
梁單元作為一種簡單且高效的計算單元,在結構分析尤其是建筑結構中得到廣泛的應用。使用梁單元可以避免將結構中梁柱全部轉換為實體單元,從而降低了計算量,且梁單元結構形式簡單,求解精度也相對較高。在ANSYS中,梁單元基本上可以分為線性單元和二次單元,二者之間計算理論不同,經典的二次單元即BEAM189單元的積分點如下圖所示:
在ANSYS中可以為BEAM單元定義截面,其中大部分經典的截面形式都包含在ANSYS的截面庫中,但是經典的梁單元計算時截面方向分為四個單元,這對于一般計算來說是足夠的,但如果需要仔細分析截面方向的內力,可能就略顯的粗糙了。除此之外,鋼管混凝土、組合梁之類也都是異形梁截面,此時標準截面庫中的數據也沒什么用。針對這個問題存在兩種解決方式,一種是使用ASEC自定義截面參數,這個命令不管截面如何,只需要給出截面相關的信息即可,截面的信息輸入如下圖所示:
至于這些截面的參數可以使用簡單的截面計算工具得到,如果是鋼筋混凝土梁這種比較復雜的復合梁,那么需要使用Xtract之類的截面有限元軟件進行計算。將截面信息填入。采用ASEC的截面輸入方式計算效率高,截面信息準確的話,精度也不差,但缺點是不能輸出截面積分點和柵點的數據。
另一種方式就是自定義截面,其基本思路如下:
1.設定MESH200單元,建立截面幾何形狀;
2.用MESH200單元劃分截面,并保存截面數據;
3.建立計算幾何模型,讀取截面數據;
4.賦予模型截面,施加邊界條件計算;
5.后處理。
展開 ANSYS梁單元自定義截面
ANSYS梁單元自定義截面
梁單元作為一種簡單且高效的計算單元,在結構分析尤其是建筑結構中得到廣泛的應用。使用梁單元可以避免將結構中梁柱全部轉換為實體單元,從而降低了計算量,且梁單元結構形式簡單,求解精度也相對較高。在ANSYS中,梁單元基本上可以分為線性單元和二次單元,二者之間計算理論不同,經典的二次單元即BEAM189單元的積分點如下圖所示:
在ANSYS中可以為BEAM單元定義截面,其中大部分經典的截面形式都包含在ANSYS的截面庫中,但是經典的梁單元計算時截面方向分為四個單元,這對于一般計算來說是足夠的,但如果需要仔細分析截面方向的內力,可能就略顯的粗糙了。除此之外,鋼管混凝土、組合梁之類也都是異形梁截面,此時標準截面庫中的數據也沒什么用。針對這個問題存在兩種解決方式,一種是使用ASEC自定義截面參數,這個命令不管截面如何,只需要給出截面相關的信息即可,截面的信息輸入如下圖所示:
至于這些截面的參數可以使用簡單的截面計算工具得到,如果是鋼筋混凝土梁這種比較復雜的復合梁,那么需要使用Xtract之類的截面有限元軟件進行計算。將截面信息填入。采用ASEC的截面輸入方式計算效率高,截面信息準確的話,精度也不差,但缺點是不能輸出截面積分點和柵點的數據。
另一種方式就是自定義截面,其基本思路如下:
1.設定MESH200單元,建立截面幾何形狀;
2.用MESH200單元劃分截面,并保存截面數據;
3.建立計算幾何模型,讀取截面數據;
4.賦予模型截面,施加邊界條件計算;
5.后處理。
展開 『原創』ANSYS中殼單元截面如果能夠自定義該是有限元技術中的一個難點突破!
殼單元是工程實際應用中一種重要的單元形式,能夠解決非常多的實際問題!比如壓力容器,橋梁分析,鋼結構分析,復合材料,汽車,船舶等等!
然而在多年的有限元工程應用中,有一個問題一直都困擾著我,問題描述如下:有一大類薄板結構,其截面是不規則的,如果按照均勻薄板結構來算顯然會有較大出入;若按照梁殼結合,工作量將是非常大,且未必能夠很好的解決!
某突發奇想,如果有限元中能象解決梁截面一樣,在分析中也可以自定義殼截面那改有多好啊!
這個問題我在仿真互動論壇中也發過貼子,在這里希望繼續和大家探討,多交流,看是否還有什么更好的解決辦法!
展開 
ZEMAX | 如何使用 ZPL 創建用戶自定義求解
本文使用兩個示例演示了如何使用 ZPL 創建用戶自定義解。第一個示例介紹了如何創建 ZPL 解以確保序列文件中像面的曲率半徑等于系統的 Petzval 曲率。第二個示例介紹了如何在非序列元件編輯器 ( Non-Sequential Component Editor ) 中基于其他物體的參數來約束的物體位置。【請聯系我們領取文章的附件】
簡介
求解 ( Solve )
是可以在諸如鏡頭數據編輯器或非序列元件編輯器之類的編輯器中主動調整特定值的功能。例如,可以在曲率半徑,圓錐系數或 TCE 上指定求解類型,并通過單擊要放置的求解單元的求解框進行設置。盡管 OpticStudio 提供了許多默認的求解類型,但用戶有可能希望自定義求解類型,這可以通過使用Zemax 編程語言( Zemax Programming Language ,ZPL)來實現。
ZPL 宏求解可用于任何編輯器中的幾乎所有單元(曲率半徑,厚度,參數,多重結構等)。可以像任何其他求解類型一樣,通過在編輯器中單擊參數單元格右側的小框來設置 ZPL 宏求解。
ZPL 宏求解通過執行 ZPL 宏來確定解的值,并使用
SOLVERETURN
關鍵字將其返回給編輯器。一旦創建了用于求解的宏,并將其放置在 <Documents>\Zemax\Macros 目錄中,即可在求解窗口的“宏:( Macro: )”中輸入該宏的名稱:
請注意,在求解框中輸入的宏名稱不區分大小寫,并且不需要其擴展名(.ZPL)。
為確保宏求解按照預期的方式工作,需要遵循一些規則,請參閱“技巧和陷阱”部分以獲取更多信息。
Petzval 曲率求解示例
假設我們想要能夠自動將像面的曲率半徑設置為等于 Petzval 曲率的解。
展開 七、Fluent用戶自定義函數(UDF)基礎(1)
圖1.UDF用戶手冊
UDF介紹: 所謂UDF-用戶自定義函數(User-defined functions),學習過編程語言的同學對此應該并不陌生,無論是C語言、JAVA還是Python,自定義函數被廣泛的應用著,它能夠使語言邏輯和代碼的簡潔性大幅度提高。Fluent的UDF有著同樣的功能,但是又不完全相同。
在Fluent中,UDF使用C語言來編寫,因此需要大家有一定的C語言基礎,但是不必過于深入,大家只需要了解基本的格式和語法結構即可,同時需要對指針有一點了解。建議有其他語言基礎的同學花一周的時間學習一下C語言---一周的時間已經足夠了。
UDF特殊性: 接下來我們說一下Fluent UDF的特殊性,實際上即便C語言功底很厲害的高手并不一定能夠寫好UDF,為什么呢?因為Fluent UDF和C語言的自定義函數完全就是兩碼事。它是Fluent封裝好的可以傳遞給求解器的函數,主要由各種宏組成,每個宏有各自的作用。說的通俗易懂一點,其實UDF就是Fluent已經給用戶起好了自定義函數的名字了,用戶達到什么樣的目的,使用相對應的宏就行。類似于我乘坐地鐵去電影院,為了達到去電影院的目的,我使用了名叫地鐵的工具,這里的名字“地鐵”就相當于Fluent中的宏;如果放到C語言中,你可以給“地鐵”起任意名字如“自行車”,這樣會帶來混亂,導致Fluent求解器識別不了你的目的。比如用戶想讓進口流體的速度正弦變化,那么就需要找到能夠修改邊界條件的宏-DEFINE_PROFILE(name, t, i),然后在里面指定速度函數即可。
圖2.C語言自定義函數
圖3.Fluent UDF
UDF功能: 對于Fluent而言,UDF可以顯著增強其功能,使用UDF你可以做如下的事情:
1.
展開 ZEMAX | 如何編寫用戶自定義表面
概念
這篇文章介紹了:
■ 什么是用戶自定義表面 (User-Defined Surfaces)
■ 如何使用Microsoft Visual Studio 2017 (VS2017) 編寫用戶自定義表面
■ 如何使用其他編譯器
您可以前往以下鏈接查看并下載VS2017
鏈接: https://visualstudio.microsoft.com/zh-hans/vs/community/
用戶自定義表面
表面用來定義不同光學介質之間的界面。表面可以定義為透射、反射或是衍射的。OpticStudio 18.9版本支持78種表面類型,其中包括非常通用的表面類型,例如多項式表面 (Polynomial surface) 和雙錐Zernike (Biconic Zernikes) 表面等。
但有些時候,用戶會需要滿足特定要求的表面類型,這也是用戶自定義表面類型發揮作用的時候。您可以隨時將您對新表面的需求發送給support@zemax.com,但OpticStudio也為您提供了自己實現新表面設置的途徑。
用戶自定義表面是一個編譯好的函數(嚴格意義上是Windows的DLL),它可以根據您的需要實現任意表面形狀、相位、透過率函數、梯度折射率或這幾種類型的組合。在定義用戶自定義表面時,您可以自行輸入表面參數,或根據已有的數據庫進行定義。
本文以OpticStudio中自帶的示例文件為基礎,介紹了編譯用戶自定義表面的基本步驟。本文不涉及構建特定表面的方法,這將在其他文章中介紹。
如果您已經擁有基礎的編程經驗并且對想要構建的表面已經有了清晰的數學描述規范,那么定義用戶自定義表面是非常容易的。通過示例文件,本文將帶您快速了解如何定義用戶自定義表面,但是確定所需要的數學函數往往是最難的部分。
我們要做的第一步就是確定表面的定義規范。
展開 ZEMAX | 如何用 ZOS-API 創建用戶自定義分析
本文展示了如何使用ZOS-API創建定制的用戶分析。
作者 Thomas Pickering
附件下載
聯系工作人員獲取附件
簡介
ZOS-API是一個基于COM,來源于.NET庫的接口,為用戶提供了用多種語言編程的能力,包括C++、Python和Matlab。
在本文中,我們將重點討論有限訪問類型的自定義分析模式。此模式鏈接到單個分析窗口,并用于填充自定義分析所需的數據。數據將被顯示在OpticStudio圖形窗口中。與自定義操作數模式類似,該模式只允許更改當前系統的副本。用戶分析可以使用C++ (COM) 或 C# (.NET)編寫——這取決于用戶使用這兩種語言的偏好。
新建樣本模板
為了用 C# 編寫自定義分析,我們需要選擇 編程 (Programming) ... C# ...自定義分析 (User Analysis) 。
Windows資源管理器會打開文件夾 {Zemax}\ZOS-API Projects\CSharpUserAnalysisApplication1。您的默認 C# 開發程序也將打開,該程序包含一個樣板代碼,可以作為任何用戶自定義分析的基礎。
修改鏡頭數據編輯器
我們將為位于 {Zemax}\Samples\Sequential\Objectives\Double Gauss 28 degree field.zmx 的示例文件創建此用戶分析。
計劃以每次增加 10 um 的步驟變化表面 6 的表面厚度+/- 1mm,并研究在30、40和 50 cycles/mm 時調制傳遞函數 (MTF) 的改變。
首先,在代碼的頂部添加3行。我們需要設置名稱空間,然后在不指定完整路徑的情況下使用內部接口。
展開