问题标签 [kicad]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5268 浏览

linux - 覆盖两个后记文件(命令行方法)?

我知道以前在这里已经回答了类似的问题:

...但是,由于他们没有直接回答我的具体问题,我会再次尝试询问。

 

我想知道,如何覆盖两个 postscript 文件:一个 - 一个徽标:

...在另一个之上 - 图形背景:

.... 在 Linux 中使用命令行方法。

 

重要的是,图形背景尽可能地保留其原始内容。因此,如果我能以某种方式将两个原始 postscript 文件内容保持不变(见下文),我可能会最高兴 - 但除此之外,我想知道如何使用命令行工具ghostscript来达到此目的。

 

问题 - PCB .ps 打印输出顶部的徽标

这是更详细的问题 - 我想在 PCB 板上添加一个徽标。我kicad用来开发PCB打印;完成后,我会导出带有各个图层的 postscript 文档。通常,我想让前面的铜层“镜像”;我经常尝试将 .ps 输出加载到 .ps 中inkscape,然后尝试在那里进行镜像。使用inkscape也很方便,因为可以很容易地在那里添加一个标志(然后将打印和标志镜像在一起)。

但是,inkscape用于处理 postscript 输出是一项昂贵的操作(因为inkscape加载、进行镜像和保存需要一段时间)......虽然,这里的主要显示停止是:处理后,一些尺寸可能会在输出文件中略微更改inkscape当目标打印小于一毫米宽的轨道时,它会产生很大的不同)。

 

所以,鉴于“绘图”命令有一个镜像选项——当然,直接从“绘图”命令kicad“镜像”图层打印对我来说要好得多;kicad输出又是一个 postscript 文件。tmp-Front.ps是这种(镜像)后记文件的一个例子。请注意,通常,“铜”部分充满黑色 - 我基本上希望在它上面有一个白色徽标。

现在,由于这个印刷品已经“镜像”了——如果我想在上面添加一个标志,我最好把标志也镜像。所以我火了inkscape;和:

  • 为徽标添加文字;
  • 通过文档属性设置:
    • 文档大小与徽标大小匹配,并且
    • 文档应该有黑色背景
  • 然后将徽标文本更改为白色填充;
  • 在徽标文本上执行对象/水平翻转;进而
  • 做文件/保存副本;
    • 选择 PostScipt (*.ps) 作为输出;
    • 在对话框中选择 PostScript level 2,然后
    • 导出前选择“将文本转换为路径”。

这就是logo.ps上面链接的生成方式(请注意 - 对于这些小徽标:没有“文本到路径”,.ps 文件(带有字体)可以高达 20 kB;而仅路径为 5 kB)。

但是,一个问题是 postscript 并不真正支持“文档背景”颜色之类的东西 - 显然您需要自己定义一个填充矩形:

...因此,如果您打开logo.ps,您将看不到任何东西-因为它包含白色背景上的白色字母。

观众

如果在 中logo.ps,则该1 g行替换为0.5 g; 徽标变为灰色(并且可见),并且在此处呈现在evince原始gs查看器下和gv

查看-logo.png

这是相同的比较tmp-Front.ps

查看-tmp-Front.png

值得注意的是,原始ghostscript查看器忽略了边界框和页面方向 - 甚至更成问题的是,如果您在上网本上使用 Ubuntu Gnome,那么顶部和底部栏可能会切掉一些ghostscript查看器窗口 - 足以让左下角的徽标角落是看不见的;并且由于“ ... raw ghostscript viewer gs ... has no real user interface ”,一个gs以裁剪徽标启动的窗口,无法设置为之后显示它。

 

连接覆盖的 .ps 文件内容

通过查看这些参考资料:

...我猜,原则上,应该可以连接两个后记文件的文件内容;如果合并文件中只有一个showpage命令 - 那么原则上应该获得两者的叠加(?!)。但是,我试过了,但我无法真正让它发挥作用。

如果这是可能的,我想以某种方式复制/粘贴 postscript 文件内容(从而避免文档尺寸/大小/分辨率的任何问题) - 然后可能使用translatepostscript 命令(请参阅Gnuplot 中的 Postscript 编辑)进行调整标志的位置。在 .ps 中打开“覆盖”(合并).ps evince,每次translate在文本编辑器中更改参数时都会刷新文档显示 - 因此以这种方式处理徽标定位应该相对容易。

 

