
發布
注冊
/
登錄網格矢高表面的案例
如何以數據的方式定義網格矢高表面
如何以數據的方式定義網格矢高表面
有些時候 OpticStudio 內置的表面類型難以滿足我們的需求,所以我們可能需要外部數據的協助來構建我們想要的表面,今天就讓我們學習一下:如何以數據的方式定義網格矢高表面
引言
本文示范了如何輸入表面起伏數據,以定義Zemax OpticStudio中的網格矢高 (Grid Sag) 類型表面,表面起伏數據應為Z坐標軸上的矢高 (Sag)。
鏈接: https://pan.baidu.com/s/1uyhVzBj48WTHkb3wAFA5Ig
提取碼: x77t
正文
表面起伏數據格式是這樣定義的:
第一行,由7個數字表示。
? 第1, 2個數字,代表x與y方向的數據數量,數據類型為整數。
? 第3, 4個數字,代表x與y方向的數據間隔,數據類型為浮點數。
? 第5個數字,代表數據的單位,0表示單位是mm。
? 第6, 7個數字,代表整體數據點的偏心量,數據類型為浮點數。
第二行及以后之后的數據格式如下:
注:數據最少需要5x5個點。
在網格矢高 (Grid Sag) 面的設定中,若指定使用雙三次樣條 (Bicubic-spline) 進行內插,為了使數據點之間sag的內插結果平滑,要求必須要輸入微分值。
但是,若設定所有的微分值為0,或是該數據留白不輸入,OpticStudio會默認使用有限差分法 (Finite Difference Method) 來計算微分值。
數據的紀錄順序定義如下:
1. 從的面的左上角,也就是Xmin、Ymax開始。
2. 下一個輸入的數據是該點的右邊一個值 (就是X方向加一個間隔)。
3. 第一行結束后,從第二行左邊開頭繼續。
4.
展開 Zemax如何以數據的方式定義網格矢高表面
有些時候 OpticStudio 內置的表面類型難以滿足我們的需求,所以我們可能需要外部數據的協助來構建我們想要的表面,今天就讓我們學習一下:
如何以數據的方式定義網格矢高表面
引言
本文示范了如何輸入表面起伏數據,以定義Zemax OpticStudio中的網格矢高 (Grid Sag) 類型表面,表面起伏數據應為Z坐標軸上的矢高 (Sag)。
本文所使用的附件請從以下鏈接中下載:
鏈接:https://pan.baidu.com/s/1uyhVzBj48WTHkb3wAFA5Ig 提取碼: x77t
正文
表面起伏數據格式是這樣定義的:
第一行,由7個數字表示。
第1, 2個數字,代表x與y方向的數據數量,數據類型為整數。
第3, 4個數字,代表x與y方向的數據間隔,數據類型為浮點數。
第5個數字,代表數據的單位,0表示單位是mm。
第6, 7個數字,代表整體數據點的偏心量,數據類型為浮點數。
第二行及以后之后的數據格式如下:
注:數據最少需要5x5個點。
在網格矢高 (Grid Sag) 面的設定中,若指定使用雙三次樣條 (Bicubic-spline) 進行內插,為了使數據點之間sag的內插結果平滑,要求必須要輸入微分值。
但是,若設定所有的微分值為0,或是該數據留白不輸入,OpticStudio會默認使用有限差分法 (Finite Difference Method) 來計算微分值。
數據的紀錄順序定義如下:
1. 從的面的左上角,也就是Xmin、Ymax開始。
2. 下一個輸入的數據是該點的右邊一個值 (就是X方向加一個間隔)。
3. 第一行結束后,從第二行左邊開頭繼續。
4.
展開 如何以數據的方式定義網格矢高表面
有些時候 OpticStudio 內置的表面類型難以滿足我們的需求,所以我們可能需要外部數據的協助來構建我們想要的表面,今天就讓我們學習一下:
如何以數據的方式定義網格矢高表面
一、引言
本文示范了如何輸入表面起伏數據,以定義Zemax OpticStudio中的網格矢高 (Grid Sag) 類型表面,表面起伏數據應為Z坐標軸上的矢高 (Sag)。
公眾號后續還會更新《如何以數據的方式定義網格相位表面》、《如何將干涉儀的測量數據輸入Zemax OpticStudio》等兩篇文章。本文所使用的附件請從以下鏈接中下載:
鏈接: https://pan.baidu.com/s/1uyhVzBj48WTHkb3wAFA5Ig
提取碼: x77t
二、正文
表面起伏數據格式是這樣定義的:
第一行,由7個數字表示。
?第1, 2個數字,代表x與y方向的數據數量,數據類型為整數。
?第3, 4個數字,代表x與y方向的數據間隔,數據類型為浮點數。
?第5個數字,代表數據的單位,0表示單位是mm。
?第6, 7個數字,代表整體數據點的偏心量,數據類型為浮點數。
第二行及以后之后的數據格式如下:
注:數據最少需要5x5個點。
在網格矢高 (Grid Sag) 面的設定中,若指定使用雙三次樣條 (Bicubic-spline) 進行內插,為了使數據點之間sag的內插結果平滑,要求必須要輸入微分值。
但是,若設定所有的微分值為0,或是該數據留白不輸入,OpticStudio會默認使用有限差分法 (Finite Difference Method) 來計算微分值。
數據的紀錄順序定義如下:
1. 從的面的左上角,也就是Xmin、Ymax開始。
2.
展開 如何以數據的方式定義網格相位表面
如何以數據的方式定義網格相位表面
今天我們的主角是網格相位表面,與上周推送的網格矢高表面一樣,均是用于解決 OpticStudio 內置面型難以滿足我們的建模要求問題的,一起來看:
如何以數據的方式定義網格相位表面
引言
本文示范了如何以數據的形式定義Zemax OpticStudio中的網格相位 (Grid Phase)表面。 閱讀本文前,請先參閱文章: 《如何以數據的方式定義網格矢高表面》
本文用到的文件請從以下鏈接中下載:
鏈接: https://pan.baidu.com/s/1iaf_m0WFj5BkLaLxWyUZJg
提取碼: 562v
正文
網格相位 (Grid Phase)表面與網格矢高 (Grid Sag) 表面的功能幾乎是一樣的。
其主要的不同處如下:
1. 網格相位表面由相位表示,區別于網格矢高的長度單位,其單位為度。
2. 基準面的形狀是平面。
3. 衍射級次 (Diffraction order) 設定為+1之后,就可以直接套用相位資料了。
導入數據的具體方式為:
1. 將后綴為.DAT 文件置于 “\Documents\Zemax\Objects\Grid Files” 文件夾中。
2. 請開啟鏡頭數據編輯器,選擇網格相位 (Grid Sag) ,并打開面屬性 (Surface Properties) 對話框 。
3. 然后選取您的 .DAT檔,點選導入 (Import),點擊 OK 輸入。
下圖是輸入的波前外形:
聯系我們
展開 
Zemax如何以數據的方式定義網格相位表面
今天我們的主角是網格相位表面,與之前推送的網格矢高表面一樣,均是用于解決 OpticStudio 內置面型難以滿足我們的建模要求問題的,一起來看:
如何以數據的方式定義網格相位表面
引言
本文示范了如何以數據的形式定義Zemax OpticStudio中的網格相位 (Grid Phase)表面。
閱讀本文前,請先參閱文章:《如何以數據的方式定義網格矢高表面》
本文用到的文件請從以下鏈接中下載:
鏈接: https://pan.baidu.com/s/1iaf_m0WFj5BkLaLxWyUZJg 提取碼: 562v
正文
網格相位 (Grid Phase)表面與網格矢高 (Grid Sag) 表面的功能幾乎是一樣的。
其主要的不同處如下:
1. 網格相位表面由相位表示,區別于網格矢高的長度單位,其單位為度。
2. 基準面的形狀是平面。
3. 衍射級次 (Diffraction order) 設定為+1之后,就可以直接套用相位資料了。
導入數據的具體方式為:
1. 將后綴為.DAT 文件置于 “\Documents\Zemax\Objects\Grid Files” 文件夾中。
2. 請開啟鏡頭數據編輯器,選擇網格相位 (Grid Sag) ,并打開面屬性 (Surface Properties) 對話框 。
3. 然后選取您的 .DAT檔,點選導入 (Import),點擊 OK 輸入。
下圖是輸入的波前外形:
希望本文章的內容能夠給您帶來知識和啟發!
展開 Ansys Zemax | 如何以數據的方式定義網格矢高表面
在序列模式下定義這個面時,表面類型為網格矢高 (Grid Sag)。曲率半徑、圓錐系數以及非球面系數等參數,可以用來定義輸入數據的基準面。
插值 (Interpolate) 一欄中的參數,代表矢高 (sag) 數據的內插方式,0表示雙三次樣條(Bicubic-spline),1表示線性內插(Linear interpolation)。
輸入的方式為:
1. 將后綴為.DAT 文件置于 “\Documents\Zemax\Objects\Grid Files” 文件夾中。
2. 請開啟鏡頭數據編輯器,選擇網格矢高 (Grid Sag) 面,并打開面屬性 (Surface Properties) 對話框 。
3. 然后選取您的后綴為 .DAT的文件,點選導入 (Import),點擊 OK 輸入。
數據輸入后,如果想要查看輸入結果的話,請選擇“分析 (Analyze) >報告 (Report) > 表面數據報告 (Surface Data) ”。
結果如上圖。
展開 Ansys Zemax | 設計抬頭顯示器時要使用哪些工具 – 第一部分
將風擋玻璃轉換為網格矢高表面:
非序列模式下的矢高分析是ZOS-API的擴展,用于測量CAD零件的矢高。
該分析使用探測光源光線并記錄該探測光線擊中NSC物體的位置。文件“HUD_windshield_sag.zar”可以在文章頂部下載。它包含風擋玻璃CAD零件和資源。
風擋玻璃的X和Y尺寸需要在NSC矢高圖中進行設置。可以近似使用相機視圖結合活動光標位置讀取需要設置的X-Y:
可以為NSC矢高工具輸入以下設置:
在設置中,您可以:
?取消勾選“移除XY傾斜”。NSC矢高不會將NSC物體的傾斜設置為0。
?勾選“保留保存的文件”,將.zmx和.zrd文件保存到當前文件夾。
NSC矢高圖以偽彩色顯示。如果在“設置”下,“顯示”選項設置為“文本”,則它也可以顯示為文本列表。然后可以保存此文本輸出并將其轉換為正確的數據格式.DAT,該數據可以用于網格矢高表面。為了簡單起見,本示例中風擋玻璃采用擴展多項式曲面進行建模。
定位所有元件
這是一個表示所有元件位置的示意圖:
可以利用以下實用工具將表面進行放置:
?坐標間斷-返回:坐標間斷面可以通過坐標返回來定義表面傾斜和偏心情況,可以在以下位置找到:Surface Properties…Tilt/Decenter。OpticStudio隨后將計算該“坐標間斷”面的對應參數,以便在該坐標間斷面之后,局部坐標與先前序列表面的局部坐標相同。
展開 Ansys Zemax | 如何以數據的方式定義網格矢高表面審
在序列模式下定義這個面時,表面類型為網格矢高 (Grid Sag)。曲率半徑、圓錐系數以及非球面系數等參數,可以用來定義輸入數據的基準面。
插值 (Interpolate) 一欄中的參數,代表矢高 (sag) 數據的內插方式,0表示雙三次樣條(Bicubic-spline),1表示線性內插(Linear interpolation)。
輸入的方式為:
1. 將后綴為.DAT 文件置于 “\Documents\Zemax\Objects\Grid Files” 文件夾中。
2. 請開啟鏡頭數據編輯器,選擇網格矢高 (Grid Sag) 面,并打開面屬性 (Surface Properties) 對話框 。
3. 然后選取您的后綴為 .DAT的文件,點選導入 (Import),點擊 OK 輸入。
數據輸入后,如果想要查看輸入結果的話,請選擇 “分析 (Analyze) >報告 (Report) > 表面數據報告 (Surface Data) ”。
結果如上圖。
展開 設計抬頭顯示器時要使用哪些 OpticStudio 工具 – 第一部分
一種解決方法是測量CAD零件的矢高,然后使用序列網格矢高表面對其進行建模。通過這種方式,系統保持在純序列模式,OpticStudio可以將網格矢高表面轉換為非球面類型表面??稍?Optimize...Convert Asphere Type 下找到對應轉換工具。
將風擋玻璃轉換為網格矢高表面:
非序列模式下的矢高分析是ZOS-API的擴展,用于測量CAD零件的矢高。有關詳細信息,請參閱題為 "NSC矢高圖用戶自定義分析"。(https://support.zemax.com/hc/zh-cn/articles/1500005489041)
該分析使用探測光源光線并記錄該探測光線擊中NSC物體的位置。文件“HUD_windshield_sag.zar”可以在文章頂部下載。它包含風擋玻璃CAD零件和資源。
風擋玻璃的X和Y尺寸需要在NSC矢高圖中進行設置??梢越剖褂孟鄼C視圖結合活動光標位置讀取需要設置的X-Y:
可以為NSC矢高工具輸入以下設置:
在設置中,您可以:
?取消勾選“移除XY傾斜”。NSC矢高不會將NSC物體的傾斜設置為0。
?勾選“保留保存的文件”,將.zmx和.zrd文件保存到當前文件夾。
NSC矢高圖以偽彩色顯示。如果在“設置”下,“顯示”選項設置為“文本”,則它也可以顯示為文本列表。然后可以保存此文本輸出并將其轉換為正確的數據格式.DAT,該數據可以用于網格矢高表面。為了簡單起見,本示例中風擋玻璃采用擴展多項式曲面進行建模。
展開 如何將ZYGO干涉儀的測量數據輸入Zemax OpticStudio
經過《如何以數據的形式定義Zemax OpticStudio中的網格矢高表面》以及《如何以數據的形式定義Zemax OpticStudio中的網格相位表面》兩篇文章的鋪墊,今天讓我們來學習:
如何將ZYGO干涉儀的測量數據輸入Zemax OpticStudio
引言
本文示范了如何將ZYGO干涉儀的測量數據輸入Zemax OpticStudio。
閱讀本篇文章之前,請先參閱《如何以數據的方式定義網格矢高表面》以及《如何以數據的方式定義網格相位表面》。
本文中使用到的文件請從以下鏈接中下載:
鏈接: https://pan.baidu.com/s/12BjXyAlNeu6Ig4sLt9_TpQ 提取碼: ec47
正文
首先,ZYGO的測量數據是可以用Zemax OpticStudio的文件格式輸出的。輸出文件的后綴名為.zxgrd,我們可將其轉換為.DAT并將轉換后的文件,放置到 \Document\Zemax/Objects\Grid Files\ 路徑下。
下面是數據文件開頭部分的截圖,可以看到數據文件變成適用于網格矢高 (Grid Sag) 表面的輸入格式了。
X, Y 數據點的總數為723個,因為數據間距為0.01344,可得知這份數據的直徑為9.72 mm。第一行最后的標志 (flag) 被設定為0,這代表單位是 mm。
不過,如果數據測量的是穿透波前的話,這個數據就必須以相位數據的形式來輸入。
展開 ZEMAX | OpticStudio 中如何輸入 Grid Sag 面型中的數據
網格文件被導入后,用戶可以通過表面數據報告(Surface Data Report)來查看導入的數據,如下圖所示:
同時,網格數據將一直保存在內存之中,OpticStudio 在進行計算時將忽略原有的 .DAT 文件。如果需數據被改變,則用戶需要重新在表面屬性中導入更改后的 .DAT 文件。最終生成的網格矢高面如下圖所示:
網格矢高面的幾點使用建議
OpticStudio 使用頂點的曲率半徑、非球面系數和網格點數據來計算網格矢高面的近軸光焦度。
網格的尺寸只受限于可用內存的大小。每個網格點需要4個8比特的雙精度數據和1個1比特值的存儲空間。一個255x255點陣的網格文件大約需要 2Mb 的內存。
雙三次樣條插值算法平滑至三階導,它得到的結果在格點上有精確值且不需要很大的網格文件就能得到很平滑的表面面型,但不能準確地模擬更高階的非球面。
網格矢高表面沒有定義網格邊界之外的部分時,光線追跡到網格表面之外將被視為光線丟失錯誤。在定義表面時,將表面區域定義為比光線照射部分尺寸更大的面可以有效避免這一錯誤。特別是不要將網格大小定義為與與光線照射區域相同的尺寸,否則光線追跡到網格表面邊緣時有可能不會再繼續追跡。
當使用網格矢高表面模擬表面極度彎曲的光學器件時,用戶最好將基礎面定義為相近的面型,再在此基礎上定義相對矢高,而不是直接用網格矢高面定義整個面型。
展開 
ZEMAX軟件技術應用教程:如何創建ZOS-API自定義擴展將切比雪夫多項式轉換為擴展多項式
如果在第 i 行找到切比雪夫多項式表面,那么代碼將調用名為 ConvertChebyshevToExtended (TheApplication, i) 的轉換函數。轉換函數將填充兩個數據數組:切比雪夫系數數組和計算得到的擴展多項式的系數數組。一旦轉換完成,該函數將在新計算的系數用于切比雪夫多項式表面之后,添加新的擴展多項式表面。
//Call the conversion function
ConvertChebyshevToExtended(TheApplication, i);
調用矢高函數 ( TheApplication, i ) ,該函數將返回矢高數組。調用矢高函數兩次:一次用于切比雪夫多項式表面,一次用于擴展多項式表面。
//Measure the sag of Chebyshev, Extended
double[,] chebysag = Sag(TheApplication, i);
double[,] extendedsag = Sag(TheApplication, i + 1);
調用名為 SagDifference(chebysag, extendedsag) 的函數,該函數將返回包含切比雪夫多項式表面和擴展多項式表面之間的矢高差的數組。
展開 如何將ZYGO干涉儀的測量數據輸入Zemax OpticStudio
閱讀本篇文章之前,請先參閱 《如何以數據的方式定義網格矢高表面》 以及 《如何以數據的方式定義網格相位表面》。 本文中使用到的文件請從以下鏈接中下載:
鏈接: https://pan.baidu.com/s/12BjXyAlNeu6Ig4sLt9_TpQ
提取碼: ec47
正文
首先,ZYGO的測量數據是可以用Zemax OpticStudio的文件格式輸出的。輸出文件的后綴名為.zxgrd,我們可將其轉換為.DAT并將轉換后的文件,放置到 \Document\Zemax/Objects\Grid Files\ 路徑下。
下面是數據文件開頭部分的截圖,可以看到數據文件變成適用于網格矢高 (Grid Sag) 表面的輸入格式了。
X, Y 數據點的總數為723個,因為數據間距為0.01344,可得知這份數據的直徑為9.72 mm。第一行最后的標志 (flag) 被設定為0,這代表單位是 mm。
不過,如果數據測量的是穿透波前的話,這個數據就必須以相位數據的形式來輸入。
展開 ZEMAX | 如何創建ZOS-API自定義擴展將切比雪夫多項式轉換為擴展多項式
如果在第 i 行找到切比雪夫多項式表面,那么代碼將調用名為 ConvertChebyshevToExtended (TheApplication, i) 的轉換函數。轉換函數將填充兩個數據數組:切比雪夫系數數組和計算得到的擴展多項式的系數數組。一旦轉換完成,該函數將在新計算的系數用于切比雪夫多項式表面之后,添加新的擴展多項式表面。
//Call the conversion functionConvertChebyshevToExtended(TheApplication, i);
調用矢高函數 ( TheApplication, i ) ,該函數將返回矢高數組。調用矢高函數兩次:一次用于切比雪夫多項式表面,一次用于擴展多項式表面。
//Measure the sag of Chebyshev, Extended double[,] chebysag = Sag(TheApplication, i);double[,] extendedsag = Sag(TheApplication, i + 1);
調用名為 SagDifference(chebysag, extendedsag) 的函數,該函數將返回包含切比雪夫多項式表面和擴展多項式表面之間的矢高差的數組。
展開 STAR-CCM+體網格切面,復雜表面幾何處理與網格劃分
圖52 勾選自定義表面網格選項
之后多出一項“Mesh Values”,如圖53所示,點擊Mesh Values→Customs Size→Relative Size,將其Properties下方的Percentage of Base處值更改為5,如圖54所示。
圖53 “Mesh Values”選項
圖54 更改Percentage of Base值
點擊工具欄處的網格面網格生成按鈕
進行重構網格建立,等網格生成后,右鍵點擊主界面空白區,選擇選擇“Apply Representations”→“Remesher Surface”,如圖55所示,顯示重構后的網格,如圖56所示。
圖55 選擇“Remesher Surface”選項
圖56 重構后的網格
因為體網格是在重構網格的基礎上生成的,為了避免體網格生成收到之前包面網格的影響,將之前的包面網格進行刪除,右鍵點擊Representations→Wrapped Surface,在彈出菜單中選擇Delete,將Wrapped Surface網格刪除,如圖57所示。
圖57 刪除Wrapped Surface網格
網格質量檢查
右鍵Remeshed Surface,選擇Repair Surface...
展開