Square within a square using Ruby

edited December 2015 in Ruby Scripting
Hello, how can I generate a square within a square using KLayout, such that the inner square is hollow?

I need to create of loop of 100 such "squared-rings", each being in a different layer.

Example: http://i.stack.imgur.com/H20jf.png

Comments

  • edited December 2015

    =

    num = 100
    w_inner = 1
    w_outer = 2
    dx = 3
    
    include RBA
    lv = Application.instance.main_window.current_view
    ly = lv.active_cellview.layout
    dbu = ly.dbu
    cell = lv.active_cellview.cell
    
    num.times { |i|
    
      w = w_inner/2.0/dbu
      inc = i*dx/dbu
      boxes_inner  = Box.new(-w + inc, -w, w + inc,w)
      region_inner = Region.new(boxes_inner)
      w = w_outer/2.0/dbu
      boxes_outer  = Box.new(-w + inc, -w, w + inc, w)
      region_outer = Region.new(boxes_outer)
    
      region = region_outer - region_inner
    
      layer_info = LayerInfo.new(i,0)
      layer_index = ly.layer(layer_info)
    
      cell.shapes(layer_index).insert(region)
    }
    
    lv.add_missing_layers
    lv.zoom_fit
    
  • edited November -1

    Hi David,

    many thanks for this nice example!

    Best regards,

    Matthias

  • edited November -1
    Thank you :)
Sign In or Register to comment.