Selecting issue

edited December 2009 in General
Hi Matthias,

Sorry to bother you again~

I tried to open a gds file then hide all layers besides one layer we need, and the main window only show five objects.

When I select an area include these five objects, a running scroll at the right bottom of main window appeared and shows "selecting", even only five objects it spends a long long time.

Finally I found the element would effect the speed is edit=>select=>instances , if the option is checked, the program would check all the objects even these objects should not be visible because the layers are hide.
Is this situation correct or could be improved?

Another problem, is it possible to list the absolute coordinates/positions of selected text objects?
like this:
text1(11.00000,22.00000)
text2(89.01000,55.10000)

Best Regards,
--
chi-hsiang-hung

Comments

  • edited November -1

    Hi,

    thanks for the hint about the speed issue. I'll try to reproduce that and find a solution for it.

    Regarding the second request: there is a check box in the property page named "absolute (accumulated) transformations". Thats probably somewhat misleading but checking the box should give the desired results.

    Best regards,

    Matthias

  • edited December 2009
    Hi Matthias,

    The reason why we hope a function to list all the coordinates selected is,
    when trying to get coordinates from many text objects, we have to select
    all the objects and open the properties window, copy/paste the position,
    click the next button and repeat this procedure many times.

    Is there another way to do such action faster? Your kindly support
    would be highly appreciated.

    Best Regards,
    --
    chi-hsiang-hung
  • edited December 2009

    Hi,

    The following script may be helpful to fulfil your request: It dumps the absolute coordinates of all text objects selected to a file in the format "TEXT(x,y)".

    Here is the code:

    class MenuAction < RBA::Action
      def initialize( title, shortcut, &action ) 
        self.title = title
        self.shortcut = shortcut
        @action = action
      end
      def triggered 
        @action.call( self ) 
      end
    private
      @action
    end
    
    $dump_texts = MenuAction.new( "Dump Texts", "" ) do 
    
      app = RBA::Application.instance
      mw = app.main_window
    
      lv = mw.current_view
      if lv == nil
        raise "No view selected"
      end
    
      # Ask for the file name 
      filename = RBA::FileDialog.get_save_file_name("Dump selected texts", ".", "All files (*)")
      if filename.has_value?
    
        File.open(filename.value, "w") do |file|
    
          lv.each_object_selected do |sel|
            if !sel.is_cell_inst? && sel.shape.is_text?
              text = sel.shape.text
              p = sel.trans.trans(text.trans.disp)*lv.cellview(sel.cv_index).layout.dbu
              file.puts("#{text.string}(#{p.x},#{p.y})")
            end
          end
    
        end
    
      end
    
    end
    
    app = RBA::Application.instance
    mw = app.main_window
    
    menu = mw.menu
    menu.insert_separator("tools_menu.end", "name")
    menu.insert_item("tools_menu.end", "dump_texts", $dump_texts)
    

    Best regards,

    Matthias

  • edited November -1
    Hi Matthias,

    Very thanks for your code, it fits our requests at all,
    your kindly support is really a best Christmas gift. :)

    Merry Christmas & Happy New Year!

    Best Regards,
    --
    chi-hsiang-hung
  • edited November -1
    Hi Matthias-

    I have a large file and I'm trying to locate a label saying "sen2" in it.
    If I save the GDS file as text I can findthe following-

    TEXT
    LAYER 30
    TEXTTYPE 4
    PRESENTATION 6
    STRANS 0
    MAG 0.5
    XY 16000: 137000
    STRING sen2
    ENDEL

    So now I try to lacte this label, but the Y coordinate is out of the die so probably these coordinates need some conversion.
    How can I find this label?

    Thanks much, Itamar
  • edited November -1
    Hi Matthias-

    I was able to find this label in the design but still could not figure how to transform coordinates.
    Another q: How can I have this label attached to it's net. When I trace this net, I want this net to show "sen2". I tried to connecet this label layer (30:4) to the top metal layer but this still does not show.

    Thanks,
  • edited November -1

    Hi Itamar,

    I guess the text object is somewhere in a child cell. In order to get the final location, you'll have to flatten the cell or you apply the transformation of the cell instances to the shape. A handy class is the RecursiveShapeIterator which delivers shapes from all over the hierarchy and also collects the transformations along the instantiation paths.

    In order to detect nets, you can declare 30/4 as a metal layer and connect it to a metal layer. For example, if you have metal on 30/0, you can define the following connection in the layer stack:

    30/0 - None - 30/4

    This will use the texts as net names when they are over metal in 30/0. But beware, if there are multiple texts - the net tracer will just use one.

    Matthias

Sign In or Register to comment.