粉丝8997获赞6.1万


我们在左上角菜单栏呢,点击设置,然后点击系统,点击通用,然后我们看到这个界面呢,就是我们关于通用设置相关内容,有关于系统原理图, pcb 面板以及快捷键相关的设置。好,那我们先从系统的常规选项来看, 包袱管理这里选择简易模式。双击工程呢,选择是新窗口打开工程工程库。重名呢,选择允许重名。画布缩放使用滚轮,然后鼠标中间拖动是移动画布面板自动收起是左侧面板。 放置更新原件呢,不显示更新弹窗。那长库这个选项呢,是你可以自己在长库中添加一些自己的器械,比如说我这里添加了一个 m 幺九九,不过我们第一次使用呢,这里也不用管。然后是原理图的通用选项,原理图的单位呢,我们要选择英尺, 网格类型呢选择使用网格,十字光标选择大,这样看的会比较清楚,镜框显示的话,我们要跟随缩放变化。默认网格尺寸呢,这里可以选择默认,就是原理图是零点零五。 out, 吸附呢是零点零一。 alt 吸附的意思呢,就是说如果我们觉得这个网格太大了,我们在放置元气键的时候呢,就可以按住 alt 键,按住 alt 键之后呢它的网格就会自动缩小,然后符号的话也是零点零五和零点零一。指示线的话,我们选择单选器键和选中属性时显示 复制剪贴呢,我们不选择参考点。默认网格名呢就是导线 id, 单击导线时选中单段,再次点击呢,选中整段拨动网格名是修改网格名 移动符号。导线跟随方式选择是默认跟随,这样子我们在移动符号的时候呢,导线也会跟着我们的符号移动,那用起来会比较丝滑。 旋转符号的导线跟随方式是跟随,其他呢,我们可以勾选这几项,其中鼠标悬浮导线高亮整个网络,这个可以不选, 然后每页原理图放置着数量,这个只是一个参考数量,我们可以随便写一个,比如说写个一百五都可以。那主机这里呢,就是我们原理图的一个配色,那这里呢,我们选择图源风格是加一双 eda, 不 过呢,如果你之前用过一些别的软件,比如 eda 的 话,你也可以选 eda, 那 我这里肯定选的是加一双 eda 好,然后是 pcb 的 通用选项,网格类型的话,这里选择是网点加速,网格显无,然后识字光标选大,显示效果的选择,速度优先, 自然隐形呢,我们就用这个 y f g l 新建 p c b, 默认单位呢是 m, 新建封装默认单位呢是毫米,因为我们在画封装的时候呢,需要对照数据手册,数据手册上给的一般是毫米为单位,所以我们这里要选择毫米。 alt 三格尺寸呢就默认就可以了, 每次旋转角度是九十。单机导线呢是选中整段,然后再次点击选择单段,然后复制剪切呢,在 pcb 中是需要选择参考点的,这样子我们在放置位置时候可以更加清晰。 位置时选定导线段呢是确定至当前段结束。图源绘制呢,我们是右键单机结束, ctrl 加右键显示菜单,右键时添加旋转对象呢是对选中整体旋转, 然后之后呢就按默认就可以了。布线这个里面呢我们不要选择先优先放盲外孔,因为盲外孔这个工艺比较贵,我们一般不会放盲外孔,一般都是过孔, 然后部件接入自动删除,我们也不需要多动,移动这个选项呢全部不要勾选。移动封装导线跟随方式呢,就默认跟随就可以了,移动过孔呢也是默认跟随。在其他选项呢,我们要全部勾选。深层制造文件前呢也要检查 d r c, 这样可以确保一些错误不会出现 在主席这一栏呢,主要就是 pcb 上的一些配色,那我们这里呢就选择加一双 e d a 就 可以了。被激活层透明度呢,就是说我如果我当前这个层没有被激活,它的透明度呢就是后面这百分比,这里呢我一般选择的是百分之六十,然后画不涂圆的颜色呢,我们就不要改, 然后常用网格的山格尺寸呢不用改,常用线宽不用改,然后常用孔径不用改,几乎的话呢,除了封装远景不勾选之外呢,其他全不勾选, 然后是面板和面板库,那这些全部都选择默认就可以了。常用字体画,如果大家有一些喜欢字体的话,可以点击左侧加号进行添加,那我这里先不管它,然后是图纸,图纸的话这里直接默认就可以了,属性也是默认就可以 啊。这里着重说一下快捷键,快捷键在我们画 pcb 的 时候是用到非常多的,使用快捷键呢可以加速我们的一个设计速度, 那这里呢我们可以直接点击这个配置进行快捷设置,我这里呢选择的是加一创 eda 的 标准版,因为我在用加一创 eda 专业版,之前呢,我用的是立创 eda 标准版,所以呢我对标准版的快捷键非常的熟悉, 那这里呢,我推荐如果大家之前没有用过别的软件的话,都用立创 e d e 标准版的快捷键,那这个版本的快捷键呢,我自己使用起来感觉是非常方便的啊。然后是顶部工具栏,顶部工具栏呢就是我们绘图界面上面一栏呢,有一些工具可以给我们使用, 那原理图和 pcb 它的顶部工具栏的内容是不一样的,那顶部工具栏这些功能呢,我们需要对它自己进行一个配置,那根据我个人的一个使用习惯呢,我会把以下这些项勾选,大家可以看一下, 那这里呢也可以根据你自己的一个使用习惯来进行一个勾选。 不过呢,我这里建议大家和对齐相关的选项是要全部勾选的,因为我们在对齐使用呢,用快捷键的话往往会记不住。 然后是符号选项,符号设计界面呢,一般用到的不多,所以这里大家直接用默认的设置就可以了。 然后是 p c b 选项, p c b 选项呢,我也给大家看一下我自己的设置, 如果大家觉得看不清楚呢,可以暂停来看。 那这里呢,我同样建议大家勾选这个对齐选项 好,然后是封装,封装选项的话,我也使用的是默认的设置 面板和面板库,这个大家不用管,一般是用不到的。然后是保存选项,保存的话呢,我建议大家开启自动保存,然后保存间隔大约是十分钟,自动备份呢也开启, 那开启自动保存呢,可以保证我们文件的一个安全,自动备份呢可以保证我们在死机的时候呢也能恢复原来的文件。所以呢我建议大家这两个选项都要开启好,然后我们所有的全部选完之后,点击应用, 然后点击确认,那这样设置就已经设置好了。好,那接下来说一下关于 d r c 相关的设置。我们打开上次课呢新建的这个工程文件 test 一, 然后点击原理图, 然后进入原理图的界面,我们在原理图界面呢点击设计,然后点击设计规则,那这里呢就是关于原理图的一些 d r c 相关的内容, 那这里如果我勾选它的话,就表示我 d r c 需要检查这个项目,那我这里建议大家呢是全部勾选好,我们点击确认, 这样的 d r c 的 设置就保存好了。然后是 p c b 的 设置, p c b 的 设置的话,它的 d r c 规则要比原理图复杂不少,主要呢是和一些间距以及物理属性相关内容。 那在安全间距这一栏呢,它是用一个表格来进行显示的。首先呢我们先看行,那这一行它的名称呢叫做导线, 然后我们再看列列这这一列的,它的名称呢也叫导线,所以这一行和这一列相交的位置呢,就是导线和导线之间的间距,那是四米二。那我再看六这个格子,那六这个格子呢是焊盘和焊盘它相交的一个位置,所以呢这个六就表示焊盘和焊盘之间的间距。 那左边这个六呢是焊盘和导线之间的间距,之后呢还有过孔,导线,过孔和焊盘,以此类推。 那我们去看两个元素之间他的一个间距呢,只需要看这两个元素呢,他与哪个格子相交就可以了。那关于他具体的数字呢,我们就先使用默认设置即可,在其他间距这一栏呢,我们全部选择零。 然后是物理属性,物理属性呢,首先是一个导线的线宽,那我这里选的是最小是五,最大一百,默认是十,单位是 m。 比如说默认的导线呢,也就是信号线的线宽呢是零点二五四毫米 好,然后是网络长度,网络长度的话呢,我们不需要对它进行设置,直接写零就可以了。 然后是差分队,差分队线宽呢,仍然是我们信号线的线宽,间距呢是六,然后误差的话我们选择十米啊, 当然这个差分队的线宽他误差呢需要根据具体的一个布线情况进行选择,我们这里现在选择默认情况即可,盲盒孔的话不用管,不同尺寸的话呢,我这里选择的是最默认是二十四和十二啊,然后是平面,平面呢它分为内垫层和不同的一个连接方案, 那这里呢,我选择的是网络,间距是十米尔,然后到过孔和到边框和槽孔,间距呢是十米尔。多根焊盘呢,选择方式是发散连接,那这里呢大家也可以选择直连, 不过呢如果选择直连的话,你在焊接时候呢,可能就需要一个功率比较大的电烙铁,所以呢我这里一般选择发散,然后发散线宽呢和发散间距都是十,发散角度是九十,那这其实就是一个十字连接, 不同呢也是一样的选择发散,然后这两个都是十,底下这个发散角度都选九十 啊。然后是拓展拓展,这个是助焊拓展,助焊拓展的话我们都选零就可以了,然后阻焊拓展,我们知道呢,焊盘它是有一层阻焊层的,而阻焊层呢,会比这个焊盘能略大一些,所以我们选择顶层拓展和底层拓展,都是二 过孔,直接写负一千,然后测试点选二就可以了。我们在进行具体设置的时候呢,有的时候呢,对于不同的网络需要应用不同的网络规则,那我们就可以点击后面的三个选项卡,对于不同的网络呢,设置单独的网络规则,比如说对于一些电源的布线,那我们可能就要让它默认线宽变大一些, 那这里呢,我先不做设置,如果我们之后具体要用到具体的规则呢,我们再做设置。好,我们点击确认,那我们关于 d、 r、 c 的 设计规则呢,也设置完了。

