GDSTK引用功能

gdstk.Reference

gdstk.Reference(cell, origin= (0, 0), rotation=0, magnification=1, x_reflection=False, columns=1, rows=1, spacing=None)

当一个版图有大量相同结构时,使用“引用”功能可以大幅减少绘制时间,并且.gds文件体积更小。
cell: 被引用Cell,存放有一个周期结构;
origin: Cell放置位置;
rotation: 旋转角度(rad.)
magnification: 放大倍数
后面几个参数是矩阵排列时,控制行列各排布几个结构及间距用的,用处较少暂不用管;

使用引用功能绘制版图

我们在此前绘制矩形结构的代码上就行修改,添加引用功能,来排布多个相同结构。

import gdstk
import numpy
import math

# 创建一个Library
MetaLens = gdstk.Library()

# 创建一个Cell
Meta = gdstk.Cell("Meta")

# 创建一个超原子矩形结构
rectangle = gdstk.rectangle((-80, -30), (80, 30))

# 将矩形结构放入Cell
Meta.add(rectangle)

# 将Cell放入Library
# 此处命名为 Meta 的 Cell ,为被引用 Cell
MetaLens.add(Meta)

# 创建一个新的Cell,用于存放引用后重新旋转排布的结构
Meta_Ref_1 = gdstk.Cell('Meta_Ref_1')
# 创建3个引用结构,中心分布位于(0,0)、(100,0)、(200,0)
for N_i in range(0, 3, 1):
    Meta_Ref1 = gdstk.Reference(Meta, (100*N_i, 0), numpy.pi/4)
    Meta_Ref_1.add(Meta_Ref1)
MetaLens.add(Meta_Ref_1)

# 保存.GDS文件
MetaLens.write_gds("MetaLens.gds")

如下图所示,可以得到 3 个旋转 45° 后重新排布的结构,单个结构尺寸与被引用结构相同:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来50年诺贝尔奖候选人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值