在lumerical中,可以使用脚本进行操作,可在右侧脚本编辑器运行,structure group处使用script,或者直接在下方shell输入。
在这里插入图片描述
在这里插入图片描述

结构的搭建

创建长方体

um = 1e-6;
nm = 1e-7;
addrect;
set("name","myRect");
set("material","SiO2 (Glass) - Palik");
set("render type","wireframe"); # 默认是细节渲染,也就是detailed
# 通过中心位置与宽度设置尺寸
set("x",0);
set("y",0);
set("x span", 1.2*um);
set("y span", 1.2*um);
# 通过最大最小值设置尺寸
set("z max",0);
set("z min",-1*um);

利用脚本创建结构的过程和利用GUI创建的过程几乎相同,首先是addrect,其效果相当于点击structures里的Rectangle,创建一个长方体。
接下来的set就和edit时候的操作类似,如set(“name”,“your name”)便是设置该物体的名称,其几何尺寸与位置设置方式和gui中相同,可以通过最大最小值或者中心值与范围来进行设置。
材料设置的时候比较麻烦的一点是材料的名字太长了,还得手敲。
GUI的第三个标签rotations里设置的是旋转轴,一般来讲我不会特意设置这个,如果需要也可以使用脚本

set("first axis","x");

set("rotation 1",45);

图形渲染的话如不设置,便默认为细节渲染,也就是你能看到具体的样子,不过为了减少渲染压力,也可以使用线框渲染。

创建柱体

多边形柱体

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J8k5ovjH-1646707998173)(https://baozi.bladehamster.xyz/wp-content/uploads/2022/03/Pasted-image-20220308094400-300x201.png)]
创建多边形柱时,名称、材料、渲染方式等设置都与创建长方体相同,其差别仅在于几何参数的设置。其创建指令为addpoly
如图所示,z轴方向的设置与创建长方体时相同,都有两种创建方式,但是xy方向则必须设置中心点,然后需要逐次指定棱柱边缘在XY平面上投影的坐标。
在脚本中,我们使用向量组来实现对一系列角点的指定。

um=1e-6;
nm=1e-9;
verts=[0,0;0,1;2,0;2,2;1,3;0,1]*um; #向量组

addpoly;

set("name","polyCol");#名称

set("material", "Au (Gold) - Palik");#设置材料

set("vertices",verts);#设置角点

set("x",0);#中心坐标

set("y",0);

set("z",0);

set("z span",1*um);

运行脚本,可以查看,新创建出的棱柱的角点顺序便为我们向量组的点的顺序。利用多边形棱柱可以做出一些相对复杂的图形。如果希望棱柱的轴不再为z轴,可以添加rotations使旋转,如

set("first axis","x");

set("rotation 1",90);

(椭)圆柱体

圆柱体的创建与多边形柱体类似,只是不再需要指定角点,而是指定半径,其初始轴也是沿着z轴方向。其创建指令为addcircle

um=1e-6;

nm=1e-9;

addcircle;

set("name","circle");

set("material","Au (Gold) - Palik");

set("x",0);

set("y",0);

set("z",0);

set("z span",1*um);

set("radius",1*um);#半径/x轴半径

lumerical支持椭圆圆柱,与GUI中的设置相同,只需先启用 “make ellipsoid” ,再设置第二轴半径即可,如

set("make ellipsoid",1);#生成椭圆

set("radius 2",800*nm);#y轴半径

圆环柱

圆环与其它柱体类似,其特征为需要设置内部半径、外部半径以及圆心角的起点和终点角度。其创建指令为addring

um=1e-6;

nm=1e-9;

addring;

set("name","ring");

set("x",0);

set("y",0);

set("z",0);

set("z span",1*um);

set("outer radius",2*um);#外圆半径

set("inner radius",1*um);#内圆半径

set("theta start",30);#起始角

set("theta stop",150);#终止角

自定义形状

自定义形状的添加指令为addcustom,其需要设置一段曲线方程来进行形状的创建。
在GUI中可以看到custom标签下有equation设置以及create 3D object by的模式选择。
在equation中,写下f(x)表达式,便可确定在XY投影上的图形边界,(范围由几何页面的参数确定)
在创建方式中extrusion类似于solidworks的拉伸,3dmax的挤出,直接将平面图形拉伸,而revolution则是旋转。

# 创建一个半圆柱
  
addcustom;

set("create 3D object by","extrusion");

set("equation 1","sqrt("+num2str(0.5)+"^2-(x-"+num2str(0.5)+")^2)");

set("x span",1e-6);

set("y span",1e-6);

set("z span",2e-6);

# 创建一个半球

addcustom;

set("create 3D object by","revolution");

set("equation 1","sqrt("+num2str(0.5)+"^2-(x-"+num2str(0.5)+")^2)");

set("x span",1e-6);

set("y span",1e-6);

set("z span",2e-6);

默认模式下,图形是关于YZ平面对称的,如果创建方式选择extrusion,则可选择不对称,如

addcustom;

set("create 3D object by","extrusion");

set("equation 1","sqrt("+num2str(0.5)+"^2-(x-"+num2str(0.5)+")^2)");

set("make nonsymmetric",1);

set("equation 2","x*3");

set("x span",1e-6);

set("y span",1e-6);

set("z span",2e-6);

创建surface

不过感觉这个一般用不到,其创建指令为addsurface

其设置方式还是用set一条一条去设置便可,此处注意如果需要用的equation,变量名为u,v

波导

与前述类似,可以参考[[# 多边形柱体]]用向量组设置poles,创建指令为addwaveguide

最简单的设置,只需要球心坐标和半径,若要建立椭球,则需要另外两轴的半径,创建指令为addsphere

棱锥

创建指令为addpyramid,其特殊之处为xy必须设置其顶面和底面的x、y范围。

addpyramid;

set("x",0);

set("x span bottom",1e-6);

set("x span top", 1e-7);

set("y",0);

set("y span bottom",1e-6);

set("y span top", 1e-7);

set("z",0);

set("z span", 1e-6);

lumerical 相关参考文档

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