好,那么接下来我们来看一下这些错误他代表什么意思。好,我们来重新做一次实际验证。 好,这里就不用设置了,因为刚刚我们确认过没有问题,这里哈,所以大家第一次做设计验证的时候,要单击这一个设置框,来看一下这里选项是不是有勾选,有时候没有勾选知道没有,没有勾选就没有检查嘛,这个一定要注意了。好, 所以一定要确认一下,确认好的时候,当地开始看到没有三十二错误,我们来看一下三十二错误是什么意思。首先看第一个安全间隙错误。好,下面是他的描述,我们可以把这个界面放大一点, 右下角这里可以把它拉大啊,拉大你才能看得出来。你这个信息嘛,看嘛,这里。好, 我们来看一下这个信息,这个信息讲的是什么呢?焊盘与夫同线之间的距离过小, 焊盘跟服从线之间距离过小,他代表就是走线,跟焊盘距离太近了,看没,这里焊盘代表什么啊?过孔也是属于焊盘,焊盘也是属于焊盘,在这个安全距离里面,所以他这里有,下面有详细的描述。过孔看到没?过孔 跟你这个人走线,你的距离是五点三,一看到没有,你应该要大于等于十米啊,所以他就爆错了, 就是你的桂红跟你的相距离才五点三米,没有达到十米,所以他会爆错。 好,再看下一个,看吧,下一个也是汉盘和芙蓉线之间的距离过小,他讲的是什么呢?接二的十五角啊,跟导线跟走线,他的距离才二点八米,应该要大于等于七点五米, 看吧,这个是你的规则,因为我们规则是没有设置对不对?所以你的规则言外规则是什么样子?他就是按你原来规则来检查好,继续往下看,我再再抽多两个,下面这里 这一个呢,你可以看到这一个是钻孔剑气违规啊,钻孔剑气违规,就是说你这个导线重叠了,看到没?他就重叠了。好,那么这个错误在哪里呢? 好,我先把这个界面放小一点,这个界面也放小一点。好,这里指的是他的这个 焊盘上的 s 三八点三已,这个导线重叠了啊,焊盘跟走线重叠了,然后我点一下,你看他这里会不是有个紫色的这个标识出来吗? 这个紫色的标识就是高亮,把它亮显出来,亮显出来的颜色就是我们之前设置的那里有个亮显。好,那你可以放大一下啊,你这个界面把它 放小一点啊,或者把它移到旁边,然后来放大这个地方。看吧,它简单,就这里看吧,这里就说明这根线 越过了这个,汗跑了,你看他两个网络不是不一样吗?对不对?所以这里是错的,这根线不应该从这里绕过来,所以你看一下这根线,这个线接这里是本身就不对了,你接错了这根线根本就跟他没关系吗? 然后跟这个螺丝孔也没关系吗?看吧,所以这根线是连错了,所以要把它删掉了。看没,这根线也是一样。看没,这根线确实是要压着,但是你跟螺丝孔短路了,看到没有?他有这个标标识在这里吧,所以说你这里就要拐弯,从这里拐过来,好好避开这个螺丝孔。 ok, 刚刚有三十二个错误,对不对?我正好修了差不多有六个错误了,所以我重新再来练。这一次看没只剩下十五个, 刚刚三十二个,现在剩十五个,减掉了十十七个了,看到没有?所以就这一个地方减掉了十七个。他报了很多错误,一个是这根线跟这个汉马有错,这根线跟这根线有错误,这根线跟这个 孔扔在螺丝孔跟这个螺丝孔,这个汉牌有错误,跟这个汉牌有错误,跟他也有错误,所以他这里啊就有十几个错误在这里。好,现在有十五个。 那你再看一下最后一个,这是什么过孔,看到没?过孔,焊盘之间的距离过小,你看叉五的一角,这里又写了叉五的一角 跟这个过红的距离太小了,看到没有?这里。好,我们看一下在哪个地方看吧,在这里看吧,我把这个界面放小一点,就在这个地方,就说明你这个孔离螺丝孔太近了,他的意思就这样了,太近了, 所以你要把它这个改大一点,所以我们要把这个孔啊移上去。怎么移呢?上面不是没空间了吗?所以我这根线可能要改一下,我要把这根走线 重新往上走一点,那么这空间就出来了。然后呢再把这个孔啊打这个,打这里好,打这里之后他跟旁边的线也有点近,看到没有?所以我再把它往下移,把这个孔啊往下移,那么这一个错误就可以提提前给解决了。然后这里报错看到没有? 这里报错。看这个图形能看的出来吧?这根线跟这个汉牌的边缘太近了吗?所以说这里要改一下啊,我们把这个线稍微在这里拐一下, 不要让他那么近这里好,所以把他推一下,记得加 s 推一下。想用它,想用这根走线 啊,你的选择是绿色了,我们这一下,我现在把它改一个颜色啊,换一个颜色啊,这里因为因为你的走向也是绿色,错误也是绿色,你就不好认了啊,所以我现在把它改一下,所以把这个,把这个线啊从中间走下来,看到没有?从正中间走, 所以他刚好走下来,就是在两个汉旁的正中间看嘛这里,所以他这里就不会有错哈,我是要解决两个错误,对不对?所以我在检查的时候应该只有十十二到十三个吧,我再检查一次,开始 看没只有十二个,你看这里,这个地方他就不会爆错了啊,然后这个地方也是一样,都是因为你走向没有走在正中间这里, 你把线走到正中间,他就不会爆错,这个也是一样啊,所以说这里这一节要把它删掉,这一节也是一样啊,我又修改了几个,这个也是一样,都没有走到正 中间啊,因为你这里的线刚好从两个号码中间穿过来,最好是在他正中间的位置,所以你再看一下,看没?我们把界面刷最小 看没?只有九个了啊,所以说你就继续去解决这个有错误的地方,直到没有任何错误零啊,或者是没有发现错误,那这个版的错误就解决了啊,就搞定。

电子工程师常用 eda 软件?什么是 eda 软件? eda 就是只利用计算机辅助设计软件来完成超大规模集成电路、芯片的功能设计、 验证、布线、版图等流程设计的软件。 eda 是在二十世纪六十年代中期从计算机辅助设计、计算机辅助制造、计算机辅助测试和计算机辅助工程的概念发展而来。下面为大家分享几款电子工程师常用的 eda 软件工具。 protel 是 ltm 公司在八十年代末推出的 eda 软件,在电子行业的 cad 软件中,它是当之无愧的。排在众多 eda 前面的软件,经典的就是 protel 九九 se, 至今仍有不少大学教学电子工程师在使用。 ltm designer 是由 pro hotel 发展而来的功能更强大的 eda 软件,是目前绝大部分电子工程师在学习和使用的一款软件工具。 protuse 是一款单片机出学者常见的仿真工具,它不仅具有其他 eda 工具软件的仿真功能,还能仿真单片机及外围器件。 lagro 是 cadence 推出的先进 pcb 设计布线工具, lagro 提供了良好且交互的工作接口和强大完善的功能,能实现高速、高密度、多层的复杂 pcb 设计布线。 开开的是一款开元软件,遵守 gnu 的 gpl 版权协议,使用起来没有盗版的问题,也是众多电子工程师的必备工具。 好了,本期就分享到这里,本视频对应的文章教程可以在我公众号后台回复关键字嵌入式软件工具,查看详细的内容。

