luceda ipkiss教程 69:導出器件或者線路的三維模型

ipkiss 3.12版加入write_obj函數,可以直接輸出器件的三維模型。

如,輸出自定義的mmi的三維模型:
在這里插入圖片描述
代碼如下:

from si_fab import all as pdk
from ipkiss3 import all as i3class MMI1x2(i3.PCell):"""MMI with 1 input and 2 outputs."""_name_prefix = "MMI1x2"trace_template = i3.TraceTemplateProperty(doc="Trace template of the access waveguide")width = i3.PositiveNumberProperty(default=4.0, doc="Width of the MMI section.")length = i3.PositiveNumberProperty(default=20.0, doc="Length of the MMI secion.")taper_width = i3.PositiveNumberProperty(default=1.0, doc="Width of the taper.")taper_length = i3.PositiveNumberProperty(default=5.0, doc="Length of the taper")waveguide_spacing = i3.PositiveNumberProperty(default=2.0, doc="Spacing between the waveguides.")def _default_trace_template(self):return pdk.SiWireWaveguideTemplate()class Layout(i3.LayoutView):def _generate_elements(self, elems):length = self.lengthwidth = self.widthtaper_length = self.taper_lengthtaper_width = self.taper_widthhalf_waveguide_spacing = 0.5 * self.waveguide_spacingcore_layer = self.trace_template.core_layercladding_layer = self.trace_template.cladding_layercore_width = self.trace_template.core_width# Si coreelems += i3.Rectangle(layer=core_layer,center=(0.5 * length, 0.0),box_size=(length, width),)elems += i3.Wedge(layer=core_layer,begin_coord=(-taper_length, 0.0),end_coord=(0.0, 0.0),begin_width=core_width,end_width=taper_width,)elems += i3.Wedge(layer=core_layer,begin_coord=(length, half_waveguide_spacing),end_coord=(length + taper_length, half_waveguide_spacing),begin_width=taper_width,end_width=core_width,)elems += i3.Wedge(layer=core_layer,begin_coord=(length, -half_waveguide_spacing),end_coord=(length + taper_length, -half_waveguide_spacing),begin_width=taper_width,end_width=core_width,)# Claddingelems += i3.Rectangle(layer=cladding_layer,center=(0.5 * length, 0.0),box_size=(length + 2 * taper_length, width + 2.0),)return elemsdef _generate_ports(self, ports):length = self.lengthtaper_length = self.taper_lengthtrace_template = self.trace_templatehalf_waveguide_spacing = 0.5 * self.waveguide_spacingports += i3.OpticalPort(name="in1",position=(-taper_length, 0.0),angle=180.0,trace_template=trace_template,)ports += i3.OpticalPort(name="out1",position=(length + taper_length, -half_waveguide_spacing),angle=0.0,trace_template=trace_template,)ports += i3.OpticalPort(name="out2",position=(length + taper_length, half_waveguide_spacing),angle=0.0,trace_template=trace_template,)return portsclass Netlist(i3.NetlistFromLayout):passif __name__ == '__main__':mmi_layout = MMI1x2().Layout()mmi_layout.visualize(annotate=True)mmi_geometry = i3.device_sim.SimulationGeometry(layout=mmi_layout,process_flow=i3.TECH.VFABRICATION.PROCESS_FLOW,)mmi_geometry.write_obj(filename="mmi.obj")

輸出三維模型部分的代碼:

mmi_geometry = i3.device_sim.SimulationGeometry(layout=mmi_layout,process_flow=i3.TECH.VFABRICATION.PROCESS_FLOW,)mmi_geometry.write_obj(filename="mmi.obj")

生成的obj文件可以用Mayo打開。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/9845.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/9845.shtml
英文地址,請注明出處:http://en.pswp.cn/web/9845.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kaldi學習參考

HMM模型 https://www.cnblogs.com/baixf-xyz/p/16777438.htmlhttps://www.cnblogs.com/baixf-xyz/p/16777438.htmlGMM-HMM 基于GMM-HMM的語音識別系統https://www.cnblogs.com/baixf-xyz/p/16777439.html https://www.cnblogs.com/baixf-xyz/p/16777426.htmlhttps://www.cnbl…

全棧開發之路——前端篇(6)生命周期和自定義hooks

全棧開發一條龍——前端篇 第一篇:框架確定、ide設置與項目創建 第二篇:介紹項目文件意義、組件結構與導入以及setup的引入。 第三篇:setup語法,設置響應式數據。 第四篇:數據綁定、計算屬性和watch監視 第五篇 : 組件…

碼一點網站

Linux命令查詢網站 https://www.lzltool.com/LinuxCommand/Index 小林 x 圖解計算機基礎 https://xiaolincoding.com/ 代碼隨想錄 https://programmercarl.com/ 可用于爬蟲 https://books.toscrape.com/ 數據結構可視化 https://www.cs.usfca.edu/~galles/visualization/ …

fastText-文本分類

fastText介紹 fastText是一個快速文本分類算法,與基于神經網絡的分類算法相比有兩大優點: 1、fastText在保持高精度的情況下加快了訓練速度和測試速度 2、fastText不需要預訓練好的詞向量,fastText會自己訓練詞向量 3、fastText兩個重要的優化:Hierarchical Softmax、N-gr…

387.字符串中的第一個唯一字符

刷算法題: 第一遍:1.看5分鐘,沒思路看題解 2.通過題解改進自己的解法,并且要寫每行的注釋以及自己的思路。 3.思考自己做到了題解的哪一步,下次怎么才能做對(總結方法) 4.整理到自己的自媒體平臺。 5.再刷重復的類…

