热度 2| ||
注:数据来源“小目老师” “IC技术搬运工”
https://mp.weixin.qq.com/s/qxZB4m2CG69nmannkSiT5w
这个小脚本的功能是帮助用户在layout过程中把LSW中的entry layer(输入层)设置为当前版图中的选中层。
下面介绍的脚本可以帮助大家解决一部分困惑,如果在layout过程中需要切换LSW的entry layer,而恰好当前layout中就有需要用到的层,那么用户就可以通过下面两个步骤实现LSW层的快速切换:
先在版图中点击选中需要使用的层,注意只能是可以被单独选中的层,除此之外的instance、group等都不行。 按下快捷键,LSW中的entry layer将自动切换到上一步中选中的层。
函数:
geGetSelSet()
selected_layer=car(geGetSelSet())~>?
selected_layer=car(geGetSelSet())~>lpp
可以看到,对于一个选中的层包含很多属性,本次脚本中使用的是「lpp」属性,该属性值是一个列表,包含layer的名称和用途信息。
获取完layer的信息之后,使用函数pteSetActiveLpp(),更改LSW中当前entry layer的信息即可。
/**********************************************************************
*author : Write by Official Wechat Account: ICSkillSharing
*date : 2020-06-15
*function : Change current entry layer quickly by select layer
**********************************************************************/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; start change current entry layer quickly
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; bindkeys
hiSetBindKeys("Layout"
list(
list("Shift<Key>L" "change_entry_layer_quickly_cb()")
)
)
procedure( change_entry_layer_quickly_cb( )
let(
(
selected_layer
)
selected_layer = car(geGetSelSet())~>lpp
if(selected_layer then
pteSetActiveLpp( strcat(nth(0 selected_layer) " " nth(1 selected_layer)) )
else
warn("Select a valid layer please! \n");select a valid layer
);if
) ;let
) ; procedure
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; end change current entry layer quickly
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
函数:
pteSetActiveLpp()
如果觉得使用脚本不方便,可以直接在快捷键中定义该功能。
hiSetBindKeys("Layout"
list(
list("Shift<Key>L" "pteSetActiveLpp( strcat(nth(0 car(geGetSelSet())~>lpp) \" \" nth(1 car(geGetSelSet())~>lpp)) )")
)
)