大家好,欢迎来到加一创 eda 本讲内容,我将为大家讲解加一创 eda 扩展插件的下载及安装。 本讲内容一共分为四个部分,首先是扩展插件的介绍,其次是下载扩展插件,然后是安装扩展插件。最后对本讲内容进行一个总结,首先是扩展插件的介绍, 那么什么是加一创 e d a。 扩展插件呢?加一创 e d a 扩展插件是由加一创 e d a 官方或用户按照加一创 e d a。 专业版扩展 api 开发的加一创 e d a。 专业版编辑器功能扩展模块。 在加一创 eda 专业版用户指南文档站 products 点、绿创 eda 点实验中,我们提供了扩展 api 文档,也欢迎大家与我们共建 eda 插件生态。那么如果你也想成为加一创 eda 扩展插件的开发者,也欢迎访问我们的用户指南文档站, 你在用户指南文档中点击扩展 api 入口,在这里有我们所有的加一创 eda 扩展 api 的 介绍以及使用说明,还有如何自己开发一个加一创 eda 扩展插件。好,我们回到本讲的内容, 扩展插件有什么用呢?使用扩展插件可以丰富你的加一创 eda 软件功能。 以线圈生成器为例,以往在绘制 n f c 线圈或无线充加热台的线圈相对比较麻烦,而且不规整,那么我们就可以通过安装线圈生成器扩展插件,实现快速生成规整的线圈来大大节省我们的时间。 我们如右图所示的这个图片,就是用线圈生成器扩展插件生成的线圈,可以看到是非常规整的一个线圈了, 然后中间的呢是我们这个插件的一个设置界面,可以设置圈数,内半径等等,以及包括电感值的估算。那么我们如何去下载这样的扩展插件呢? 啊?下载扩展插件的话,可以到我们的加一创 e d a 扩展广场中下载加一创 e d a 扩展广场的域名如下, 我们点击加一创一的扩展广场的域名就可以访问了啊。如果你想从呃其他地方访问的话,还有一种办法是通过我们开云平台来访问,我们点开开云平台, 在这里横幅有一个加一创一的扩展广场,点击这个横幅也可以访问到我们的加一创一的扩展广场中,那我们刚刚看到的现生成器就在这里了。 点进来可以看到线圈生成器的详情介绍,在左侧这一部分是现在生成器的功能描述,它可以生成螺旋线圈啊,方形线圈 以及可以配置的参数,还有用户界面访问的呃一个地方,那么在右侧的话有我们这个扩展的类型,他是一个 pcb 的 扩展工具, 然后以及关键词 f c 或 p c b, 然后还有扩展信息 版本号,发布者时间名称 u i d, 即适用的 e d a 版本,这里我们主要关注适用的 e d a 版本,在安装这个扩展之前,你确保你的 e d a 版本一定是大于这个二点二点三二的 好,然后是相关链接,相关链接的话一般是放的是这个扩展的源码以及反馈的地址, 我们点到旁边可以看到他的更改日期,他所有的发版记录,哪个版本变动什么,可以在这里看到更改日期,然后旁边是历史版本,可以下到历史版本, 然后评论。如果你有一些呃建议或者反馈对这个插件的建议或反馈,你可以在评论区留言以及评分。好,那么我们下载这个线圈生成器。 好,那么我们如何去安装扩展插件呢?好,我们打开我们的专业版编辑器, 在设置啊顶部菜单栏设置的列表,找到扩展扩展管理器,在这里就可以导入刚刚下载的点一一叉 t 后缀的扩展文件了, 导入进来是默认起用的,如果有的扩展它还有外部访问的请求,你还需要打开这个外部交互功能这个功能呢,按需打开默认是关闭的。 那么我们这个插件呢,是一个呃离线的生成器插件啊,所以它不需要用到外部交互功能。然后 现在呢,你的这个扩展就已经导入进来了,但是你在顶部还看不到他的菜单啊,因为我们返回到刚刚下载的地方,点到详情往下滑,看到这里的介绍 啊,这是一个 pcb 的 一个生成器工具啊,所以他的菜单栏访问呢,是在 pcb 页面,所以也就是说呢, 如果说你导入进来看到顶部菜单栏没有这个插件的一个入口啊,并不是说明他没导入进来啊,他只是啊是在一个特定界面下,比如说这是个 pcb 的 插件,那他肯定是在 pcb 的 编辑界面,他才会有这样一个菜单。 我们点到线圈生成器菜单下线圈生成器啊,设置圈数内半径轨道,我们用默认值来绘制一个螺旋线圈, 可以看到这个线圈的生成速度是很快的,并且也给定了对应的一个计算的电感值,我们再生成一个方形线圈, 也是很规整的一个线圈。好,那么我们回到 ppt 中,我们现在呢,这个扩展插件就已经导进来了,已经可以用了啊,如果你不需要使用的话,你就点扩展管理器这里,把它启动关掉就好了。 我们回到 ppt 中,最后呢,我们对这一讲内容进行一个简单的总结。 在本讲内容中呢,我们讲解了什么是加一创 e d a 插件,如何下载加一创 e d a 插件, 如何安装加一创 e d a 插件,并介绍了加一创 e d a。 扩展广场。现在呢,你也可以在 e d a。 扩展广场中获得更多好玩、有趣、实用的功能扩展,来丰富你的加一创 e d a 功能。 本讲内容呢,我们将讲解专创一对扩展插件发布及管理好。那么本讲内容呢,一共有三个部分,首先是扩展插件发布及规范,其次是扩展广场插件管理。最后我们对本讲内容进行一个总结, 我们看到第一个部分是扩展插件的发布及规范啊,那么对于打算上架到加一创 e d a。 扩展广场的插件,我们会有相对的规范要求,你需要遵守我们的扩展插件规范,才能成功上传至 扩展广场,以便更多人使用你的插件。那么扩展广场的上传规范啊,就有如下八条。首先第一呢,你的扩展应该包含以下的属性 名称、唯一标识符显示名称、描述版本及许可证信息。 那么对应到我们啊,开发工具这里找到啊, extension 点筛选文件在这里啊,你要包含,第一个是名称 name 啊,你的名称要有,第二个是 u u id, 也就是唯一标识符,然后是显示名称, 然后呢就是描述啊,对于这个扩展的描述,其子是版本,版本号要对应,如果你的扩展有升级或变更,对应的版本号呢,也要进行更改,并且更改完成之后呢,你还需要在这个 change log 填写你的变更日期。好,然后就是许可证信息,许可证信息这里我们是阿帕奇二点零许可,这个按你的需求去填写, 然后我们的第二条至少选择并填写一种或多种符合要求的扩展类型。 我们找到对应的这里啊,我们这个工具呢,是一个 pcb 工具,所以我们这里扩展类型填写的是 pcb 啊,那么对应到 这里有一个开发指南,我们 api 文档网站呢,也有告诉你这些 填写的内容。找到扩展配置文件在这里啊,找到扩展分类可选项啊,原理图,符号, pcb 啊,引角,面板库或者项目或者其他, 这是你的可选值,你只能填写这里面的,只选其中一个。好,然后呢,我们 扩展需要提供自定义的图标啊,不得使用 sdk 提供的默认 logo 推荐比例尺寸呢,为一比一啊,分辨率最好是二五六乘二五六,格式需要是 png 或 jpe, 内容需要清晰,无侵权风险,文件大小不得超过五 mb。 好, 那我们对应到 我们的开发源码里面呢,是在啊 images logo 这里,这个图片啊,改成你自己的图片,不要用官方的 sdk 里面包含的图片, 否则也是在上传时候会被拦截下来啊。那么第四条是确保你的扩展入口文件存在且有效。那扩展入口文件呢? 啊,在我们的 s r c 资源文件夹下, indexin, tpos, ts 文件里面, 在 ps 文件里面,你要确认你的啊,这几个功能入口是有效的且存在的, 你如果这个是无效或不存在的话,那你可能这些功能入口要么点不进去,要么就是,呃,基本上就是用不了,你的功能基本上是报废的。好,然后我们第五条, 不同的扩展具有不同的 name 属性,值不得重复。 可以看到啊,也是刚刚的 extension, 点 g s g s 文件里面 u u i d 值啊, u u i d 值不得重复,你的扩展名称不得重复。 好,然后我们看在第六条里面,在 readme 点 md 文件中,要详细说明扩展的功能及使用方法。 我们找到 redmi 文件,这里的 redmi 呢,我放了有两条, redmi, 一个是英文的,一个是中文的,按你需求,如果你不需要英文呢,你就只要保留一个 redmi 点 md 文件就够了。好,你要确保你的 啊,你的扩展的功能,要明确你的扩展有什么功能啊,可以做什么?然后扩展描述其实是使用方法,你要告诉用户你的扩展如何去使用, 比如说你的扩展,你只注册了 pcb 界面,你要告诉他你的这个入口是在 pcb 啊编辑界面下啊,才会有这个入口, 不然人家用户拿到你的扩展之后,跑到原理图界面一看,没有这个状态栏,没有显示这个入口,还以为是扩展出现了问题,所以要明确好你的使用方法。那么在第七条,在 change log 点 md 文件中记录扩展的更新日期, 你打开拆极 log 里面,在这里记录好你的所有的版本变更日期,一定要明确你的版本变更日期,确保啊你在这个版本中变更了什么,或者说做哪些更新,或者说是修复了什么。 那么第八条,那么扩展中禁止包含个人隐私信息,例如邮件地址及电话号码, 这条呢,是为你的安全考虑,所以你在 extension 点 this 文件中不要去包含你的邮箱啊,像这里,我们这个是以官方发布的,我们放的是官方的邮箱,所以你的邮箱最好是不要放在这里面,然后你的作者名称最好也不要填你 自己的真名啊。然后你的 realme 文件也不要放一些啊,什么邮箱地址或电话号码, 那么遵循这八条,然后我们接着看,我们还有三条,这三条呢,虽然说不会拦截,但是在审核过程中呢,我们也会去看一下。 首先你的扩展配置文件中, home page 及 box 换成自己的存储库地址及问题反馈地址。我们看到 extension 啊,要换成自己的主页 啊, box 呢?换成自己的问题反馈的地址,这个主页呢,可以是呃开源平台的啊,或者说是代码仓库的 啊。 box 反馈地址呢,填你自己的一些反馈地址啊,不要填邮箱啊,填你自己的反馈地址。你像那种仓库里面一般会有呃问题反馈的一个地址,提问区在那里,把那个链接放上来。然后第三条 啊,第二条啊,在上传发布扩展插件之前,建议先使用一些导入,测试下你的扩展功能是否完善,界面显示是否完整,确保功能及界面无误后再上传发布扩展插件。 像我们在啊审核的过程中呢,我们审核时候,有的时候有的有的用户他的插件呢, 可能显示界面不全,或者说是没有加载完善,或者说是啊功能用不了等等。这种话建议先导入到你的 eda 去测试一下,确保完善功能完整之后再上传。然后 第三条,插件内严禁存在违法违规和恶意插件行为或内容。 我们提供的 api 虽然说是很多的,但是你不要拿这些 api 去做一些违法违规或者说呃恶意插件的行为或内容,像这样的内容呢,我们是百分百是不允许通过的。那么在使用插件时候,同样也注意 有外部网络访问请求的啊,没有在扩展广场发布的插件,这类插件一定要注意它的安全,避免出现自己的数据损失的问题。 那么接下来我们将介绍如何上传扩展插件至加一创 e d a。 扩展广场 在上传,在创一贴扩展广场之后啊,我们这里有个扩展管理,在扩展管理中呢,点扩展上传,你就可以上传你的扩展了。 呃,比如说我是,呃这个文档 dos 杠 twos v 一 点零点零点一叉 t, 我 点击上传 啊,点击上传他会提示你的上传信息啊,我们这里呢,因为是用的是官方账户,他是有官方的邮箱反馈邮箱了,所以这里啊,我们直接不用管他。然后另外这个扩展其实是已经上传了,已经在这里了,所以我们重复上传也是会被拦截下来的, 所以我们接着看后面扩展广场的插件管理,在创 e d a 扩展广场插件管理,我们同样看到页面来, 也是在你发布的扩展,会在这里扩展管理这里会显示出来,比如说我们刚刚呃上传上架了这一个扩展, 在这里呢有详情页。详情页呢,可以看到啊,也就是用户访问你的扩展时候,他看到的页面,这个就是详情页,就是你的这个扩展的呃,主页, 那在这里呢,你就可以看到你的一些扩展信息了。详情页呢,对应的就是在你扩展文件里面的 readme 部分,看到 readme 部分这里就是对应进来的, 你可以去看一下你的 redmi 进来之后它的显示是不是全的,或者说有没有缺损缺,呃,或者说解析不正确。这个你可以看一下,然后在右侧啊,类型 就是你刚刚在 extension 点 js 里面填写的类型,关键词也是在里面填写了扩展信息,同样也是里面的。然后你的试用 eda 版本,确保你的试用 eda 版本是测试过的能用的 eda 版本。 然后如果你的这个扩展插件是在二点零的 e d a 版本上开发的,那么可能在 e d a 变更到三点零版本上可能会有一些 api 的 变更升级, 这种你要注意下 api 的 啊,适配情况好。然后更改日期呢,就是我们刚刚在资源文件里面, 还有在我们源码里面的 change log 文件,这就是我们的变更日期。 历史版本呢,不用去管它,历史版本是你每一次变更之后提交之后会自动保留,当然如果你认为你的历史版本存在严重性的问题,你可以进行下架处理 好。评论区呢是可以看到呃使用你的扩展的用户对你的扩展插件进行了评论。 好,我们点到扩展管理继续这里。第二个功能键是更新功能,如果你的扩展有版本性的变更,比如说我升级到了 v 一 点零点一的版本, 不需要再去点扩展上传了,直接点更新就可以了,然后选中你的 v 零一点零点一的版本 就可以了。那么更新后呢,他会默认在版本管理这里给你新增一栏,也就你的历史版本呢。如果你认为你的历史版本有严重性的问题,你可以点击未发布,把它下架掉或点删除删除掉。 如果你认为你的整一个扩展都存在问题的话,就点击下架就好了。或者说如果你不想在啊扩展广场上传你的插件,那么就点击删除键删除就可以了。 最后在右上角这里还有一个分享图标,你可以把这个地址复制下来分享给你的小伙伴。 好,最后我们对本讲内容进行一个简单的总结。那么在本讲内容中呢,我们讲解了将一创 eda 扩展广场的上传规范、插件上传演示及插件工管理功能的展示。 我们也欢迎大家广大的开发者与我们共建加一创 e d a 的 扩展插件生态,打造好用易用的加一创 e d a 软件。本讲内容我们将进入到扩展插件的开发实战。在本讲内容中,我们将开发一个 dos tools 文档工具。 本讲内容一共分为四个部分,首先是要明确我们的开发思路及方向,其次是要对开发环境的配置,然后进入到开发实战,最后我们对本讲内容进行总结。 首先我们要明确我们的开发方向及思路,那么我们为什么要开发一个 dos 文档工具呢? 在使用 eta 编辑器中,你是否有遇到过无法在 pcb 中注时公式以及文字排版相对麻烦,那么接下来我们将通过加一双 eta 专业版 a p i 来解决这个问题,为你的 eta 功能添砖加瓦。 那么如何通过简单的方式让文档排版更好看呢?相信大家在编写开源描述时通常会采用 markdown 来编写, markdown 相较于复文本会更美观更好看,所以这里我们同样打算采用 markdown 来编写文档。 那么如何通过简单的方式来显示复杂的公式呢?那就是 latex。 latex 表达式可以通过简单的符号表达出复杂的公式,所以这里我们打算采用 latex 来编辑公式, 但是普通的文本不支持 markdown 和 natx 的 显示,我们怎么样去让它显示呢?大家还记得在 pcb 中是怎么导入自己想要的图案或 logo 吗? 啊,那就是导入图片,我们可以通过导入图片的形式来显示复杂图形,所以这里我们主要原理就是通过导入图片的形式到 pcb 的 文档层中。 那么明确了大致的开发思路,我们就可以开始查找相关的 e d a 编辑器 api 了。那么我们首先要找到的就是和 p c b 图像图源相关的 api, 那 么就是 p c b primetime image 类。 我们查找 api 啊,可以打开到我们的加一创 e d a 专业版用户指南文档,站在这里有一个扩展 api 栏,我们点进来, 在这里就是所有的扩展 api 的 介绍,我们找到我们需要用到的和 pcb 相关的类,在这里找到我们刚刚说的导入图片相关的,那就是 prom team image, 在 这个类中我们可以看到这个类里面的啊,很多个方法, 那么我们要创建图像就是这个第一行 creative 方法,在这个方法中呢,我们可以看到这个方法的签名以及参数名,还有返回值和备注。 好,我们回到 ppt 中,这就我们刚刚找的啊 creative 方法,我们先看到它的参数, 以后他要传入的参数,他必须要传入四个参数,然后这这些是可选项。我们首先要传入的参数是 bbox 的 左上点坐标 x 轴以及 bbox 的 左上点坐标 y 轴,还有图像图源数据以及层, 那么这里我们看了一眼啊,比较难获取到的是什么呢?图像图源数据,那么这个图像图源数据怎么获取呢?哎,这后面也告诉我们了,可以使用这个方法将图像文件转换为复杂多边形数据, 那么这个图像文件啊,怎么转换为复杂多边形呢?啊,我们继续,那在这个方法中有一个参数是复杂多边形啊,描述中告诉了我们转换方法,所以我们还需要去调用这个 a p i 来获取这个啊,复杂多边形 啊,这个方法是在多边形数学内,我们找到这一个啊,转换方法, 我们看下这个转换方法的参数啊,他要传入什么参数?首先第一行啊,他要传入图像的 blob 文件, 哎,这个 blob 文件可以使用哎,这一个 api 去这个 api 的 方法,从文件系统中读取文件,然后第二个参数是图像的宽度,第三参数是图像的高度,然后剩下的是可选项啊,可选项我们先不去管它, 此时我们还应该有一个窗口去实现表达式的编辑及预览, 那就通过 e frame 啊,内连框架窗口,那我们为什么要去有这个窗口呢?大家在编辑看文档的时候, 是不是在左边会给你一个编辑栏,在右边给你一个预览窗,所以我们还要去创建一个编辑和预览的实现。 那么这个方法啊,就是打开内联框架窗口啊,这个方法 open e frame, 我 们可以看下这个方法需要传入的参数啊,我们必须要传入的只有第一行参数需要加载的 html 文件在扩展包内的路径。 好,现在我们已经了解了我们将要使用的 eda 编辑器 api, 那 么接下来我们还要去了解如何去实现将 markdown 和 latex 变成 eda 编辑器 api 能够理解的啊,数据格式,也就说它能够传入的啊,这个参数, 嗯,也就是这行 blob 文件啊,我们如何去让它获取到这个 blob 格式 啊?首先我们先来看 latex 的 公式显示如何实现呢?这里我们有这几个工具, 那么这上面三个就是我们可以获取到,也就说它可以帮我们转换的啊,把这个,呃 文字表达啊,表达是转换成图像的啊这三个工具,然后下面这个就是我们要把这一个图像转换为 blob 文件的工具。 我们这里我们列了一个流程图, must 点 js 是 一个开源且本地 latex 支持 svg 生成的组键,所以在本项目中我们将使用 must js 来实现,而 bugdown 的 实现啊,也是类似,它只是将 dom 去转为 blob, 那 么它的转换工具也是一样的,也是这个 canvas。 我 们可以看一下这个流程图啊,这上面我们刚刚列的三个工具啊,其中表达是可以通过本地处理,走 mass index 和 kitex 转换为 svg, 再通过 canvas 转换为 blob。 那么还有一个方法呢,都是通过表达式,然后通过云端的 api 处理,然后走这一个转换为 svg, 然后再转换为 canvas, canvas 再转换为 blob。 那 我们肯定优先是本地处理的, 所以我们这里选的就是 master jax。 最后我们给一个汇总的啊开发流程图,我们只需要一点一点通关啊,一点一点把它打通, 这一个整个功能就能实现了。我们首先先看啊,我们要通过啊啊 excel 打开一个 excel 窗口,然后在这个 excel 窗口中啊,是通过 html 去编辑了,然后用户在这个 html 里面去啊编辑好表达式, 那这个表达式呢?通过本地处理,然后再转换为 svg, 然后再通过 canvas 把 svg 转换为 blob, 然后得到这个 blob, 就是 我们需要啊,也就 api 能理解的一个数据格式,我们把这个 blob 再传入到这个复杂多边形的转换的方法里面, 然后这个复杂多边形转换方法给我给了,我们返回的就是复杂多边形数据,再把这个复杂多边形数据传入到这个 create 创建图像的啊这个方法里面,这样我们的啊图像图源就得到了。 好,那么我们接下来就进入到开发环境的配置,那么在开发之前,确保你已经安装了,记得点 gs 环境和 vs code 的 这一些辅助插件,如果还没有安装,可以先看一下 api 环境配置章节 啊,以及在我们的文档中,这里有一个啊,如何开始在这里点到右边侧边来啊,获取 vs code 的 扩展,以及拿取 sdk 仓库到本地,这里都告诉我们了。好,那我们接下来呢,先把这个 sdk 拿取到本地, 我们打开 vs code, 我 这里新建一个终端。好,我先创一个文件夹。 哎,我这里有一个 workspace, 我 就不创文件夹了,那我们就直接去拿取这个 s e k 了, 这里呢给了两个环境,一个是 get 环境,一个是 gethub 环境,按你所在的网络环境去选择啊,如果你是中国大陆以内的,我们推荐你通过 get 去拿取。 好,我们这里呢就把这个 sdk 已经拉下来了,我们把 vs code 先进入到这个 sdk 的 文件夹中。 好,我们可以看到这里面有所有的文件 sdk 的 文件了,那么我们看到这个框架,我们首先在开发之前,我们先要去编辑 send 点 j s, 那在这个里面呢,我们需要定义的是我们的啊,我们的这个插件的名称,那么插件名称呢?我这里啊, dog 键 dog 杠 tools 啊, dog 杠 tools 插件,而 uid 可以 先不管, uid 是 后面会自动生成的,所以这里我们不用去管它,然后显示名称啊,往这里写 dog 杠 tools 文档工具, 这个显示名称呢,就是会显示在啊扩展广场上面的一个名称,然后这个 name 名称呢,就是我们这个插件啊,下载下来它的后缀之前的那个名称 好,然后这里呢是描述,我们这里的描述就是啊专业版编辑器文档工具 版本号一点零点零啊,不用去管了,因为我们是初识版本。然后这里是作者,这里的作者呢填写大家啊自己的昵称, 填大家自己的昵称,然后这个邮箱呢?呃,大家不要在这里面填写邮箱啊,我们这里是官方的插件,所以我们这里填写的是官方的支持邮箱,大家不要把自己的邮箱填进来啊,避免一些隐私泄露。 然后这里呢是支持的 e d a 版本,这里是大于二点三点零的啊,大家可以根据自己的插件情况去测试,然后再去修改 好,然后我们呃看到看到这里 home 配置,这里 home 配置呢是呃一个主页,这个主页呢一般是填写大家啊开源仓库的一个地址,然后 box 呢是填写大家开源仓库的一个问题反馈地址,那这里我们是官方插件啊,我们这里就不去修改了。 然后这里呢啊尹妹姐 logo, 这里是 logo 的 路径啊,这里 logo 路径呢?大家啊,如果要上传到开元广场的话, 扩展广场的话,必须要把这个 logo 啊给它换掉,不要用我们默认的这个 logo。 然后是关键词,关键词我们这里改成文档啊, 我们这些的配置啊,也可以在啊我们的文档网站这里有一个啊扩展配置文件,我们可以看一下啊,这里关键词, 关键词你可以填写啊,你认为相关的一些关键词,然后是扩展分类, 扩展费呢,就是我们刚刚上面的这里啊,这里是阿德,那我们这个扩展呢是一个 pcb 相关的扩展,因为它是 pcb 文档层创建文档的一个扩展,所以我们这里改成 pcb。 好, 然后源码仓库的啊,地址啊,这里可以改成自己源码仓库的地址。 好,其他的就不去改动了,其他的我这里就保持默认了。好,然后我们主要要看到了我们需要改动的是哪里呢?就是这里, 这里呢就是我们的插件啊,在顶部菜单栏的一个入口的地方,一个入口的一个标签的地方, 比如说啊,我们这里是一个 pcb 插件,我们只让它在 pcb 的 菜单栏显示菜单,那我们就只保留 pcb。 然后呢啊,我们这里把,我们这里把这里的 id 啊给它换掉, 抬头呢就是它显示的这个菜单的啊,一个名称,我这里和 id 保持同步。 然后呢这里呢就是子菜单了,也就是你这个菜单下的下拉列表里面的一些可选项啊,那么 about 的 话就给它留着吧, about 是 它默认生成了。 好,我们首先我们要做两件事啊,我们一个,一个是 latex 的 这个公式的工具,我们创建一个 latex 的 入口, 一个 latex 的 选项菜单, 然后这一个注册的这个 fn。 这里呢就是我们等一下入口啊,入口方法的一个名称,要跟入口方法的名称对应上去, 要对应上去,不然的话啊,他找不到这个入口,你这个你这个选项可能就是无效了。 好,然后我们还有一个是什么 markdown 的 工具, 我们这里呢就是 pcb 杠 markdown。 好, 我们现在来看一下啊,这个入口方法的名称啊,这个入口方法呢?这个入口是在 s r c 里面的 index 点 ts 里面,在 index 点 ts 里面,这里给我给了我们一个创建好的 about 的 这样的一个方法入口,那么这里呢,我们就把它保留一下,我们还要创建一个 markdown 和 latex 的 入口, 好,这里跟我们刚刚写的对应上啊, pcb latex 复制过来, 然后 pcb markdown 好 复制过来,然后这里面呢我们刚刚的流程图啊,我们刚刚的流程图 看一下,我们是要先打开一个类链框架,所以 所以这里面的跟 about 相关的这个消息窗口我们就不需要了,因为我们要打开列表框架, 那么在啊打开列表框架之前啊,打开列表框架之前,我们看一下列表框架的这个方法,看一下列表框架方法,直接在这里面看, 哎,这里有一个内点框架支持啊,这里面告诉我们这个内点框架支持要怎么样去操作。我们看到这一个啊,内点框架的打开方法里面, 一个是签名,然后一个是它的这个参数名,我要传入参数这里告诉我们需要加载的 html 文件在扩展包内的路径, 那么这个 html 文件呢,在这个 e frame 类链框架这里,下面 index 点 html, 我 们这里把名称改掉,改成 latex 和 markdown 啊,一个 latex 点 html, 然后一个是 markdown, 好, 这样子,我们的啊一个窗口页面啊就有了,然后我们要在 index 点 t s 里面把这个窗口给打开, 那么我们 e d a 啊,点 e d a, 哎,我们先把这个,把这个 s d k 先啊它的 n p m 包先安装一下,刚刚还没有安装 n p m 包,没有安装 n p m 的 包,它这里就标红了啊,找不到名称了,先安装下 n p m 包, n p m install。 好, 这里我们的 n p m 包就已经安装好了,我们可以去 n p m build 去验证一下 啊。 n p m run build 去验证一下我们这一个插件啊,是不是可以编辑成功? 你看到这里已经生成了一个文件了。 好,已经编辑成功了,那么它编辑完成的插件在 build 文件夹下啊, delete, 这里有一个 pro 杠 api 杠 sdk 啊,为一点一点零一点零点零点一叉 t, 哎,我们这里是不是没有保存啊,所以它应该是没有保存,我们点一下保存 覆盖掉,因为我们这里也是 dos 框 tools, 但这里生成了 pro 杠 api 杠 sdk。 好, 我们再编辑一下 啊,好了,这里我们的 dos 框 tools 的 插件就已经编辑成功了, 那么我们继续去完善它的功能。刚刚在啊 index 点 t s 入口这里啊, e d a 的 这一个也安装进来了 啊,这是一个 s i s 系统类系统帧内连框架类,在这里面我们要调用一个打开的方法。 好,我们要指定我们的路径, 路径是在 frame 啊,我们这里是 latex, 那 就是 l a t e x 点 html, 然后给他指定一个宽高,这个宽高我这里就啊只先指定个。呃,五百,五百吧,等一下我们去看一下,如果说超出了,再调整 好,把这里复制下来,粘贴上去,名称改成 markdown 啊,对应一下,我们这里名称是一样的。好,这时候我们的入口就已经写好了,然后我们要完成的就是什么呢?看一下我们的啊 ppt, 我 们的流程图, 我们要完成了,就是到这个 html 这里了,我们前面已经编辑好这个方法了, 那么回到编辑中,打开 html, 这里给了我们一个视力的页面, 那这个就先不要了,然后开头呢就是这个窗口的一个名称改成 l a t e x, 好在 body 里面我们去写这个一个 html, 我 们首先啊要有一个输入框,先用 diy 给它包裹一下,方便我们后面去 改这个样式,我们的想法呢是让它上下结构 natx, 因为它啊这个 编辑的文本要比较少,所以我们把它放到上面,在上面编辑一个文本,然后在下面给一个预览,然后在呃编辑文本的输入框右侧放一个按钮,我们这里先用 diy 给它包裹起来,然后创一个输入框, 这个输入框我们给一个提示,在此输入 l a t e x 表达式。 好类型,是一个文本类型, 智创呢,我们输入框就好了,然后我们再创一个按钮,这个按钮呢是一个生成按钮,我们先给他预留一个啊,一个按下的指向。 好,然后呢就是预览了,我们上面有了这个呃输入窗口和生成按钮,接下来就是预览,同样也用呃 diy 先包裹起来, 然后在啊预览的下面是,我们等一下要通过 t s 啊 j j s 来完成了, 那这个地方就给它预留一下,然后我们指定一个 id。 好,然后在呃,然后我们在这个输入框这里啊也指定一个 id, 方便我们后面, 方便我们后面在 g s 里面去获取。哎这个输入框里面的文本, 然后我们给这个盒子就已经完成了,我们这一整个盒子就已经完成了,我们可以去安装一个插件,安装一个 html 的 一个预览插件,可以看一下, 不然光看代码还还预览比较麻烦。这个插件啊,我个人用的是这个插件啊, ctrl 加 key, 然后再按下 v 看一下预览。 好,我们大致的想法就完成了,我们上面是一个输入框,然后旁边一个按钮,下面这个区域呢就放预览, 这个时候呢,这个纯 html 还是比较丑的,所以我们还要加一点点样式,加一点点 css, 我 们在这里加一点点 css style 风格。那么首先啊,先是输入框,给它指定一个啊, class input 输入区, 我们先把底色也给它换一下吧,先把包底也改一下, 这里的字体我我比较喜欢这个 颜色呢,指定一个, 嗯,深色一点点,深灰灰色一点, 我再指定一下编剧。 好,然后就是我们刚刚创的这个啊 class 了,我们要把这个输入的啊,这上面这一半部分,上半部分也给它改一改 input, 我 们把这上半部分也改一改, 然后让它跟下面稍微有一点点啊,边界 好,这看上去呢就好多了。我们 这里的输入框啊,这种默认格式的输入框啊,很老旧,很不是很好看,我们给它改改,我们指定到啊这个 css 为这个输入框 好,然后我们给它搞点颜色, 这样子就比之前好看多了,但是发现它这种直角框呢,也比较丑啊,我们把它用圆角美化一下, 哎,是不是好看多了,然后字体呢,也稍微大一点。 好,我们现在这个输入框已经变好看了,就到了旁边这个啊比较丑的按钮,把这个按钮呢也给他弄好看一点,给按钮也加一点点样式, 嗯,把这个按钮的颜色也给他改成啊,输入框这个边界的这个颜色 好,然后看到这个字啊,它这个显示的深层,这个字是黑色的啊,不是很好看,我们换成白色的,让它明显一点。 好,然后呢我们再看下,把这个直角边框啊,同样的变成圆角边框, 好,去掉外面的黑框,这样呢就好看多了。 然后我们啊给它弄一点点动画 好,我们这个时候呢还没有创建悬停事件,所以我们还没办法看到再创一个啊,鼠标悬停,悬停到这个按钮上的事件 颜色呢啊,给它加深一点, 好,这个颜色稍微深一点点,当然啊,得益于 vs code, 你 也可以直接在这里改,也是 ok 的。 这时候我们看一下是不是颜色,旋停的时候这个颜色就变深了。好,然后我们接着继续, 我们此时上半部分啊,上半部分就已经啊做好了,我们现在呢要把这下半部分也给它改一改。 下半部分呢,同样给这个 div 啊,指定一个 class 啊,预览盒子 同样的圆角,然后给这个盒子加一点点阴影, 好,这样子我们看到有一点点立体的感觉了。 好,这时候呢我们加一个啊,防止它内部啊有一个预览的这个滚动时候会超出圆角, 然后我们这个预览这里抬头也给它指定一下 class, 给这个标题啊,也指定一下,同样的把这里改一下 background 继承父类, 然后我们接下来,哎到这个预览区域给这个地方也加一个 class, 然后呢我们就要加上滚动条了, 同样继承 flip 的 这个背景 好,这个就啊好看多了。然后我们 还要呃给这个 id 的 也调整一下, 这个实际上大家也可以在完成所有功能之后,再预览了这个 latex 的 表达式生成后的公式,生成这个图片的大小,来啊,详细调整, 我这呢就直接先调整好了啊,省到后面再去一个个测试。 好,我们这个时候呢,我们这个 html 页面就已经完成了,这个 latex 公式的前端页面显示就已经完成了, 那么我们接下来就要编辑啊 gs 部分了。那么 gs 部分呢,我们刚刚说了,我们啊需要, 需要什么呢?需要一个 max jacks, 还有一个 canvas。 那 么我们如何去安装这两个呢? 啊,很简单,直接 npm 安装, 我们可以看到这里的录的 js 模块,我们这里已经告诉我们安装好了,我们可以看一下。呃, 哎,这里有了 master js, 我 们在哎这里打开 这里就有了一个啊 t s 杠 svg, 点击 s, 我 们需要的就是这一个,我们可以把它啊这个复制过来,复制到我们的。呃, s r c 下面 啊,复制到我们的 infam 下面,因为我们需要在 html 里面去啊调用,所以我们要复制到 infam 下面, 然后呢,我们还需要一个啊 canvas 这一个工具,那么这个工具呢,也是同样的,我们在 npm 中去安装一下 html to canvas。 好,这里安装好了,跟刚刚的步骤一样,我们在这个模块里面找到 html to canvas, 哎,在这里我们找到它的产物,选择最小的这一个 好,粘贴进来。好,这个时候我们就已经准备好了, netx 就 可以转换为啊 blog 文件了。 好,那么接下来我们开始完成 javascript 的 部分啊,我们先在 eframe 目录下创建一个啊 js 目录,做好分类,把这的 js 文件放到 js 目录下去, 然后我们回到啊 latex html 文件里面,我们需要去把我们要用到的啊 text to svg 这个库给它导进来。 好,这样我们把库导进来之后,就可以继续完成我们的 javascript 的 部分。 那么我们首先先创建两个常量, 我们把啊前面绑定的啊前面设置好的 id 给它绑定进来,来获取啊这个书的内容。 我还要再创建一个常量。好,我们这命名为啊预览 d i v 在 这里面呢,同样呢,跟上面一样啊,把这个 id 给绑定进来。 好,我们现在开始实现第一个功能就是实时渲染 latex 表达式到 svg 预览,如果我们输入什么内容,它实时预览什么内容, 那我们就要啊开始去添加一个啊监听事件 a, d, d 添加一个监听事件啊,这个监听事件啊,是一个输入的监听事件。 然后呢,我们要获取到书的内容, 会到书的内容之后啊去除掉空格, 然后呢清除掉预览区域内的内容, 这个时候啊,我们就要做一个判断了,我们要判断啊这个输入的内容是空的还是有内容的,所以我们这里做一个判断, 如果说它是一个空的,那我们就直接返回啊不处理,如果说不是空的啊,我们就开始啊踹一下,尝试一下, 尝试处理的话,我们创建一个啊 span, 我 们这里啊创建一个 span, 然后呢我们去使用啊 majet 适用的这个语法去包装 natex 的 表达式。 好,然后我们把我们创建的 span 添加到预览区, 然后我们就可以开始啊调用啊 max, jax 的 渲染引擎去处理这个数学公式了。 好,我们这里呢去提取 svg。 好,然后如果你这个 svg 它生成成功了,那它肯定是有内容的,所以我们这里加个判断, 如果它有内容的话,我们先去清除掉啊预览区, 然后去把这个 svg 啊克隆到预览区。 好,然后我们刚刚这里 try, 就是 尝试啊,如果尝试这里出现了报错错误,我们要把它捕捉进来,我们这里捕捉错误, 那么这个错误呢?我们如果打印到,如果我们把它打印到呃网址里面啊控制台的网址, 那就会有点麻烦,因为你要啊进入到调试模式才能看得到控制台设置。所以我们这里呢还有一个方法啊,就是直接在前端去显示出来,我们看一下有没有相关的显示的一个方法啊,找到系统内里面, 然后我们在这看啊 delog 对 话窗,但我们这应该不需要用对话窗,我们直接这里有个 message 消息通知内,在这里面找一找。哎,有一个显示吐司消息,在这里面,我们传入我们需要显示的内容就可以了, 然后下面的 q 选项我们看一下啊,这个消息类型应该也能用上。哎,这有个错误,那我们就把就用这一个方法去显示进来啊, 那我们啊提示 预览渲染失败,然后把内容打印出来 啊,这个消息类型是一个错误类型。好,回车,那么我们这里完成之后可以到啊 文件资源管理器中,在这里面打开,因为右边这里的这个预览窗口呢,它是禁用了一些功能的,所以你是看不到它的这个实时效果,所以我们到这个文件管理器去预览一下。 好,我们实时预览它已经出来了。其实之所以没有啊生成对应的 latex 格式,是因为我们在代码中指定的 gs 文件路径是以这个工程的路径 为导入的,而在资源文件管理器里面,它是啊以我们操作系统的根目录来导入的,所以这里并不是说我们没有完成,你可以把它啊翻译成插件,我们到 eda 里面显示,它是可以正常显示的, 所以我们这里继续, 那么我们现在就要完成的。是啊,点击生成按钮,然后导出图片的 bomb 格式,然后生成对应的图源。所以我们这里 去创建一个方法啊, 这个方法不需要传入参数啊,因为我们这个方法需要把它绑定到生成按钮这里,这是为什么?我们刚刚在这里预留了一个点击事件, 当我们点击按钮时候,它就会啊执行这里面的方法。 好,那么我们现在呢就要开始来完成这个方法,那么我们首先先获取预览区的 svg 元素。 好,我们先把这个 svg 获取出来, 那么这里呢我们也要去做一个判断,如果啊我们像刚刚这样子,他没有生成 svg, 或者说 svg 没有是是一个空值的时候, 我们这里就不能再去啊继续获取 svg 了,我们这时候要做一个提示,所以我们这里做个判断,看一下这个 svg 啊,到底有没有 同样的啊,调用上面这个方法,我直接把它复制下来。 好,这里的话还有一种情况有可能是它的啊, latex 表达式可能是不正确了,所以我们这里也做一个提示, 这里呢我们没有捕捉错误啊,所以不需要加这个, 给一个啊警告,然后直接返回。 那么如果 svg 是 存在的,我们就尝试一下, 我们先将 svg 先把它训练化为字母串的形式, 然后呢我们去创建 svg 文件的 bob 对 象。 好,然后我们去创建一个啊链接 url, 那 么我们再创一个 image 对 象去加载 svg。 好, 这里图片加载完成后,我们就开始进入处理 这里,当图片加载完成后开始处理, 我们这里创建一个 canvas, 然后我们设置 canvas 的 尺寸和图片保持一致。 好,我们这里设置它的宽度和图片的宽度一致,然后是啊高度, 然后呢我们去啊获取二 d 图, 然后我们将图片复制到 canvas 上, 这里导入图片, 然后我们这个时候就可以将 canvas 内容转换为编辑格式的 blob。 看,这有一个方法是 to blob, 然后我们创建一个 png 图像的啊,链接幺二幺。 好,那么我们现在呢,就已经获取到 blog 文件了,也 blog 的 数据了,我们现在既然啊拿到了数据, 那么我们就可以把这个数据传到我们的 e d a p i 中, 我们看一下我们要传入的这个 api pcb 内啊,多边形数学类 啊,就是这一个, 那么在这里面我们要传入我们的 drop 数据,然后啊图像的宽高, 这里的容差简化平滑啊,这些呢是和我们导入图片是差不多的,我们可以啊,在 a 中去看一下 我们导入图片, 那它实际上也就是这一个的数据,那么这个数据呢,我们要生成了具体的这个公式的。呃,图片之后我们再去调整,所以我们先空着。 好,然后这里啊,不要忘记把分号打上,我们接下来呢,去进一步创建 pcb 的 图源,我们现在获取到数据之后就可以创建图源了, 我们可以先看一下啊,这个 返回值。 好,那么我们再看一下我们需要呃的图像的,这里创建 图像圆出去,复杂多边形。好,那我们继续。嗯,再写一个串, 我们先看下,我们要啊,传入的。 好,我们先来看下我们要传入的这个几个, bbox 左上点坐标 x 以及 bbox 左上点坐标 y。 那 我们肯定是在原点去创建这么一个啊图像,所以我们这里就直接设置为零。 然后是我们的啊复杂多边形数据, 然后是我们要创建的一个层吧,对,这个层,我们要创建的这个层呢,是在文档层,好,抠下来 再看一下,还有什么要传进来的啊?宽和高,宽和高,那就是对应的图片的宽高。 好,我们这里,哎,少了一个逗号。 好,这个时候应该是没有什么问题了,然后我们继续把这个错误捕捉的给它写进来,这里少一个分号。 好,错误捕捉,错误捕捉的话跟前面我们前面的这个一样, 我们这里呢,错误就说明就不是这个了,是图像图源创建失拍 好了。然后我看到,啊,我们刚刚是不是还有一个少了, 这里 canvas to bulb, 这里后面 还缺少了东西, image 啊,杠 p n g 类型好分好。 然后啊,我们在这里啊,在这个的后面 啊,还要去做一件事情还要去做一件事情。我们要啊设置图像,呃,图片的原,然后去加载, 然后我们这个时候啊,这个图片就应该生成成功了,我们这里就打一行啊,吐司消息,这里就啊不是 excel 了,这里应该是成功, 我们要提示一下,生成成功,位于文档层 坐标原点处,好,把这个错误去掉, 因为这里是成功了,还没有错误,然后我们在这里才是 try, 所以 在这里要啊加上错误捕捉,这里的错误捕捉呢,就跟这个一样,把它复制过来, 好对齐一下。然后这里呢是生成失败了。 好,那么到这里为止,我们的啊,这个 netx 这个插件啊,就已经完成了,那我们现在呢,就可以去验证一下,看一下有没有什么问题。我们这里就直接 build 一下。 好,看样子是创建成功了,我们看一下,刚刚还没有点保存呢,我们重新再 build 一下。 好,看样子也是成功了。检查一下,确保没有什么问题,那么就可以到 eda 中去试一试。 扩展管理器,导入扩展好,选择文件,这里的文件路径,把它复制一下, 我们不需要外部交互功能,看一下 latex, 看有没有。哎,这个也行吧,这个圆点是空白的。 看样子应该是我们格式化有问题,我们看下是哪里行,可能不太对,没有对齐,我们重新格式化一下, alt shift 加 f 格式化,然后再去保存, 再重新 npm run build, 构建一下。 好,构建成功了我们再进来啊,把它删了,删除扩展,重新导入,重新导入扩展, 哎,现在就可以了,我们可以生成一个啊公式看一下。 伸展成功,哎,我们在远点可以看到了,但是现在他的这一个啊,字体还有一点点弧,那么这个字体有点弧的话,我们就去调整一下, 我们需要的, 我们需要的啊,这个我们看一下啊,是在内 pcb 里面里面去创建啊,再辅它多边形,这里面有一个容差,把这个容差啊略微调高一点点看看。 好,我们把这个容差调到,呃,零点三,零点三试一下 重新 n p m run build 啊,先保存 好,已经 ok 了,我们再来看一下,把原来的放一边做参考,然后再把这个扩展删掉,重新导入 natx 表达。是啊,这个看一看,哎,是不是好很多了?是不是好很多了?那我们现在我们的 natx 的 这个公式显示这个功能就已经做完了。 我们还有一个是 markdown 的 这个功能。好,我们 latex 功能做完之后,就先放到一边,然后看到 markdown 这里。好,那么我们接下来来完成 markdown 的 部分。那么在 markdown 的 部分呢 啊,我们可以把原来 latex 给放过来,然后 因为啊 latex 这里面的一个预览窗,我们是上下结构,但是在 markdown 里面,我们打算是左右结构,就像开源平台的 markdown 编辑区一样,左右结构,左边编辑,右边预览。呃,所以这样的话呢, 那么我们还是,呃,还是把还是把前端页面重新重构一遍吧。 后面的 js 部分其实又很好说, js 部分的话,呃,相对来说基本上是一样的,基本上是一样的,原理上基本一样,只是我们可能有一些要稍作变更。那我们先进来之后啊,把名称改掉 啊,同样的,这里给它改掉, 这样的话啊,先导 html to canvas 迷你点 gs。 我 们之所以要用这个,是因为这个库呢,可以把 dom 转换为图片,而原生的 canvas 是 没办法把 dom 转换为图片的,所以我们现在呢, 还缺少一个啊 markdown 的 一个啊处理的库啊, m a r k e d markdown。 好,这里已经安装好了,我们找到呃呃 market 这里,在 lab 下面找到 emd, 点 gs, 把它复制, 然后同样的放到我们的 gs 里面。好,这里面呢就把它导进来 好了。那么我们啊现在先把啊前端部分的页面给它重构一下,换成左右的这一种。同样我们也要用 diy 啊,因为 markdown 的 编辑内容比较多,所以我们这里用的是这一个输入框, 同样给一个提示,再次输入 mark 到文本。 好,然后我们要实现的是左右域栏,所以这里再加一个 div, 在这个 d i v 里面再套一个 d i v, 然后在这里面打上我们的标题 啊 预览,然后创一个按钮生成, 这个按钮生成其实和后面我们在这里的是一样的,因为我们 markdown 也是啊,转为图片 boom, 然后在啊生成的旁边啊这里创一个 d i v 作为预览, 然后还给上 id 看下面。好啊,虽然现在的界面看的比较丑陋,但是我们把 style css 加进来就会好很多了。 好,那我们现在开始写啊 css 的 部分。首先啊玻璃,玻璃其实跟前面一样,可以直接拿过来 输入窗口,也可以利用上, 这是我们这里的。呃,输入窗口应该是这一个文本的窗口, 在这里的上方有一个 class。 好, 现在呢,它又是一个啊,左右的一个结构了, 把这里关掉,现在就是一个左右的结构了,这里的间隔还可以再还加大一点。 好,然后呢,我们去编辑这个输入框, 我们前面的颜色保持一致,同样加圆角 啊,静止拉伸啊,不要给它拉来拉去的。 好,然后我们看一下啊,还有哪里需要去加的?我们刚刚加的是这里,然后到啊,这还有个 div, 这个 div 呢,就是预览 啊,这个 div 预览区的 div, 这个预览区的 d i v。 啊,我们刚刚好像也有一个预览区的 d i v。 复制过来。 好, 但这里我们发现它是不是太窄了,还是要调整一下, 这样子才能让它对称嘛。 颜色,背景颜色不管它,圆角不用管啊,应用保留,然后显示这里。哎,都保留, 那么我们接着继续啊,接着继续到这个 d i b 头部的 d i b。 好, 然后是这个开头,开头的话,我们前面那里也有一个开头, 这个开头的话就直接 啊,直接就设置一个字体大小和颜色。 好,然后我们接着去继续。到了 啊,生成,就生成的话,就直接用之前的吧,之前不是有一个按钮的吗?啊,把这个复制过来。 好, 然后是 我们这里有一个 id 是 html 预览区域的,我们这里把这个预览区域的也加进来, 同样呢,这里我们也要给它创一个啊,滚动条 x 轴方向也创一个。 好,我们还要去啊,创一个代码块样式, 那这就不是一样的吧。 好,重新开一下预览, 看下哪里要调整一下 跟盒子相关的。这里我们啊设置几个编辑 间距,二十 p 叉,然后是这个啊,空间 好,现在就好多了,我们现在的啊,页面就已经完成了,那么接下来就是啊加 script 的 部分,前面已经导入了这这几个库,然后我们后面就接着完成加 script 部分, 那我们这里的输入全部替换掉。 好,我们输入,然后实时预览,这里不需要去啊,删除空格, 呃,这个是 latex, 这个也把 latex 的 给换掉,改成啊, md text 好, 我们,呃,接着看一个输入监听事件啊,那么这里面呢, 肯定是不能用 mask 了,这里面我们肯定是要去改动的,所以这里就删掉吧,然后我们这里重写串 补珠, catch 啊, yellow, 呃,错误显示的话,保持一样肯定也是掉 eda 的 这个 api。 那 你这那,这里我们就是 markdown 的 一个解析。 好,然后啊,这里一看就要比我们之前啊 latex 要简单多了。 latex, 我 们这里的实时解析用了这么多行, macdunk 这里只用啊这一点点就够了。好,然后是深层的部分,那么在 before 之前的啊,这几行我们肯定是还用不了。然后 前面,这里, 前面这里应该可能也要去重写 啊,这里删掉了,然后我们这里就不是 svg 的 判断 啊, 然后是插入这里,这里的话我们略微和啊前面方法不太一样。 这里呢,因为他是将 dom 去转为图片,而我们这里的预览窗只有这么大,所以你如果说直接截这个预览窗里面的内容啊,截预览窗里面内容,那他肯定 啊生成的啊,这个,这个,这个图片它是一个不全的,它只有一半,而且也容易截到滚动条,所以我们这里要去啊刻拢一个副本, 当然你们也可以自己去试一下,因为我之前的想法就是直接去 截取,但是确实是情况不太乐观。好,那我们这里就直接创一个啊副本 啊克隆。 好,这样我们全部给它克隆一下, 我们把这个 啊克隆到屏幕的外围去, 这样就看不到了。然后呢,我们把这个 啊添加进来, 那么这个时候我们就可以去调用 html to canvas, 把 dom 转为啊我们的 canvas, 需要转换的 bob 数据。好,那么我们现在就直接啊转换 ctrl 窗口, 然后这个时候我们把副本给它清除掉, 那么我们现在就可以去转换为 pdf 文件了。 这里呢,就和啊前面的是一样的, 呃, p n g u i l, 这里其实是,呃,用不到了, 看一下 这里应该是没有,这里应该是没有什么问题,是我们这里的名称啊,不是 i m g, 是 chaos, 然后这里也是 零点三,还是用原来的数据看一下好,然后接下来的其实都是一样的,后面的逻辑都是一样的,因为我们 前面就是要得到这个 bob 数据,然后后面的所有创建图源,这个就是完全按照一对 a p i 的 方法去写, 看一看我们前面这里是不是删了个什么东西,这里多了一个删掉,然后这里的 i m g, 这里也不用, 这里也不对,哎,这里也不对,对,这里也不对,这里要换掉, 嗯,应该是,应该是没有什么问题了, 应该是没有什么问题了。好,我们保存全部保存终端,新建终端啊, biu 一下。 好,看样子是构建成功了。那我们就直接,哎,看一下能不能转 markdown 了啊, 看看 doc tools, 嗯,不需要,也不交互。 markdown, markdown 解析错误,看样子还是有问题, 再来检查一下。你看到这里这个地方啊,是不是不对啊?应该是 html 啊,现在应该没问题了,因为我们是移植的,是从 latex 移植到 markdown, 所以 啊,难免会有一点点错误。全部保存,然后再去 n p m run build 构建下,我们再验证一下,看下还有没有问题。 好,我们再导进来看一看。 嗯,看样子是可以了 啊,看样子是可以了,看样子是没有问题了。中文测试 生成成功,哎,可以了,看样子是可以了。呃,那么这个精度还是要调一下啊。这个,呃,这个值还是要调一下, 这个容差还是要调一下。容差,我们看它越大啊, 越大睿化越严重啊,越清晰,让我们稍微调大一点点。 我们刚刚调的是多少?零点三,调到零点四五。好,我们接着是。哎,一并把窗口给处理掉,我们现在窗口看到没,很高,我们这个窗口很高,他 降下去一点,然后在 markdown 这里的话,应该往两边再扩一点点。好,我们现在开始。那么啊,窗口的调整是在 s r c index 里面,我们把这里我们一开始设置是五百,这里调到, 呃,三百,看一下,这里我们要让它再宽一点,调到七百,然后这里 四百。好,这里我们就应该来说是差不多了, 然后对于啊详细的数据转换,我们可以去切到啊, debug 模式下看一下, 因为我们是直接按照了 api 给的数据格式去转换的,我们还没有看过 debug 模式下的日记,这里加一下, 把刚刚的改动编一下,先全部保存 好,这里引下去。 那么进入到 debug 模式看啊,你要按三次 f 十二, 连续按三次 f 十二,它才能进到控制台,我们可以看到啊,这里有很详细的日期,那么我们可以把我们刚刚编辑的插件导进来了看一下。 好,我们可以去把这一个数据打印出来看一看啊, 然后啊 u r l 也可以打印一下,这样子我们可以把图片下载下来,把这个图片下载下来之后,我们再导到那个图片编辑器中去,看一下我们到底要调到哪一个值,它的转换效果最好。 然后,呃,我们看一下还有哪个数据是可以弄出来看一看。这里的数据也可以弄出来看一看, 在 markdown 里面,同样的 同样的 全部保存,然后编辑 好,一切就绪,我们导入进来把。哎地址复制一下, 复制路径, 呃,看一下, 你看现在这个高度稍微好一点,我们还可以再往下去缩一点点高度就更好了。转换之后,这里有一个啊 blog 文件的链接, 这个文件的链接我们抓包也能抓到 啊,这个文件链接在这里, 我们可以去把这个用截图功能啊,用截图功能把它截下来, 截图功能给它截下来,然后把它保存到保存到呃,图片中。好,先留一下,然后我们在这里看一下我们刚刚打印的一些数据, 这个就是转换后的复杂多边形数据,然后这个复杂多边形数据传入到我们创建图像的方法里面生成的图像圆 图像图源数据。好,这个就图像图源数据啊,就是我们生成的这个图像图源数据,我们可以看到这里的字体,我们可以通过。啊,刚刚我们导入的啊,我们刚截图的图片,要把它导进来来看一下到底调到什么程度下,它会更清晰一点, 感觉在零点三四左右, 零点三四左右是比较清晰的,那么我们啊,在我们的 netx 点 html 把这个值改到零点三四,我们这零点三很接近,零点三四左右就很清晰了。 markdown 的 话也是一样的, markdown 的 话也是一样的,我们 markdown 打开 生成一下,然后看看啊, markdown 转换出来的图像图源数据在这里, 然后我们传入到了创建图像的方法里面生成的图像图源的数据,然后我们去网络下看看能不能获取到,看到可以获取到的,我们可以把这个图片啊,同样的,哎,这里可以直接保存,可以直接把它保存到,呃呃, 图片里面。好,然后在这里面给他导进来看一看,到底在哪个清晰度啊,哪个容差他的清晰度最高。 差不多零点四九,零点四五,零点四九,零点四五吧,差不多。我们看一下,我们就可以在我们的代码里面给他改到零点四五的啊,我们这里就是零点四五的值,那就不需要去改了 啊,我们再看一下我们刚刚改动的窗口,呃啊,这个窗口已经可以了,这个窗口啊,大小也正好合适。 那我们整一个啊,这个 dos tools 文档 插件,文档工具的插件就已经啊开发完成了,那么我们现在如果要上传的话,我们还需要做以下几点,我们要去 change log 里面啊,把自己的变更日期写上去。 嗯,我怎么还没有编辑权限吗?可能我这这个键盘是不是有问题了啊,那,那就,哎,可以了,这电脑反应太慢了。好, 这里呢,我们就是初设版本,然后你可以把你新加的功能。好,我把新增功能写上来 看,我们在写全指 look 时候用的也是 markdown 啊,所以呢,我们这个工具还是很实用的。 新增功能一,支持 markdown 啊, 文本转啊, pcb 文档层显示啊,我们还做了一个什么功能呢?还做一个啊, latex 表达式。 好,那我们创建 log 就 已经写完了,然后 readme 的 部分呢? 同样的啊,这里我就不去详细的写了, readme 这里呢就是写你的,呃,操作说明,你这个插件要怎么用怎么用,那我这里就不去写它了。 好了,那我们的插件开发呢,就差不多,就, 那我们回到 ppt 中,我们对我们所有的内容做一个简单的总结。 在本讲内容中,我们从零开始构建了一个 docs tools 文档工具,现在你可以通过 markdown 和 latex 表达式来生成布局美观的文档和复杂的公式了。在此呢,也欢迎与我们共建好用的加一创 eda 编辑器插件生态, 也欢迎大家使用加一创 eda 扩展 api 来创建更多好玩有用实用的 扩展插件。我们我们今天呢,主要是,嗯,根据拓展插件的征集令给大家开个开营仪式。本次的活动时间是从 一月十六号到三月三十一号,我们其实活动是持持续很长的,只是这个是我们是第一期的一个活动,所以它是嗯维持的是接近三个月的一个活动流程。呃,活动时间 我们的参与的对象是不限的,你可以是嗯开发者,你可以是工程师,你也可以是创客团队,只要你会写代码,然后然后 会使用加密创 e d a 软件。你写的这些插件的话可以分为这几种。我我们这边只是举例,比如说嗯效率类的,就一键泵泵表整理,然后智能布局助手以及批量的处理工具。 然后还有第二部分就是专业增强的,比如说仿真的格式化呀,以及模块的一些分析这样子的一些插件。然后第三个部分就是生态的连接链, 嗯,供应链查询或者是生产文件的优化,像这一块是属于生产连接类的。而第四个就是学习辅助,辅助类的,嗯,电路教学工具以及调试的模拟器设计规范的检查这些这四种都是 ok 的。 嗯,当然我们只是举例,有这四种都嗯是可以的,然后如果你想要做其他的也是也是没有问题的。我们只是嗯举例给大家,然后我们的审核标准就是嗯用户体验优先,就是 我们会呃会有给我们,嗯,大家做完这个插件传上去了之后我们会有审核,审核完了之后,呃上传上去,上传上去了之后我们会邀请大家来我们的体验,大家写的一些插件,然后给到我们一些反馈。 所以说我们的审核标准,第一就是体验优先,用户的体验,比如说页面的设计啊,交互逻辑这一块的,然后其次就是我们的这个代码质量也是非常的重要的。 然后第三个部分就是使用价值一,一定要解决真实的一个问题,比如说针对某一个场景有明确的应用价值,以及提高我们整个画图的一个效率。 然后我们针对嗯来参与我们活动的开发者是有一定的奖励的,比如说基础奖励,只要你符合我们这个征集令的要求,然后并且审核通过,就可以获得五百元的基础奖励。然后 嗯到了季度的时候,就是比如说这个月的评选是在嗯这次的活动就是在三月底,三月底我们就会进行一次季度的评选,然后第一名的话就会有三千块钱加荣誉证书,而第二名就是两千块钱加荣誉证书 啊,第三名就是一千块钱加荣誉证书。我们整一个的那个激励的奖励还是非常的不错的,就是只要你通过我们的审核了之后, 嗯就可以获得五百元的基础奖励,你也可以选择现金或者是京东一卡。然后额外的奖励就是我们进行就是三个月内嗯大家上传的一些插件,然后我们进行评选,是由我们官方进行评选的,然后 会赠送大家额外的奖金,因为我们也知道开发也是非常有难度的,所以说我们也希望大家的嗯知识能够能够得到尊重。

