Exporting a GDSII/OASIS Layout
Any component can be exported directly to a GDSII or OASIS file using the write_gds and write_oas methods. Here’s a simple example using a parametric component.
We first configure the default technology:
import photonforge as pf
pf.config.default_technology = pf.basic_technology()Now we create a simple S bend and export it to both a GDSII and an OASIS layout files:
s_bend = pf.parametric.s_bend(port_spec="Strip", length=10.0, offset=3.0, name="s_bend")s_bend.write_gds()s_bend.write_oas()If we want to store several components in a single layout file, we can also use the write_layout function. Note that component dependencies are automatically included in either case, so there’s no need to list those separately.
In this case, we store both the previous S bend and a waveguide transition into “mixed.gds”:
transition = pf.parametric.transition(port_spec1="Strip", port_spec2="Rib", length=10, name="transition")
pf.write_layout("mixed.gds", s_bend, transition)If we import layout and check its top-level components, we’ll find both in there:
components = pf.load_layout("mixed.gds")
top_level = pf.find_top_level(*components.values())
print("Top level: " + ", ".join(c.name for c in top_level))Top level: transition, s_bend