通过前面的学习,我们继续研究单元层次结构。
打孔训练
实现打一连串的方形孔
第一种方案(错误的)
该方案我想是大多数人一下就会想到的方法,那就是先创建一个孔阵列,然后创建一个大的Box,之后取这两个形状之间的差异。
再在device上创建一个Layer,然后绘制一个大的Box,覆盖在孔阵列上
然后使用Edit -> Selection -> Subtraction - Others From First,取差集,但此时你会发现,我靠,咋不生效呢?界面一动没动
因为他们是不同的东西,没办法作比较!那有什么办法可以做比较呢?我们可以将阵列全部转换到Box中。
选中阵列,然后Edit -> Selection -> Flatten Instances
注意:此方法慎用,因为此方法会删除选中目标的所有层次结构,并且会大大增加文件的大小。
此时,再重新做差集就可以了。
注意:先用阵列再进行subtraction,这样创建出来的形状比较复杂,文件比较大
第二种方案(推荐的)
直接在cell1中打孔,然后做阵列
在device中做阵列
因此,完成整个孔阵列的一种更有效的方法就如字面意思一样,先制作一个单独的孔,然后创建一个阵列,这将容易很多,并且将大大减小文件的大小和事情的复杂性。
Cell副本的使用
如果我想绘制一个新的阵列,里面包含device阵列,并且还有与device基本类似的阵列,此时,我们就可以拷贝device,进行修改
- 建立新的Cell,取名chip,并添加device阵列
- 拷贝device
Edit -> Copy
- Shallow copy:不会复制任何子Cell
- Deep copy:会复制子Cell
此处我们选择深拷贝,因为我们要修改cell1的形状,然后粘贴到Cells
- 修改cell1$1(复制后的新名称)
我这面是在cell1的原来的样式上又打了一个孔
device$1变成了这样
- chip中引用device$1阵列
所以,这是制作一些不同cell副本的好方法,而不必从头开始所有工作。