但是,我也可以预见到这里的一些问题:例如,图形 ( tmp-Front.ps) 包含:

...而logo.ps包含:

...因此有两个主要区别:

  • 文件的文档大小不同
  • 比例(或者更确切地说分辨率/坐标系)也不相同

由于我根本无法将文件内容串联起来 - 我不确定这些差异是否会对覆盖产生影响......我当然希望它们以某种方式独立呈现;并且这translate将有助于正确设置它们的相对位置:)

 

那么 - 如果我想通过连接 postscript 文件内容来实现覆盖,我该怎么做?如果这太麻烦 - 我怎么能使用ghostscript(或任何其他)工具来设置覆盖?

 

非常感谢您的任何答案,
干杯!

 


作为参考,这里是提到的后记文件的副本(因为它们不是太大):

tmp-Front.ps

标志.ps


编辑:回复:luser droog的回答;如果我尝试按照 中的说明打开combo.psevince我会得到:

这可能与#414002 - gs -dSAFER: /invalidfileaccess with "run" operator - Debian Bug 报告日志有关...如果我尝试%!在开始时添加 PostScript 标头“”,我得到:

我也尝试过跑步ps2ps——结果如下:

0 投票
1 回答
5734 浏览

curl - Github API v3 不显示所有用户存储库

如果我键入此命令:

我希望它会返回所有 KiCad 存储库,但它会返回:

如果您查看https://github.com/KiCad,您会看到有更多的存储库。

有没有人遇到过这个问题?你如何解决它?

0 投票
0 回答
801 浏览

c++ - MSVC 链接时间代码生成的预期性能

我正在使用 MSVC 9 (15.0.30729.1)编译KiCad EDA 套件。

这是一个相当复杂的软件,因此/O2在 i3 上发布版本的总编译时间为 3.5 小时是完全可以接受的。为了进一步优化代码,我启用/GL/LTCG使用了链接时间代码生成功能。

查看最大的组件:在 x86 上,这在一定程度上减慢了链接过程(如预期的那样),但没有减少代码大小(7.3 MB);在 x64 上,单个链接器调用现在需要 1.5 小时,并且丝毫不会减少代码大小 (10.1 MB)。

作为比较,x64 上的 gcc 生成 11 MB -flto,没有生成 9.5 MB -flto(链接器步骤需要 10 分钟)——虽然我知道这个 MSVC 版本明显较旧,但我当然不习惯 gcc 生成更小的代码在比 MSVC 更短的时间内。

由于我对 MSVC 工具链的经验充其量只是肤浅的:链接时代码生成是否通常不会减少代码大小?有没有我可能错过的编译器选项?

0 投票
1 回答
152 浏览

macos - 在 OS X 10.10 上“制作”KiCad 后“制作安装”失败

我正在尝试在osx 10.10上安装kicad。成功构建后, 失败 makemake install

CMake的配置如下:

cmake ../kicad \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.10 \ -DwxWidgets_CONFIG_EXECUTABLE=../wx-bin/bin/wx-config \ -DKICAD_SCRIPTING=OFF \ -DKICAD_SCRIPTING_MODULES=OFF \ -DKICAD_SCRIPTING_WXPYTHON=OFF \ -DCMAKE_INSTALL_PREFIX=../bin \ -DCMAKE_BUILD_TYPE=Release \ -DKICAD_SKIP_BOOST=ON \ -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk

有谁知道如何解决这个问题?谢谢!

我已将所有构建日志保存在 txt 文件中,并放在 此处可读的保管箱

0 投票
1 回答
772 浏览

arduino - Kicad 重新排列一层 PCB 的架构

我在 kicad (this one) 上创建了一个简单的模式 Kicad_schema。然后我关联对应的封装,生成网表文件,然后运行pcbnew创建PCB。但后来我遇到了这个烂摊子印刷电路板,我不知道如何处理它(我确实画了 PCB 的边缘)。

我正在尝试绘制一个无需疯狂工具就可以自己构建的 PCB(所以我猜是单层),但是在此绘制的许多线与其他线相交,所以并不是我真正想要的单层 PCB。不确定它会有所帮助,但我所有的 kicad 文件都在那里kicad_file

