Not signed in (Sign In)

Vanilla 1.1.4 is a product of Lussumo. More Information: Documentation, Community Support.

  1.  

    Hello,

    I have a script that takes a DRC report file and does some analysis on the related layout. I started from this forum entry to load the ReportDatabase:

    alv = RBA::LayoutView::current
    rdb_index = alv.create_rdb("database_name")
    rdb = alv.rdb(rdb_index)
    rdb.load('my_drc.db')
    

    This works great when executed interactively, but now I'd like to change the script to be executed on the command line. The problem is that RBA::LayoutView::current doesn't exist there, so I tried to create the rdb object explicitly:

    rdb = RBA::ReportDatabase.new
    rdb.load('my_drc.db')
    

    But the load call failed with the following exception:

    Object cannot be created here in LayoutView::create_rdb
    

    Is there a non-interactive version of the RBA::LayoutView#create_rdb method somewhere, or a different workaround?

  2.  

    Well, at least I found a workaround, by starting KLayout in Non-GUI mode (hidden views) instead of Non-GUI mode (database only, implies -nc):

    klayout  -z  -r my_script.rb  my_layout.gds
    

    Otherwise I'd use the -zz parameter instead of -z to run scripts through the command line.

    • CommentAuthorMatthias
    • CommentTimeMay 10th 2017 edited
     

    Hi Chris,

    I need to look into this. Actually the database object is supposed to be taken from a view. It's was not designed initially to live standalone. That's why the constructor fails (actually it's a late initialization that fails).

    I don't recall the reason why a database object needs the views (-z instead of -zz). Maybe it can be enhanced such that you can use it standalone too.

    Thanks for reporting this issue,

    Matthias