2024年HarmonyOS鸿蒙最全Python教程-SchemDraw绘制电路图_python schemdraw,2024年最新手撕面包

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

d += elm.Capacitor().down().label(‘0.1μF’, loc=‘bottom’)
d += elm.Line().left()
d += elm.Ground()
d += elm.SourceV().up().label(‘10V’)
d.draw()

成图效果:

在这里插入图片描述

详细解释:

  • d = schemdraw.Drawing(): 创建一个空的电路图对象 d
  • d += elm.Resistor().label('100KΩ'): 向电路图中添加一个电阻元件,电阻值为100千欧姆,并标记为’100KΩ’。
  • d += elm.Capacitor().down().label('0.1μF', loc='bottom'): 向电路图中添加一个电容元件,向下放置,并标记为’0.1μF’,位置标签在底部。
  • d += elm.Line().left(): 向左添加一条连接线。
  • d += elm.Ground(): 向电路图中添加地线元件。
  • d += elm.SourceV().up().label('10V'): 向电路图中添加一个向上的电压源元件,电压值为10伏特,并标记为’10V’。
  • d.draw(): 展示电路图。

这段代码绘制了一个简单的电路图,包含一个100千欧姆的电阻、一个0.1微法的电容、一条连接线、一个地线和一个10伏特的电压源。


2、简单示例

下面是一个简单的SchemDraw代码示例,创建一个包含电池、电阻和LED的基础电路图:

import schemdraw
import schemdraw.elements as e

创建电路图对象

d = schemdraw.Drawing()

添加电池、电阻和LED元件

d += e.Battery()
d += e.Resistor()
d += e.LED()

添加连接线

d.add(e.Line(“left”, l=d.unit/2))
d.add(e.Line(“down”, l=d.unit/2))
d.add(e.Line(“right”, l=d.unit/2))

保存电路图为PNG图片

d.save(“simple_circuit.png”)

展示电路图

d.draw()

成图效果:

在这里插入图片描述

详细解释:

  • d += e.Battery(): 向电路图中添加电池元件。
  • d += e.Resistor(): 向电路图中添加电阻元件。
  • d += e.LED(): 向电路图中添加LED元件。
  • d.add(e.Line("left", l=d.unit/2)): 添加一条向左的连接线,长度为一个电路图单元格的一半。
  • d.add(e.Line("down", l=d.unit/2)): 添加一条向下的连接线,长度为一个电路图单元格的一半。
  • d.add(e.Line("right", l=d.unit/2)): 添加一条向右的连接线,长度为一个电路图单元格的一半。
  • d.save("simple_circuit.png"): 将电路图保存为PNG图片。
  • d.draw(): 在绘制的同时展示电路图。

3、稍微复杂的示例

SchemDraw支持多种元件,包括电源、电阻、电容、电感、传感器等。你可以组合这些元件,创建更复杂的电路图。以下是一个稍复杂一点的例子,包含电源、电阻、电容和传感器:

import schemdraw
import schemdraw.elements as elm

创建一个电路图对象

with schemdraw.Drawing() as d:
d.config(unit=2) # 设置单位长度为2,使元件的引线比正常长度短

开始一个新的堆栈,用于存储并重用元件

d.push()

添加一个向下的20欧姆电阻,并标记为20Ω

R1 = elm.Resistor().down().label(‘20Ω’)

添加一个向下的120V电源,并标记为120V,反向

V1 = elm.SourceV().down().reverse().label(‘120V’)

向右移动3个单位,并添加一个连接点

elm.Line().right(3).dot()

弹出最近添加的元件,并继续在该位置上绘制电路

d.pop()

继续在弹出后的位置向右移动3个单位,并添加一个连接点

elm.Line().right(3).dot()

添加一个向下的60V电源,并标记为60V,反向

elm.SourceV().down().reverse().label(‘60V’)

添加一个5欧姆电阻,并标记为5Ω,并添加一个连接点

elm.Resistor().label(‘5Ω’).dot()

向右移动3个单位,并添加一个连接点

elm.Line().right(3).dot()

添加一个向上的36A电流源,并标记为36A

elm.SourceI().up().label(‘36A’)

添加一个10欧姆电阻,并标记为10Ω,并添加一个连接点

elm.Resistor().label(‘10Ω’).dot()

向左移动3个单位,并保持当前位置,不添加连接点

elm.Line().left(3).hold()

向右移动3个单位,并添加一个连接点

elm.Line().right(3).dot()

添加一个连接到V1末端的6欧姆电阻,并标记为6Ω,并添加一个连接点

R6 = elm.Resistor().toy(V1.end).label(‘6Ω’).dot()

向左移动3个单位,并保持当前位置,不添加连接点

elm.Line().left(3).hold()

向右移动3个单位,并在R6的起始位置添加一个1.6欧姆的电阻,并标记为1.6Ω,并打开连接点,右侧标记为’a’

elm.Resistor().right().at(R6.start).label(‘1.6Ω’).dot(open=True).label(‘a’, ‘right’)

向右移动到R6的末端,并打开连接点,右侧标记为’b’

elm.Line().right().at(R6.end).dot(open=True).label(‘b’, ‘right’)

展示电路图

d.draw()

成图效果:

在这里插入图片描述

详细解释:

  • d.config(unit=2): 设置 schemdraw 电路图的单位长度为2,以使元件的引线比正常长度短。
  • d.push(): 开始一个新的堆栈,用于存储并重用元件。
  • R1 = elm.Resistor().down().label('20Ω'): 向下添加一个20欧姆电阻,并标记为20Ω。
  • V1 = elm.SourceV().down().reverse().label('120V'): 向下添加一个120V电源,并标记为120V,反向。
  • elm.Line().right(3).dot(): 向右移动3个单位并添加连接点。
  • d.pop(): 弹出最近添加的元件,并继续在该位置上绘制电路。
  • elm.Line().right(3).dot(): 继续在弹出后的位置向右移动3个单位,并添加一个连接点。
  • elm.SourceV().down().reverse().label('60V'): 向下添加一个60V电源,并标记为60V,反向。
  • elm.Resistor().label('5Ω').dot(): 添加一个5欧姆电阻,并标记为5Ω,并添加一个连接点。
  • elm.Line().right(3).dot(): 向右移动3个单位并添加连接点。
  • elm.SourceI().up().label('36A'): 向上添加一个36A电流源,并标记为36A。
  • elm.Resistor().label('10Ω').dot(): 添加一个10欧姆电阻,并标记为10Ω,并添加一个连接点。
  • elm.Line().left(3).hold(): 向左移动3个单位,并保持当前位置,不添加连接点。
  • elm.Line().right(3).dot(): 向右移动3个单位并添加连接点。
  • R6 = elm.Resistor().toy(V1.end).label('6Ω').dot(): 添加一个连接到V1末端的6欧姆电阻,并标记为6Ω,并添加一个连接点。
  • elm.Line().left(3).hold(): 向左移动3个单位,并保持当前位置,不添加连接点。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

技术提升。**

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值