0 投票
2 回答
406 浏览

cad - KiCAD 使用 CvPcb 将组件与封装关联

Queston:在 KiCAD 中有没有一种方法可以使用 CvPcb 以合理的方式将组件与其各自的封装相关联?

显示的CvPcb三列一开始感觉很舒服,但是当组件没有合适的值时,很难找到合适的封装。我正在手动扫描库。

某处是否隐藏了“搜索”选项?将特定短语定义为组件的值是否可以(因为它似乎是唯一的过滤方式)?

0 投票
1 回答
84 浏览

excel - Excel按字母顺序排序

我正在尝试对 KiCad 自动生成的 BOM 的输出进行排序。

例子是

如果我按字母顺序排序,A-Z我会得到:R1 R11 ...但我宁愿有:R1 R2 R8 R11 R14 R18

谁能帮助我如何在 Excel 中实现这一点?或者我需要一个宏吗?

亲切的问候

0 投票
1 回答
383 浏览

linux - Kicad 从源代码构建,用完树 - 按钮变灰?

我使用通常的程序在 Ubuntu 14.04.5(Linux 内核 4.4.0-53-generic)上从源代码(git)构建了 KiCad 4.0.5:

所有通过这里,kicad编译。然后我“在树外”安装它,这意味着在标准系统位置之外(即/usr/):

此时,DESTDIR 的树看起来大概是这样的:

所有的可执行文件似乎都在usr/local/bin;然后usr/local/lib似乎它不包含任何.so库(只有一些插件),并且usr/local/share. 所以我做了这个脚本:

这运行,但我得到这样的东西:

kicad-4.0.5

……也就是EESchema按钮、原理图库按钮、pcbnew按钮,全都是灰色的!在旧版本的 Kicad 中,我相信我可以随时运行其中的任何一个,并在其中打开一个“空”文件,然后继续工作 - 如果我没有事先定义一个项目......请注意其他未显示为灰色的按钮(例如 GerbView)工作正常 - 我只需单击它们即可运行相应的应用程序。

所以我的问题是:

  • 为什么 pcbnew、eeschema 按钮是灰色的?由于不标准的安装,我是否可能缺少一些目录引用 - 或者 Kicad 中的工作流程发生了变化,因此您不能再从 Kicad 独立运行这些应用程序?
  • Kicad 中是否有一些命令行开关,所以我可以让它知道在哪里INSTDIR/usr/local/share,以防 Kicad 需要它,比如模板?
0 投票
1 回答
560 浏览

c# - 在 C# 中解析 S-Expression(KiCAD PCB 文件)

我正在编写一个.NET API (C#)来管理 KiCAD PCB 文件。根据文档此处),它们的格式是一种S-Expression。我尝试重用一些S-Expression解析器,但由于几个原因它们不能满足我的需要,所以我决定写一个,但我发现自己卡住了。作为第一次尝试,我写了一个简单的函数,它递归地下降到文件结构中并创建一个System.Windows.Forms.TreeNode与结构匹配的层次结构(我使用它TreeNode是因为我使用一个TreeView组件来描述解析的结构):

之后我写了一个序列化器来写回文件。一切正常,但有一个案例我的解析器处理不当,我无法找到合适的解决方案:

隐藏令牌位置未正确管理(无法 在原始位置序列化)。原因很简单:虽然解析器正确处理子节点,因为它们以左括号开头,它只是忽略了相同级别的值(即由空格分隔的值),例如隐藏选项。我该如何处理这种情况?我尝试了几种方法,但我只是遇到了一些堆栈溢出异常(我只是失去了对递归的控制)。

同时我定义了一个自定义类来处理节点(用来代替TreeNode):

0 投票
2 回答
3007 浏览

footprint - 在 Kicad 中创建用于通过板(切割)安装的封装

我希望为以下组件制作一个封装: AG EMCO HV 电源

在此处输入图像描述

现在,这个组件可以通过电路板安装,虽然它不是一个很高的组件,但我希望探索这个选项。我想一个附带的问题是:PCB制造商有多喜欢这个功能?

有谁知道如何制作一个脚印来指定要从所有层中切出的形状?一般来说,我对 Kicad 和 PCB 设计不是很有经验,所以这可能很明显。我很感激任何可能引导我前进的信息。