YUV中Y顏色模型的采樣

YUV的特點 相對于表示顏色的GUI, YUI將亮度(用Y表示)與色調(用U和V表示)分開來表示。又因為人類視網膜上的視網膜桿細胞要多于視網膜錐細 胞,說得通俗一些,視網膜桿細胞的作用就是識別亮度&…

LabVIEW MEMS電容式壓力傳感器測試系統

LabVIEW MEMS電容式壓力傳感器測試系統 隨著微電子技術的發展,MEMS(微電機系統)技術在各個領域得到了廣泛應用。MEMS電容式壓力傳感器以其高靈敏度、小尺寸、低功耗等優點,在微傳感器領域占據了重要的地位。然而,這些…

Smma-net:一種基于音頻線索的目標說話人提取網絡,具有譜圖匹配和相互關注功能

SMMA-NET: AN AUDIO CLUE-BASED TARGET SPEAKER EXTRACTION NETWORK WITH SPECTROGRAM MATCHING AND MUTUAL ATTENTION 第二章 目標說話人提取之《Smma-net:一種基于音頻線索的目標說話人提取網絡,具有譜圖匹配和相互關注功能》 文章目錄 SMMA-NET: AN AUDIO CLUE-…

程序員的多維智慧:技術修煉、人際交往與投資哲學

程序員不應該只會埋頭敲代碼,要多看看書,多學習... 1.程序員技術 保持嚴謹的作風,實事求是,記錄現象,找準依據,可以做出假設,問題的解釋和結論必須能完整、全面符合現象和各種認知邏輯。 絕不…

【算法入門賽】B. 自助店評分(C++、STL、推薦學習)題解與代碼

比賽地址:https://www.starrycoding.com/contest/8 題目描述 在上一場的入門教育賽中,牢 e e e找到了所有自助店的位置,但是他想發現一些“高分好店”,于是他利用爬蟲技術從“小眾點評APP”中爬取了武漢所有自助店的評分。 評分…

Python 機器學習 基礎 之 構建第一個機器學習應用

Python 機器學習 基礎 之 構建第一個機器學習應用 目錄 Python 機器學習 基礎 之 構建第一個機器學習應用 一、簡單介紹 二、第一個機器學習測試應用介紹:鳶尾花分類 三、第一個機器學習測試應用 :前置環境,知識點介紹 jupyter notebo…

mamba-ssm安裝卡著不動

項目中用到Mamba的小伙伴,causal_conv1d和 mamba-ssm兩個包,但是會卡在Building wheel for mamba-ssm (setup.py) : 為了探究卡在了building的哪一步,加入–verbose進行顯示: pip install mamba-ssm --no-cache-dir -…

Linux 安裝JDK和Idea

安裝JDK 下載安裝包 下載地址: Java Downloads | Oracle (1) 使用xshell 上傳JDK到虛擬機 (2) 移動JDK 包到/opt/environment cd ~ cd /opt sudo mkdir environment # 在 /opt下創建一個environment文件夾 ls# 復制JDK包dao /opt/environment下 cd 下載 ls jd…

openGauss學習筆記-279 openGauss性能調優-實際調優案例08-改寫SQL消除in-clause

文章目錄 openGauss學習筆記-279 openGauss性能調優-實際調優案例08-改寫SQL消除in-clause279.1 現象描述279.2 優化說明openGauss學習筆記-279 openGauss性能調優-實際調優案例08-改寫SQL消除in-clause 279.1 現象描述 in-clause/any-clause是常見的SQL語句約束條件,有時in…

Jmeter性能測試(三)

token鑒權處理 1、添加json提取器 2、寫jsonpath表達式在響應Body中提取鑒權token token:變量名,可以直接引用 $…token:token數據在響應中的字段名稱,根據自己情況寫就行 3、將提取出來的token添加到請求頭中 重點&#xff…

postman常用功能超全使用教程

Postman 使用 一、Postman 簡介 Postman是一個接口測試工具,在做接口測試的時候,Postman相當于一個客戶端,它可以模擬用戶發起的各類HTTP請求(如:get/post/delete/put…等等),將請求數據發送至服務端,獲取對應的響應結果。 二、Postman 功能簡介 三、Postman 下載安裝 Post…

ssrf(第二彈)

四,post請求 1.打開環境,提示說發一個HTTP POST請求,ssrf是用php的curl實現的.并且會跟蹤302跳轉。 2.用dirsearch掃一下常見的端口,看到有三個可以訪問的頁面 3.構造偽協議,因為要通過172.0.0.1訪問,我們…

基于OpenCV對胸部CT圖像的預處理

1 . 傳作靈感 胸部CT中所包含的噪聲比較多,基于OpenCV簡單的做一些處理,降低后續模型訓練的難度。 2. 圖像的合成 在語義分割任務中有的時候需要將原圖(imput)和標注數據(groudtruth)合成一幅圖像&#x…

Java——接口的補充

目錄 一:接口的注意事項 1. 接口中不能有方法塊; 2. 接口沒有構造方法: 3.接口是可以多繼承的; 4. 多個接口抽象方法重復 5. 類的父類方法與接口方法重復 二:類與接口 1. 繼承與實現 2. 多個父接口的抽象…

AzureDataFactory 表選項之自動創建表

接上篇, 該篇里表與表之間采取了提前mapping的方式,通過Import schemas的方式將源和目標的表的schemas做了一對一的匹配 但如果我的應用場景是將D365的表數據推送到外部數據源,需要原表clone,如果我去先建表建字段再做mapping未免過于繁瑣&am…