大家好,今天呢给大家详细讲解一个 p f c 升压电路,这个呢是一个矿机电源啊, 矿机电源,挖矿电源,十二伏的十二伏电源, 这是它的这个 p l c 部分啊,右半部分是它的 p l c 部分, 我们今天呢要分几只呢,把它详细的讲解一下啊,详细讲解,他们讲 pf 电路也是个典型的 bose 的声压电路,所以说呢, 咱们把这个电源呢 p s l 给大家详细讲解一下呢,大家呢抵达住 有深刻的了解,同时呢这个电源呢前期也有故障,这个我把它维修过程呢也给大家讲一下, 这时候在我维修的时候呢,嗯,把电路画出来了,跑跑线路跑出来了。那么今天呢,我们要先讲一个芯片, 因为什么呢?你要讲这个 p f 四电路呢,必须要讲这个 p f 四控制芯片啊,它里边有些什么结构,它有什么功能,大家 必须了解啊,那样才能够整个对这个 ps 点录呢,呃,要充分的理解, 这个芯片呢是这个 n c p 幺六五四 b d 六五二 a 制啊,那么我就把它呢给大家,今天呢主要是讲它 分子一片幺六五四,它使用以针眼强大的 p f c 升压电流控制器啊, 它是美国这个阿斯美慕斯产品图片及它的型号,它呢这个幺六五四呢?嗯,这一系列的 主要有三个频率啊,三个频率,因为他内部设计一个固定频率啊,甚至没有固定,他有三个固定频率可以供大家选择,供设计这个选择,第一个是 b d 六五二二级六五,它的这个私印,私印标明标注是无四 b 六五啊,无四 b 六五,无四 b 六五,就是六十五和六十五才合, 还有五十 b 二百 b d 五四五四 b d 二百,也就是五十 b 二百,它的赔率是两千赫兹。还有一个是五十 b d 幺三三啊,它 一百三十三盒子,大家要了解,因为他这个根据咱的后面的后缀啊,他频率是不同, 它的一般特性,第一个它是平均电流连续导通工作模式啊。第一,首先它是连续导通工作模式啊, c c m, 也就是说它的这个升压电感电流呢, 升到一定程度以后开始下降,没有完全下降到零的时候呢。第二个周期又开始来了,这就叫 ccm 联手工作面试,而且它是受控于平均电流啊,平均电流, 咱们说有风机电流啊,还有平均电流,它是平均电流啊,功能 快速顺摊响应啊,增减嘛,极少的外部元件,咱们选择增减,外部元件比较少。再次呢,启动电流和关的电流都很少啊, 又是消耗啊,功耗又低,而且呢,他又是个图啊,图虫柱驱动电路正负一点五安的, 一般的功率它可以驱动啊,一般的一般的功率的话它可以驱动啊,大的功率呢,它还是不行,它还是要啊增加驱动。咱们刚才讲有这个三个里边增长器,它 完全支撑的内部支撑的三个频率可以进行选择,可以进行选择, 注重需占控笔控制锁神 p w m 啊,它是一位 p w m 控制器啊,通过占控笔的变化来进行控制啊,它里边有这个占控笔锁尘 p w m 控制器, 还有内部调整的一个内部接近电源二点五辅料内部接近电源,供内部供电。 带磁质的天涯闭锁啊,天涯闭锁功能,他带有磁质功能啊,软磁 还有关机功能。咱们现在看一下他的引脚功能,引脚 它是八个角的啊, soft 八贴片工装的,一角的接地二角 v m v m 这个引角呢, 它是 p f 四占空笔调制,提供电压,为这个占空笔调制呢,提供电压危害 p f 四电路的输入主抗与外部连接到此阴角的电阻 r m 成正比。如果将外部电容 c m 连接到阴角,那 器件以平均电流模式工作,否则他在峰值电流模式下工作。看我们下边这个图, v m 这是 v m, 外边有一个 r m 电阻,还有个 c m 这个电容。那么 咱们讲呢,因为这个六十五柴赫这个芯片,它的工作在平均电流,所以说它的外部要有这个电容,并连这个 c m 电容, 就说的就是这个意思啊, c m 如果是有这个 c m 的话,那么它就是工作的拼接的模式。三角 c s 电流反馈啊,引角提供于电感电流 i l 成比例的电流 i c s 这个颜色电流呢,用于过流保功率限制,占控给调制。当然这个电流超过 二百 vi, 应该是 vi, 这个地方错了,不是二百啊,是二百 vi, 二百 vi, 那么化疗保护就被激活,驱动输出就被禁用。咱们来看看这个头啊,三角 c s 这个有个电阻,上面呢是个分流电阻,分流电阻呢?我在这呢没有完全把它画出来,咱们可以通过 这个图来给大家看一下 b c 六六五四 cp, 看看这个图,我就是充下截图了,不过没截完整,看他这个这条线过来接到这个反馈电流,反馈店主 r since 这个电阻上面反馈电流 i l 和这个 i l 它是一样的,是这样 通过电容这样过来,所以说呢,他反馈来的这个电容和他的这个 l 上面的电容 电流呢,它是成正比的,就是这个意思,它是成正比的 啊,当超过二百 vi 的时候呢,就被激活, 也就是说这个地方看简单看一下,因为它的镜像,这它的镜像电流,这里边的电流和外边电流是一致的,看到吗?那么说它的 ics 在这个地方里边就体现出来了啊, 那么这是电流镜上,当这个电流大于二百 vi 的时候,这个过流保护就启动,还有 这个,当他这个伏氨特剩大约二百微伏氨的时候啊,过载限制,过载也可以启动过载保护, 大家要知道这一点就可以了,所以说呢,这个限流电阻呢,有时间呢,你不能 这个损坏,损坏了有时间的功率呢也达不到啊,就是这个意思。第四角, 第四角是在这个,它是一个,从这个英文来看,它就属于这个输入电源欠压保护啊,欠压保输入电源检测输入电源的,所以说在整流输入电 呀和碧欧银角 d 之间牵着一个电阻网络,并在这个网络之间连着一个电容。好,那么他的检测与平均输入电压成正比, 当这个电压递他的时候呢,那么他就说明你这个电源低输入条件满足了,那么整个电路就关闭,输出驱动器就关闭了, 保持低电频,直到它超过这个高准电压啊,因为它是由一个一个低点一个高电压啊,这下呢简单的看一下,然后我给大家解释一下, 就是这点, a、 b u 外边有个电容,外边 电阻啊,实际上他也是飞压,通过前面飞压啊,通过整流输出以后,通过飞压电阻得到一个电压这样一个电容,那么当这点电压 达到一点三伏的时候,他就会增加,他就会工作啊,这是标称是一点三伏,那低于零点七伏的时候呢,他就会关闭啊,当他升到一点三伏以后,他就会恢复啊,就这就 这点呢,它也是检测这个,嗯,这个输入电压啊,输入电压,嗯,低不低啊?输入电源,如果说电压低的话,它会 呃关闭,不会工作啊,他这是属于欠押啊,欠押,欠押锁定,欠押锁定, 它就有有智慧功能,从这个符号就能看出智慧功能,低于零点七的时候啊,它就会关 升升,不是超过零点四伏就可以了,必须升到一点三伏他才会启动,他有个回制过程,智慧过程。 第五角这个控制角,控制角,控制角,它主要是呢外边一个补偿电路啊, 这一点外边有个不上电路,他是可以控制带宽和他的公里数啊,使他的公里数呢?嗯,接近于最大的公里数,这点还有个最大的功能,他是属于呢软启动,他有软启动功能, 看燃气的功能。我们来看一下第五角这个, 这里边有个网络 r c 串并联网络,串并联网络, 通过它呢里边的电流源给这个地方呢电容呢啊,充电,给这个电源充电,所以说呢,它是具有这个软启动功能,功率呢是通过 输入电影处理 es 电路啊,一点点的加大啊,它具有原启动功能啊,原启动功能 第六角,第六角就是反馈角了, redback 啊,它是 p f 四电路输出电压的反馈色号啊,反馈色号,那么这里面呢,这个角呢就功能就比较多了,一个是 你输出电压高了,那么就有过压保护,输出电压低了,那么就欠压保护啊, 那么具体的值上面都有标明啊,当大于这个机均电压了 分之一百零五,今日呢他二点五伏,那么一百零五是多少呢?就是二点六二五伏,大家可以自己算,这个呢,低于百分之八,那么就是,嗯,二点三伏啊, 这个咱们可以自己测试一下,到这个时候呢,他就会有保护,那这里边就说明了,第一个是当电压超过 碳耗电压力百分之一百零五的时候呢,他这个地方就启动过压保, 这个低于百分之八的时候呢,那么他就会欠下保护啊,欠下保护, 但还有这个啊,输出 d 检测啊,功能等等,这个地方呢,它可以 自己呢看我在这就不详细的讲了,这个地方是输出通过,输出电压反馈通过有非压电阻啊,非压电阻反馈电压, 这是我们的尾数的时候呢,这个点我们是要经常检测的,还有这个点啊,也要经常检测 电流呢,一般情况下呢,当这个功率不足的时候,可以检测上面那个检测电阻啊。再就是供电单啊,供电单, 这是它的输出展,八角是它的输出展,看这剩了个八角了,带这个七角的供电电源,供电电源呢,这里边 su 两个数字,十点五伏和九伏。十点五伏和九伏是什么意思呢?就是说这 一个是过压,一个是欠压啊,过压和欠压 再次启动电压,启动电压的十点五,只有达到十点五伏才会启动,低于九伏的就关闭九伏低低于九伏的地压了,所以他的工作范围是九伏到二十伏,九伏到二十伏之间。八角呢是他的图腾柱, 三级驱动啊,通过用三级驱动,具体在这呢。呃,咱们今天呢就说到这,明天呢我会给大家讲具体的 这个电路。啊,具体这个电路大家呢先消化一下这个芯片,因为呢讲到具体电路的时候会要用到一些检测点。好,再见。

