[Tutor] Importing an existing plot and manipulating it !

ram rokr ramrokstheweb at gmail.com
Tue Dec 2 09:53:11 CET 2014

Hello people,
                I'm a beginner with Python and I'm new to the mailing list.
It's nice to know that there is a mailing list with people/tutors who can
help me learn Python.
                So, my difficulty now is that, I already have a script that
plots a polygon. But now I'm trying to script a Python class that would
enable me to import parameters(or the plot itself) from the previous script
and control it too (like specifying parameters: spacing, width, height or
the like).

My approach was to create a new layout and try to import the existing plot
and then try to manipulate it:

import math

import numpy as np

import pya

ly = pya.Layout("L10")

# create the top cell

top_cell = ly.create_cell("TOP")

# finding the PCell declaration object ...

# locating the earlier script to get the parameters for the polygon

def __init__(self):

self.lib = pya.Library.library_by_name("MyLib")                        #
PCell is a file that contains the polygon with all the parameters of

if self.lib == None:

raise Exception("Unknown lib 'MyLib'")
#I'm trying to get parameters from this file/plot to make more.

self.pcell_decl = lib.layout().pcell_declaration("CanaryCell");

if pcell_decl == None:

raise Exception("Unknown PCell 'CanaryCell'")

# instantiating that cell ...


# transformation

class Position:

def __init__(self, xpos, ypos, t):

self.xpos = 0

self.ypos = 0

self.t = pya.Trans(pya.Trans.r0(), -1000 + xpos, -1000 + ypos)

# insert into "top_cell" (must be provided by the caller)

class top_cell (Dec, Position):

def __init__(self, insert, pcell_inst):

top_cell = pya.CellView.active().cell

self.a = pya.Point(x1,0)

self.b = pya.Point(0,y1)

self.na = 5

self.nb = 7

pcell_inst = top_cell.insert(pya.CellInstArray(pcell_decl, t, a, b, na, nb))

Position(xpos, ypos, t)

top_cell(insert, pcell_inst)

# write the layout


How could you advise me to aprroach this problem accomplish this? I've time
constrains and that's a big problem ! Thanks.

P.S: Yes, the script looks weird. Because I've to use Klayout with python
integration. Since I'm new to both I'm having a hard time. If somebody can
enlighten me about how to do this in Python, maybe I can comprehend and
work it out with KLayout.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20141202/07098d73/attachment-0001.html>

More information about the Tutor mailing list