用于创建/导入/合并gdsii文件的python模块。

gdsp的Python项目详细描述


-35;gdspy自述文件

< >[Boost软件许可证-1.0版](https://img.shields.io/github/license/heitzmann/gdspy.svg)(http://www.boost.org/license in 1-u 0.txt) 啊![文档状态](https://readthedocs.org/projects/gdspy/badge/?版本=稳定](https://gdspy.readthedocs.io/en/stable/?徽章=稳定) 啊![特拉维斯-CI状态](https://travis-ci.org/heitzmann/gdspy.svg?branch=master)(https://travis-ci.org/heitzmann/gdspy) 啊![AppVeyor状态](https://ci.appveyor.com/api/projects/status/pr49a6bhxvbqwocy?svg=true)(https://ci.appveyor.com/project/heitzmann/gdspy) 啊![下载](https://github.com/heitzmann/gdspy/total.svg)(https://github.com/heitzmann/gdspy/releases" rel="nofollow">https://img.shields.io/github/downloads/heitzmann/gdspy/total.svg)(https://github.com/heitzmann/gdspy/releases)

gdspy是一个python模块,用于创建/导入/合并gdsii流文件。 它包括用于创建复杂CAD布局的关键库:

  • 基于裁剪算法的多边形布尔运算(与或非异或)
  • 多边形偏移(多边形的向内和向外重缩放)
  • 大型阵列集的高效点多边形解

GDSpy还包括一个简单的布局查看器。

GDSPY的典型应用领域包括电子芯片设计、平面光波电路设计和机械工程。

'35;'35;安装

'35;'35;'35;依赖项:

  • [python](http://www.python.org/)(使用版本2.7、3.5、3.6和3.7进行测试)
  • [numpy](http://numpy.scipy.org/
  • [python-future](http://python-future.org/)(仅适用于python 2)
  • C编译器(仅当从源代码生成时才需要)
  • Tkinter(可选:需要用于布局查看器图形用户界面)
  • [斯芬克斯](http://sphinx-doc.org/" rel="nofollow">http://sphinx-doc.org/)(可选:构建文档)

'35;'35;'35;Linux/OS X

选项1:使用[PIP](https://docs.python.org/3/installing/):

<> pip安装gdspy

选项2:从[github]下载源代码(https://github.com/heitzmann/gdspy" rel="nofollow">https://github.com/heitzmann/gdspy)并使用以下命令编译/安装:

<> python setup.py安装

'35;'35;'35;窗口

首选选项是从[此处]安装预编译的二进制文件(https://github.com/heitzmann/gdspy/releases" rel="nofollow">https://github.com/heitzmann/gdspy/releases)。

也可以通过pip进行安装,并按照上述方式从源代码进行构建,但编译C扩展模块需要适当的[构建环境](https://wiki.python.org/moin/windowscompilers)。

'35;'35;文档

完整的文档[在此处]提供(http://gdspy.readthedocs.io/" rel="nofollow">http://gdspy.readthedocs.io/)。

源文件可以在docs目录中找到。

'35;'35;支持

通过[通过PayPal捐款]帮助支持GDSpy开发(https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&;hosted_button_id=jd2eue2wppbqq

##变更历史

###版本1.4(2019年5月18日) *修订了[文档](http://gdspy.readthedocs.io/)。 *新的flexpath和robustpath类:使用原始gdsii路径规范时更有效的路径生成。 *新的曲线类:类似svg的多边形创建。 *增加了polygoset.mirror(感谢daan waardenburg的贡献)。 *添加了path.bezier以基于bézier曲线创建路径。 *添加了path.smooth以基于平滑插值曲线创建路径。 *添加了获取GDS单元以在不加载的情况下获取GDSII文件中使用的单元。 *添加了get_binary_cells以从文件中仅加载单元格的二进制gdsii表示。 *添加参数tolerancetoroundpath.arcpath.turnandpath.parametric以自动控制最终多边形中的点数。 *在gdsii中添加了参数binary\u cells来编写函数以支持get\u binary\u cells。 *添加了参数rename_templatetogdslibrary.read_gds以实现灵活的单元格重命名(感谢@yoshi74ls181的贡献)。 *更改slice的返回值,以避免创建空的polygonite。 *在gdsii编写函数时添加了参数timestamp。 *改进了round以支持创建椭圆。 *添加了对每个多边形的无限点数的支持。 *在读取gdsii文件时添加了对bgnextn和endextn的支持。 *多边形创建警告现在由多边形警告控制。 *不正确的锚定将引发错误,而不是发出警告。 *在每个顶点上添加了对polygonite.fillet中半径的正确支持。 *在gdsii文件生成(感谢@fbeutel的贡献)和几何图形创建方面的速度改进。 *使用[matplotlib]的字体渲染示例(https://matplotlib.org/" rel="nofollow">https://matplotlib.org/)(感谢hernan pastoriza的贡献)。 *扩展测试套件。

###版本1.3.2(2019年3月14日) *在Mac OS X Mojave上构建的小补丁。

###版本1.3.1(2018年6月29日) *polygonite成为所有多边形的基类,特别是多边形矩形。 *添加了单元格、删除多边形和单元格、删除标签等功能,允许在每个元素的图层上过滤单元格内容。 *增加了效用法。 *添加了polygoset.get_bounding_box实用方法。 *添加了参数timestampcell.to_gdsgdslibrary.write_gdsgdswriter。 *将unitprecision参数添加到gdslibrary初始化中,并从其write-gds方法中删除。 *更改了gdslibrary中参数unit的含义。请阅读gds。 *改进了切片以避免一次在多个位置切片时出现错误。 *改进了polygenset.fracture以减少函数调用的数量。 *删除了用于在cellreferencecellaray中放大和旋转的不正确绝对标志。 *小错误修复。 *文档修复。 *已删除不推荐使用的类和函数。

###版本1.2.1(2017年12月5日) *gdslibrary可以直接从gdsii文件创建 *将返回值添加到gdslibrary.read\u gds *gdslibrary.add的固定返回值

###版本1.2(2017年10月21日) *添加了新的函数。 *将precision参数添加到\u choppolygon.fracturepolygon.filletpolygonite.fracturepolygonite.filletslice。 *在展平操作中包括标签(将获取标签添加到单元格单元格引用单元格引用)。 *修复了引用副本的边界框缓存中的错误。 *修正了\u chop中影响polygon.fracturepolygonite.fractureslice的错误。 *其他小错误修复。

###版本1.1.2(2017年3月19日) *将clipper库更新到6.4.2以修复上次更新中引入的错误。 *许可证更改以提高软件许可证v1.0。

###版本1.1.1(2017年1月27日) *修复安装问题的修补程序(zip中缺少自述文件)。

###版本1.1(2017年1月20日) *引入gdslibrary,允许用户同时使用多个库。 *反对使用gdsimport,赞成使用gdslibrary。 *将gds打印重命名为编写gds,并将gds print重命名为gdswriter。 *开发更改为python 3(python 2通过[python future]支持(http://python-future.org/" rel="nofollow">http://python future.org/))。 *增加了光子学的例子。 *添加了测试套件。 *剪辑器库更新到最新版本。 *修正了函数内部有时颠倒输出顺序的问题。 *修正了快速布尔运算中的舍入误差。 *固定参数deep\u copy单元格中反转。copy。 *Numpy引入的错误修复(感谢Adam McCaughan的贡献)。

###版本1.0(2016年9月11日) *改为"新风格"类(感谢Adam McCaughan的贡献)。 *为polygon.fillet添加了每点半径规范(感谢adam mccaughan的贡献)。 *在函数中添加了执行多边形中的点测试(感谢@okianus的贡献)。 *已从distutils移动到setuptools以获得更好的Windows支持。

###版本0.9(2016年7月17日) *添加了在应用偏移之前连接多边形的选项。 *向几何实体添加了一个translate方法(感谢john bell的提交)。 *错误修复。

###版本0.8.1(2016年5月6日) *新的基于[clipper]的快速布尔函数(http://www.angusj.com/delphi/clipper.php" rel="nofollow">http://www.angusj.com/delphi/clipper.php)库,比旧的布尔函数有更好的性能。 *将偏移量签名更改为也使用[clipper](http://www.angusj.com/delphi/clipper.php)库(此更改打破了与以前版本的兼容性)。 *从GDSII文件导入某些标签时出错的错误修复。

###版本0.7.1(2015年6月26日) *重新定位到Github。 *更改了源结构和文档。

###版本0.7(2015年6月12日) *新功能:偏移量函数。 *新的用于增量gdsii创建的类(感谢jack sankey的贡献)。

###版本0.6(2014年3月31日) *roundpath.arcpath.turn更改为0.01绘图单位分辨率的默认点数。 *path.parametric对于非线性渐变,接受可调用的final_distancefinal_width。 *添加了参数endstopolypath。 *在gdsimport中添加了对路径类型的(有限)支持。 *当路径曲线的宽度大于其半径(自交多边形)的两倍时,将发出警告。 *向layoutviewer中的模式添加了一个随机偏移量。 *布局查看器显示引用单元格的单元格标签。 *获取多边形如果深度,则返回(引用的)单元格名称<;1和按规范引用是正确的。 *引用空单元格时,在"获取边界"框中修复错误。 *修正了gdsimport中的错误,提高了边界框计算的速度(感谢gene hilton提供的补丁)。

###版本0.5(2013年10月30日)-与以前的版本不兼容 *主要的layoutviewer改进(不向后兼容)。 *层参数已在所有函数的参数列表中重新定位(不向后兼容)。 *将参数"按层"重命名为"按规范"重命名(不向后兼容)。 *对于顶点数超过GDSII格式的多边形,将引发错误。 *已删除默认数据类型的全局状态变量。 *将获取数据类型添加到单元格。 *将参数single_datatype添加到cell.flatten。 *删除了gds-u映像并删除了可选的pil依赖项。

###版本0.4.1(2013年6月5日) *添加参数axis_offsetpath.segment允许创建非对称渐变。 *添加了缺少的参数x_reflectionlabel。 *创建了全局状态变量以覆盖默认数据类型。 *在Cellarray.get_bounding_box中修复错误(感谢George McLean的修复)

###版本0.4(2012年10月25日) *单元格。获取"边界"框返回空单元格的"无"。 *为边界框添加了缓存,以加快计算速度,尤其是对引用。 *添加了对带有label类的文本元素的支持。 *改善了警告的发布。 *向boolean添加了一个公差参数。 *为类添加了更好的打印描述。 *布尔函数中包含多个孔的结果的错误修复。

###版本0.3.1(2012年5月24日) *多发性骨折方法中的错误修复

###版本0.3A(2012年5月3日) *修复polygonpolygonite的断开方法中的错误

###版本0.3(2012年4月25日) *支持Python3.2和2.7 *通过缓存对布尔函数的进一步改进。 *添加了方法get_bounding_boxget_layerscell。 *添加方法顶级gdsimport。 *添加了对导入gdsii路径元素的支持。 *添加了一个参数来控制导入函数的详细程度。 *层-1(引用单元格)默认发送到层列表的底部 *layoutviewer中图层列表的文本和背景现在反映了轮廓和画布背景的颜色。 *更改了layoutviewer中的默认背景色 *感谢吉恩·希尔顿的贡献!

###版本0.2.9(2011年12月14日) *属性"cell.cell_list"更改为"cell.cell_dict"。 *在boolean中更改了操作的签名。 *传递到layoutviewer的单元格的顺序现在在gui中得到尊重。 *完成布尔函数作为c扩展的重新实现,以提高性能。 *删除了布尔型中的精度参数。将其固定在1e-13,用于合并闭合点,否则使用机器精度。 *gds_image现在接受单元格名称作为输入。 *添加了可选参数深度获取多边形 *添加了用于转换导入的GDSII单元格中的层和数据类型的选项。 *参数exclude\u layerslayoutviewer更改为hidden\u layers并相应地更改行为。 *按住shift键并右键单击layoutviewer的层列表,隐藏/取消隐藏所有其他层。 *用于在LayoutViewer中放大和缩小的新按钮。 *低于可配置深度的引用单元格现在由layoutviewer中的边框表示。

###版本0.2.8(2011年6月21日) *GDSII文件导入 *GDSII输出自动包含所需的引用单元格。 *gds_print也接受文件名作为输入。 *默认情况下,轮廓在布局查看器中可见。 *在layoutviewer中添加了background color选项。 *在"层"列表上单击鼠标右键,可以隐藏/取消隐藏layoutviewer中的目标层。 *cell.cell_list现在是按名称索引的字典,而不是按列表索引。 *添加了从保存在cell.cell\u list中的全局单元格列表中排除已创建单元格的选项。 *cellreferencecellaray接受单元格名称作为输入。 *子模块失去了自己的版本。

###版本0.2.7(2011年4月2日) *修正了布尔值中的错误,该错误影响顶点数大于最大值的多边形断开的方式。 *gds_image接受图像背景的额外颜色参数。 *从layoutviewer获取的屏幕截图与查看器具有相同的背景色。 *函数booleanslice现在也接受cellreferencecellaray作为输入。 *将断开方法添加到多边形多边形起始中,以自动将多边形分割为具有预定义最大顶点数的部分。 *将方法fillet添加到多边形中,并将polygonite添加到多边形的圆角中。

###版本0.2.6(2011年2月28日) *保存gdsii文件时,如果单元格名称重复,则会引发valueerror。 *从layoutviewer保存截图。 *gds_image接受单元格,而不是列表。 *GDS图像支持的轮廓。 *layoutviewer存储所有访问层的边界框信息,以节省渲染时间。

###版本0.2.5(2010年12月10日) *空单元格不再打断layoutviewer。 *删除了被layoutviewer取代的gds_view函数以及对matplotlib的所有依赖项。 *修正了boolean中影响具有一系列共线顶点的多边形的错误。 *添加了一个函数来沿平行于轴的直线分割多边形。

###版本0.2.4(2010年9月4日) *在layoutviewer中添加了扩展数据块的快捷方式:homea键。 *polygoset是round的新基类,这可能会带来一些与旧脚本不兼容的问题。 *圆形元素、多路径l1path路径弧旋转参数化部分现在自动断开为由最大数量的点定义的片段。 *布尔值中max_points的默认值更改为199。 *移除标志以禁用关于顶点超过199个的多边形的警告。仅对polygonpolygonite显示警告。 *修正了一个妨碍并行参数化路径相互改变距离的错误。

###版本0.2.3(2010年8月9日) *添加了polypath类以轻松创建具有锐角的路径。 *允许none作为layoutviewer的colors参数中的项使层不可见。 *将颜色大纲模式添加到layoutviewer(按shift键更改大纲颜色) *增加了布局查看器画布的滚动区域 *添加了快速滚动模式:控制+拖动第二个鼠标按钮 *创建了一个新的示例脚本

###版本0.2.2(2010年7月29日) *将layoutviewer中的光标更改为标准箭头。 *修正了windows版本的layoutviewer(鼠标滚轮和标尺工具)的错误。

###版本0.2.1(2010年7月29日) *错误修复:gds_image显示错误消息而不是崩溃当未找到pil时。 *添加了类layoutviewer,它使用tkinter(包含在所有python发行版中)来显示gdsii布局,并具有比gds视图更好的控件。这消除了查看器功能的matplotlib要求。 *新的图层颜色将图层0扩展到63。

###0.2.0版(2010年7月19日) *修正了路径的turn方法上的错误。 *修正了boolean函数上的一个错误,该错误在不使用polygonpolygonite作为输入对象时会产生错误。 *添加了方法获取多边形单元格单元格引用单元格线。 *向单元格添加了复制方法。 *在单元格中添加扁平化方法以删除对其他单元格的引用(或数组引用)。 *断开布尔型基于顶点数输出多边形以遵守199 gdsii限制。

###版本0.1.9(2010年6月4日) *添加了曼哈顿几何(L1范数)路径的类。

###版本0.1.8(2010年5月10日) *从gds视图中删除了参数fill,并添加了一个更灵活的参数:style。 *修正了boolean运算符上影响带孔多边形的舍入错误。 *添加了一个旋转方法来polygoset。 *当多发性起病超过199点时添加警告 *添加了一个标志以禁用关于点超过199的多边形的警告。 *将turn方法添加到path中,这比arc更易于使用。 *向path添加了方向属性,以保留段和turn方法使用的信息。

###版本0.1.7(2010年4月12日) *新的可视化选项:将几何图形直接保存到图像文件中(使用较低的内存)。 *新增功能:多边形上的布尔操作(多边形剪裁)。 *所有的类都适合于布尔操作。 *类text的初始值设定项中的属性大小不再具有默认值。 *函数gds视图中的参数format的名称已更改为fill(以避免与内置函数format混淆)。

###版本0.1.6(2009年12月15日) *示例脚本现在包含注释并创建一个更易于理解的gdsii示例。 *改进的浮点到整数舍入,它修复了gdsii文件中精度的最后一位的单位错误。 *修正了字符5的字体。 *添加了一个标志以避免自动调用matplotlib.pyplot.show()。 *在gds视图中,如果层号大于定义的格式数,则会循环格式。

###版本0.1.5a(2009年11月15日) *类文本正确解释nt字符。 *更好的文档格式,使用Sphinx引擎和Numpy格式。

###版本0.1.4(2009年10月5日) *class文本用不同的字体重新编写,没有重叠,大小正确。

###版本0.1.3A(2009年7月29日) *将函数固定为类矩形的

###0.1.3版(2009年7月27日) *将数据类型字段添加到GDSII结构的所有元素。

###0.1.2版(2009年7月11日) *添加了gds_view函数,以使用matplotlib模块显示gdsii结构。 *修正了Cellarray类中的一个旋转错误。 *在GNU通用公共许可证(GPL)下发布的模块

###版本0.1.1(2009年5月12日) *将属性cell_list添加到类单元格以保存创建的所有单元格的列表。 *在函数gds\u print中设置默认参数cells=cell.cell\u list。 *向Calcula添加成员t每种元素类型的面积。 *添加成员以计算单元格的总面积或逐层计算面积。 *包括以用户定义的单位创建对象的可能性,而不仅仅是纳米。

###0.1.0版(2009年5月1日) *初始版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Synth xml中的java设置JLabel图标   java全屏Flash应用程序测试需要外部戳   评测配置文件Java CPU负载   java如何显示布尔值?   java共享库与微服务?   使用bash脚本重定向java输出(liquibase)   java如何进行结构化日志记录?   属性JSF2的java绑定属性<h:dataTable>   java Android Restlet包装崩溃   java如果在一个事务中我们只在一个数据源上写,是否可以避免2PC或手动处理提交?(J2CA0030E)   java从哪里获得openCV的jar?   java正在尝试更新SQL数据库条目,但收到SQL语法错误。我怎么知道这里出了什么问题?   java如何在Firebase数据库值中添加空格   为什么在java中读取datainputstream时会出现EOF异常?   java STDERR将每个stacktrace行作为错误日志条目写入WildFly服务器。日志   java通过socket编写一个没有'ImageIO'的映像   java为什么JBoss会在出现错误时破坏连接池?   javafxjava如何查找当月的第一次登录   java这个Android项目给了我一个崩溃的机会,我正试图让这个项目有一个来自编辑文本的数字,并在文本视图中得到它两次