我们的书写顺序跟我们的这个是没有关系的,对吧?我们的书写顺序你可以想怎么写就怎么写,并且有一些银角是可以悬空的,这是我们讲的关于这个毛块利化的这样一种写法。好,这是在这又强调了一下毛块如何利化, 那关于这个模块利化的事情呢?实际上有一个比喻啊,我这是我,我想出来一个比喻,就说我们之前也写过,其实模块利化的意思就什么叫模块实力化, 那我们的一个 model 或者说一个模块,对吧?我们可以把它想象成一个饼干的脖子,然后呢我们的 实力就是一块具体的饼干,他们的实力化 就是用这个模子,用什么模子?用饼干模子,对吧?用饼干模子 制作一块饼干的过程,这个是我们的所谓的实力和实力化的一个 一个比喻啊,希望大家能够理解这个含义。那就我们有了一个某某某型号的芯片,那具体你要用的时候,你是不是要去采购一个某某某厂家生产的某个芯片,然后拿过来具体来使用,而你具体的那个芯片就是所谓的实力 啊,这是关于我们讲的这样一个力化,所以力化呢,其实是非常常用的, 让成语的歌还没关,我这因为听不到声音,老是会忘掉。好了,这是关于我们讲的实力话啊,实力话好了,这个我们就讲完了,这个就讲完了, 那么这个呢?我们也讲完了啊,刚才已经给大家详细的讲了,这个里面自己下去看课件的时候看一下就好了。 这个,这这个内容我们都之前都演示过了,而且详细的讲啊,那么接下来呢,我们来看一个我们的基本的语法,如何来写我们的这个逻辑啊?写逻辑第一个就是组合逻辑的写法,那么最常用的一个组合逻辑啊,就是啊塞这个东 东西啊,善用于写什么,这个我们在这要要知道一下啊,简单的组合逻辑,我们就用谁来写啊?善来写。复杂的组合逻辑,我们用什么来写?我们?我们在这先总结一下啊, 用 always 块儿来洗,然后呢持续逻辑呢?我们也用 always 来洗。 好,这样的话,也就是我们实际上写组合逻辑和写持续逻辑你就知道了啊,简单的组合逻辑我们就用散来写,复杂的组合逻辑我们用 ovice 块来写,而持续逻辑都是用 ovice 块来写。 那么我们看一个例子,比如说啊,三 a 等于 b 与 c, 这个我们看过刚才的例子。 第二种方式呢,我们可以用实力化的方式,那么现在我们看到这种就应该会了,对吧?谁跟谁相连, 这实力化这种方式非常接近我们拿逻辑图搭电路的过程,也就是我们的这个实力化,实力化的过程,实力化的过程和我们用面包板搭电路的过程是一致的, 也就是我们在面包板上我们要买来一些芯片,然后谁哪个银角跟哪个银角相连,你是不是要拿导线连起来,你要查这个图,知道谁跟谁相连, 当时我们是这样来连的,现在我们只不过用语句来告诉他,谁跟谁相,这就是他们的区别,所以本质上他们是一致的啊,这个过程是一致,这就是实力。 再下来就是用 always 块,而 always 块是非常常用的,而且在我们使用的时候经常会出现问题,就会出现在这里,在使用 always 块的时候会出现诸多的问题, 那么这个里面呢,我们要接下来我们来看一下我们具体的我们的这个 always 块是个什么意思呢? always 块呢?我们也把它称为过程块,他是过程块的一种, 我们这里讲的是芯片设计里面的逻辑设计里面的语句啊,刚才的那个引力,他后面还有个引力手,引力手我们刚才时间已经用过了,对吧?那是在写台词的奔驰里用的, 我们重点讲呢,讲这个逻辑设计里面的这个内容,所以大家要区分这些语句哪些是用在我们的这个这个 逻辑设计当中的,哪一些是在 tes 的奔驰当中的,那我们在这要注意一个在可综合语句,是吧?还有一类叫做不可综合语句, 那么这个呢,往往是在 tus 的半尺里用的,而这个呢是在我们的芯片逻辑里用的。 那我们具体到刚才的内容,那这个就是在满 nd v 点微里写,这是在我们的满 ndtb 点微里来写的啊,这个大家一定要清楚, 是我们会学到很多的语句,有些是可综合的,有些不可综合,我们到时候会讲的啊,讲的过程当中大家要注意,那么这是我们说的这个过程块,那么还有一个就是我们刚才看的啊赛过程块啊赛还有一个 实力化的原件,他们之间,他们之间是并行的,在这里要强调一个概念就是并行的, 那就是我们的这个病形非常重要啊,思路跟以前就不一样了,那什么意思啊?我们在这里给大家举一个例子,比如我们写了一个啊三是吧? a 等 y 等于 a 与 b, 啊三 y 二等于 c 与 d, 那么这两句话写出来,如果是在 c 语言里,你会认为啊,这是第一句他先执行,这是第二句他后执行。而实际上在 very lug 当中,他不是这样执行,他是怎么执行的? 他是这两个语句同时执行,产生我们的输出,也就说我们的玩和玩 白衣会同时产生输出,这就好比我们的这个芯片,我接好了,我爱,接好了,我爱二,电路也接好了,我一上电,那我们的 y 和 y 二都会产生结果,而不是说谁先谁后的问题。所以这就是什么病型的概念,这个只有在我们的 这个 vrog 当中,在我们的这个硬件设计当中, h 第二描述语言当中才会出现另外一个,这是我们说的啊,三人之间是并行的,刚才的实力化,比如我先写了一个优一,对吧?我先定义了一个 and, 比如优一, 然后又写了一个 and u 二,那么这两个渔具之间也是并行的,那么他们之间也是并行的。还有一个就是我们的凹位子块,这有个凹位子块,对吧?这还有个凹位子 块,这是第一个 always, 这是第一个 always, 这是第二个 o with, 那他们直接也是并行,那也就是我们这写了这个六句话,对吧?这六句话都是并行执行, 但是我们要注意的一点就是我们的这个, 这个里面他是什么呀?串型, 串型的这个意思就是跟我们的 c 原理是啊,一致的,所以这个大家要搞清楚的哪一些是并行,哪一些是串型,非常重要啊,非常重要,就对于我们理解这个编程,理解这个 hdr 的运行的 过程流程是非常重要的,你要弄清楚哪一些是病性执行的,哪一些是创新执行的。也就是说我们的这两句话,比如我调一下,把这个写在前面,或者 y 写在前面,他们是没有任何区别的, 并不会说,因为你写在前面他就先执行,写在后面他就后执行,但是这种在 c 里面是无法想象的,对吧? c 里面那一个两两段话,比如我负 c 里面,比如我写了两句话,对吧? 应测,如应测 a b, 对吧?然后 a 等于三, b 等于四,那么一定是这一句话先执行,然后是 才有 b 的值, a 先等于三,然后 b 再等于四,这就是创新之心的过程,希望大家能够重点了解这个东西,重点掌握这个啊,就是 b 型的 概念,也就是和我们的这个次序没有任何关系,这是我们要强调的,对吧?这是我们要强调的。好了,这个注视我们说过了,对吧?用杠和 c 的注视是一样的,他还有一个单行注视,就是两个斜杠啊。 接下来呢,我们来看一下我们的这个数的描述数如何来描述, 那么竖的描述呢?我们比较常用的一种就是竖的定义,对吧?竖怎么定义?那么可以这样来写,定义一个竖给他一个直,对吧?比如说 四一撇幺零零幺,好,这是一个二进之数,非常长 用的。那么前面的这个四是什么意思?四表示是四位,那么这个后面的幺零零幺是一个二经之术,所以我们要在前面加一个 b, 那么这个 b 相对应的就是我们以前学过的 bin 或者 binary, 对吧?他的一个缩写。那如果你需要写一个这个, 写一个这个数的时候,一定要写明位数,也就是前面的这个数必须要写出来啊,啊,这个币是要写在后面的啊,这礼物了写在后面啊, 也就这个位置一定要写的,如果你不写,他就相当于是这样一个东西啊,就是多少位的,三十二位的,那么这个三十二位的实验就会大量的占用我们的资源, 所以呢,我们必须要写这个位啊,这不是推荐写法,是必须要写,如果你非要不写,那你的资源很快就用光了。硬件资源,那我们是三十二位的啊,他是,那好了, 那你还可以写成几禁止啊?还可以写成十六禁止,对吧?那我们的这个十六禁止,大家看幺零零幺,这是个九,对不对?那你可以写成四一撇啊。 h 九,对吧?也就是零九 可以这样来写啊。那么这两个相是一个意思, h 呢?就表示我们以前学过 h e x, 对吧? x s m 和这个石榴静置的表示, 当然还有实心制,对吧?实心制实行制,你可以直接写啊, 这是关于我们树的描述方法,但是这里面需要强调的一点,就是说,当我们的是树比较长的时候, 比如说我们有这样一个数,八一撇 b 幺零零幺零零零幺,大家看这数挺长的,是吧?如果你觉得不够长,那你可以写一个这样的十二十二位的数,三十二的数, 那你就会发现这个密密麻麻已经没办法看了,对吧?所以这个时候呢,我们采用一个什么样的方法呢?就是这样来写,八一百 b 幺零零幺零零零幺,那如果你是十六位的,那我们写个十六位的吧, 幺幺幺幺幺零零幺,大家看一下,这个是我们在看这一长串代码的时候就会非常的清晰明了,所以我们的推荐些吧。啊, 这是我们的推荐写法,这那个打打不出来啊, 这是我们推荐的写法啊, 就以后大家要把这个下划线最好写上,但是四位呢就不需要写了,是吧?然后每四位作为一个整体,中间用下划线表示,这样我们 就非常的方便,如果你要对照真纸表来写,也是非常方便的啊,非常方便。好,这是关于我们说的这么一个内容, 那好了,这样的话,我们这次的一些基本的内容就给大家讲完了啊,剩下的一些,剩余的一些基本语法,下次给大家来讲啊。 那我们这次课的这次的课就先到这,希望大家下去把这个消化一下,然后把阔特斯装起来,一定要用起来啊,一定要用起来,那我们这课就上到这,嗯,大家再见啊, 大家再见, 能在健康的人生之前。
