It looks like you're new here. If you want to get involved, click one of these buttons!
I would like to turnoff all layer except two layers having pads and die border. I could turn off all layers except one layer with the code below. How can I change this code to turn on two layers
include RBA
myListx = []
myListy = []
ly = CellView::active.layout
ly.read('C:/28200.gds')
view = RBA::LayoutView::current
layer = RBA::LayerInfo::new(12, 0)
li = view.begin_layers
while !li.at_end?
  lp = li.current
  new_lp = lp.dup
  new_lp.visible = (lp.source_layer == 12 && lp.source_datatype == 0)
  view.set_layer_properties(li, new_lp)
  li.next
end
lv = Application::instance.main_window.current_view
lv.each_object_selected {
  |obj|
  shape = obj.shape
  if shape.is_polygon?||shape.is_box?
    # NOTE "transformed" - this transforms the polygon into the current cell
    shape.polygon.transformed(obj.trans).each_point_hull { 
      |pt|
      (x, y) = pt.x*ly.dbu, pt.y*ly.dbu
      myListx << x
      myListy << y
    }
  end
}
puts "#{myListx}", "#{myListy}"
end
                
Comments
Hi!
I think problem lays in fact that you modify layer properties. You don't need to do so, and
li.current.visible = <visibility condition>should be enough for your task.@raji This code works nicely for me:
Thanks Matthias
.