diff --git a/examples/remove_add_components.py b/examples/remove_add_components.py new file mode 100644 index 0000000000000000000000000000000000000000..a2cdea8d88ffe000c6b66ee3ac3af6df18326492 --- /dev/null +++ b/examples/remove_add_components.py @@ -0,0 +1,54 @@ +# Example showing how to remove and add components with Pykat. +# Commands that get parsed into a pykat object can be interacted +# with in a object orientated manner. So you can call kat.component.remove() +# to remove it for example. +# +# This example shows how a kat object can be manipulated when pykat objects +# are available. +# +# If the a Finesse command hasn't been implemented as a pykat object yet +# the command will be added as an "extra line", these can still be removed +# and added to using the kat.removeLine and kat.addLine commands. +# +# Daniel Brown 17/12/14 + +import pykat +from pykat.components import * + +kat = pykat.finesse.kat() + +kat.parseCommands(""" +m m1 0.9 0.1 0 n1 n2 +s s1 1 n2 n3 +m m2 0.9 0.1 0 n3 n4 +""") + +print "Before..." +print "".join(kat.generateKatScript()) + +kat.s1.remove() + +print "After remove..." +print "".join(kat.generateKatScript()) + +# Adding in with commands +kat.parseCommands(""" +s s2 1 n2 n2a +m m3 0.9 0.1 0 n2a n3a +s s3 1 n3a n3 +""") + +print "After add with commands..." +print "".join(kat.generateKatScript()) + +kat.s2.remove() +kat.s3.remove() +kat.m3.remove() + +# Adding in with objects +kat.add(space("s2", "n2", "n2a", L=1)) +kat.add(space("s3", "n3", "n3a", L=1)) +kat.add(mirror("m3", "n2a", "n3a", R=0.9, T=0.1, phi=0)) + +print "After add with objects..." +print "".join(kat.generateKatScript()) \ No newline at end of file