python 电路绘制库 schemdraw
来源:互联网 发布:soap rest 知乎 编辑:程序博客网 时间:2024/06/05 21:18
引子
由于最近在学习ardunio的使用,其中牵涉到绘制一些简单的电路图,又不愿意使用一些复杂的软件进行绘制,调查中发现python中的schemdraw库就能很好地完成这个任务,遂学习使用之。
schemdraw的安装
pip install schemdraw搞定,不赘言
正式使用
参考网站及示例
附上相关的网站:
https://pypi.python.org/pypi/SchemDraw/
https://cdelker.bitbucket.io/SchemDraw/SchemDraw.html
https://www.zhihu.com/question/23632588 (知乎上对这个库及同类方式的介绍)
schemdraw官方文档中有这么个例子,和我们的用法比较类似遂拆解学习之。
d = schem.Drawing()left = {'cnt':3, 'labels':['TRG','THR','DIS'], 'plabels':['2','6','7'], 'loc':[.2,.35,.75], 'lblsize':12, }right = {'cnt':2, 'labels':['CTL','OUT'], 'plabels':['5','3'], 'lblsize':12, }top = {'cnt':2, 'labels':['RST','Vcc'], 'plabels':['4','8'], 'lblsize':12, }bot = {'cnt':1, 'labels':['GND'], 'plabels':['1'], 'lblsize':12, }IC555 = e.blackbox(d.unit*1.5, d.unit*2.25, linputs=left, rinputs=right, tinputs=top, binputs=bot, leadlen=1, mainlabel='555')T = d.add(IC555)BOT = d.add(e.GND, xy=T.GND) # Note: Anchors named same as pin labelsd.add(e.DOT)d.add(e.RES, endpts=[T.DIS, T.THR], label='Rb')d.add(e.RES, d='up', xy=T.DIS, label='Ra', rgtlabel='+Vcc')d.add(e.LINE, endpts=[T.THR, T.TRG])d.add(e.CAP, xy=T.TRG, d='down', toy=BOT.start, label='C', l=d.unit/2)d.add(e.LINE, d='right', tox=BOT.start)d.add(e.CAP, d='down', xy=T.CTL, toy=BOT.start, botlabel='.01$\mu$F')d.add(e.DOT)d.add(e.DOT, xy=T.DIS)d.add(e.DOT, xy=T.THR)d.add(e.DOT, xy=T.TRG)d.add(e.LINE, endpts=[T.RST,T.Vcc])d.add(e.DOT)d.add(e.LINE, d='up', l=d.unit/4, rgtlabel='+Vcc')d.add(e.RES, xy=T.OUT, d='right', label='330')d.add(e.LED, flip=True, d='down', toy=BOT.start)d.add(e.LINE, d='left', tox=BOT.start)d.draw()
上效果图:
根据示例自己动手绘制
先绘制arduino主板
import SchemDraw as schemimport SchemDraw.elements as ed = schem.Drawing()left = {'cnt':10, 'labels':['RESET','RESET2','AREF','N/C','A0','A1','A2','A3','A4/SDA','A5/SCL'], 'plabels':['2','6','7'], 'lblsize':12, }right = {'cnt':17, 'labels':['TX/D0','RX/D1','D2','PWM D3','D4','PWM D5','PWM D6','D7','D8','PWM D9','SS/PWM D10','MOSI/PWM D11','MISO/D12','SCK/D13','ICSP2 MISO','ICSP2 SCK','ICSP MISO'], 'plabels':['5','3'], 'lblsize':12, }top = {'cnt':3, 'labels':['3v3','5v','VIN'], 'plabels':['4','8'], 'lblsize':12, }bot = {'cnt':1, 'labels':['GND'], 'lblsize':12, }IC555 = e.blackbox(d.unit*2.5, d.unit*4.5, linputs=left, rinputs=right, tinputs=top, binputs=bot, leadlen=1, mainlabel='Arduino\nUno\n(Rev3)')T = d.add(IC555)d.draw()
效果图:
注意点
- 元件的端点一般采用原件label进行查找,但是一些特殊字符schemdraw会将其略去,此外以数字开头的端点不能使用直接[原件.label名]获取(python语法不允许,必须采用getattr,如:getattr(T, ‘5v’))。
此外元件端点也可以通过调试器来查看。 - 绘制一般比较简单不指定连接的端点则采用上一次绘制的终点绘制:
一般通过e.LINE,e.DOT绘制线和点(d=’up’,l=d.unit*0.3 控制方向和长度,tox、toy控制到达某个水平/竖直位置) - 整体来说还比较简单,需要主要整体思路是画出单个元器件,然后使用线进行连接(之前本人绘制电位器时认为可以直接连接电位器的中间端到另一个端点,走了比较多的弯路)
最后附上绘制的一个简单的电路图,具体代码可以查看:https://github.com/skyztt/python-SchemDraw-study.git
阅读全文
0 0
- python 电路绘制库 schemdraw
- 绘制电路原理图的注意事项
- 差分放大电路的版图绘制
- Python图表绘制:matplotlib绘图库入门
- Python图表绘制:matplotlib绘图库入门
- Python图表绘制:matplotlib绘图库入门
- Python图表绘制:matplotlib绘图库入门
- Python图表绘制:matplotlib绘图库入门
- Python图表绘制:matplotlib绘图库入门
- Python图表绘制:matplotlib绘图库入门
- Python图表绘制:matplotlib绘图库入门
- Python图表绘制:matplotlib绘图库入门
- Python图表绘制:matplotlib绘图库入门
- Python图表绘制:matplotlib绘图库入门
- 使用Python绘制热图的库
- Python图表绘制:matplotlib绘图库入门
- Python图表绘制:matplotlib绘图库入门
- Python:利用turtle库绘制iPhone4草图
- 44. Struts2_表单的重复提交问题
- Eclipse实用快捷键个人总结
- Makefile中的死循环问题--学习李云《驾驭Makefile》中的疑惑解决
- jsp所需基础
- IntersectVisitor类
- python 电路绘制库 schemdraw
- day23-linux
- Android WiFi--系统架构
- codevs 1225_八数码难题_bfs+hash
- hive安装问题
- POJ 1321 棋盘问题
- day24-nginx
- python中的DocStrings
- 《Ray Tracing in One Weekend》——Chapter 3: Rays, a simple camera, and background