问题标签 [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.
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
:
这是相同的比较tmp-Front.ps
:
值得注意的是,原始ghostscript
查看器忽略了边界框和页面方向 - 甚至更成问题的是,如果您在上网本上使用 Ubuntu Gnome,那么顶部和底部栏可能会切掉一些ghostscript
查看器窗口 - 足以让左下角的徽标角落是看不见的;并且由于“ ... raw ghostscript viewer gs ... has no real user interface ”,一个gs
以裁剪徽标启动的窗口,无法设置为之后显示它。
连接覆盖的 .ps 文件内容
通过查看这些参考资料:
- Ghostscript 覆盖连接的 postscript 文件 - comp.lang.postscript
- 回复:合并 postscript 文件 - comp.lang.postscript;
- 在合并时摆脱 pagethrow - Mombu 编程论坛
...我猜,原则上,应该可以连接两个后记文件的文件内容;如果合并文件中只有一个showpage
命令 - 那么原则上应该获得两者的叠加(?!)。但是,我试过了,但我无法真正让它发挥作用。
如果这是可能的,我想以某种方式复制/粘贴 postscript 文件内容(从而避免文档尺寸/大小/分辨率的任何问题) - 然后可能使用translate
postscript 命令(请参阅Gnuplot 中的 Postscript 编辑)进行调整标志的位置。在 .ps 中打开“覆盖”(合并).ps evince
,每次translate
在文本编辑器中更改参数时都会刷新文档显示 - 因此以这种方式处理徽标定位应该相对容易。
但是,我也可以预见到这里的一些问题:例如,图形 ( tmp-Front.ps
) 包含:
...而logo.ps
包含:
...因此有两个主要区别:
- 文件的文档大小不同
- 比例(或者更确切地说分辨率/坐标系)也不相同
由于我根本无法将文件内容串联起来 - 我不确定这些差异是否会对覆盖产生影响......我当然希望它们以某种方式独立呈现;并且这translate
将有助于正确设置它们的相对位置:)
那么 - 如果我想通过连接 postscript 文件内容来实现覆盖,我该怎么做?如果这太麻烦 - 我怎么能使用ghostscript
(或任何其他)工具来设置覆盖?
非常感谢您的任何答案,
干杯!
作为参考,这里是提到的后记文件的副本(因为它们不是太大):
编辑:回复:luser droog的回答;如果我尝试按照 中的说明打开combo.ps
,evince
我会得到:
这可能与#414002 - gs -dSAFER: /invalidfileaccess with "run" operator - Debian Bug 报告日志有关...如果我尝试%!
在开始时添加 PostScript 标头“”,我得到:
我也尝试过跑步ps2ps
——结果如下:
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 工具链的经验充其量只是肤浅的:链接时代码生成是否通常不会减少代码大小?有没有我可能错过的编译器选项?
macos - 在 OS X 10.10 上“制作”KiCad 后“制作安装”失败
我正在尝试在osx 10.10上安装kicad。成功构建后, 失败
make
make 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 文件中,并放在 此处可读的保管箱
arduino - Kicad 重新排列一层 PCB 的架构
我在 kicad (this one) 上创建了一个简单的模式 。然后我关联对应的封装,生成网表文件,然后运行pcbnew创建PCB。但后来我遇到了这个烂摊子,我不知道如何处理它(我确实画了 PCB 的边缘)。
我正在尝试绘制一个无需疯狂工具就可以自己构建的 PCB(所以我猜是单层),但是在此绘制的许多线与其他线相交,所以并不是我真正想要的单层 PCB。不确定它会有所帮助,但我所有的 kicad 文件都在那里kicad_file
cad - KiCAD 使用 CvPcb 将组件与封装关联
Queston:在 KiCAD 中有没有一种方法可以使用 CvPcb 以合理的方式将组件与其各自的封装相关联?
显示的CvPcb
三列一开始感觉很舒服,但是当组件没有合适的值时,很难找到合适的封装。我正在手动扫描库。
某处是否隐藏了“搜索”选项?将特定短语定义为组件的值是否可以(因为它似乎是唯一的过滤方式)?
excel - Excel按字母顺序排序
我正在尝试对 KiCad 自动生成的 BOM 的输出进行排序。
例子是
如果我按字母顺序排序,A-Z
我会得到:R1 R11 ...
但我宁愿有:R1 R2 R8 R11 R14 R18
。
谁能帮助我如何在 Excel 中实现这一点?或者我需要一个宏吗?
亲切的问候
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
. 所以我做了这个脚本:
这运行,但我得到这样的东西:
……也就是EESchema按钮、原理图库按钮、pcbnew按钮,全都是灰色的!在旧版本的 Kicad 中,我相信我可以随时运行其中的任何一个,并在其中打开一个“空”文件,然后继续工作 - 如果我没有事先定义一个项目......请注意其他未显示为灰色的按钮(例如 GerbView)工作正常 - 我只需单击它们即可运行相应的应用程序。
所以我的问题是:
- 为什么 pcbnew、eeschema 按钮是灰色的?由于不标准的安装,我是否可能缺少一些目录引用 - 或者 Kicad 中的工作流程发生了变化,因此您不能再从 Kicad 独立运行这些应用程序?
- Kicad 中是否有一些命令行开关,所以我可以让它知道在哪里
INSTDIR/usr/local/share
,以防 Kicad 需要它,比如模板?
c# - 在 C# 中解析 S-Expression(KiCAD PCB 文件)
我正在编写一个.NET API (C#)来管理 KiCAD PCB 文件。根据文档(此处),它们的格式是一种S-Expression。我尝试重用一些S-Expression解析器,但由于几个原因它们不能满足我的需要,所以我决定写一个,但我发现自己卡住了。作为第一次尝试,我写了一个简单的函数,它递归地下降到文件结构中并创建一个System.Windows.Forms.TreeNode
与结构匹配的层次结构(我使用它TreeNode
是因为我使用一个TreeView
组件来描述解析的结构):
之后我写了一个序列化器来写回文件。一切正常,但有一个案例我的解析器处理不当,我无法找到合适的解决方案:
隐藏令牌位置未正确管理(无法 在原始位置序列化)。原因很简单:虽然解析器正确处理子节点,因为它们以左括号开头,它只是忽略了相同级别的值(即由空格分隔的值),例如隐藏选项。我该如何处理这种情况?我尝试了几种方法,但我只是遇到了一些堆栈溢出异常(我只是失去了对递归的控制)。
同时我定义了一个自定义类来处理节点(用来代替TreeNode
):
footprint - 在 Kicad 中创建用于通过板(切割)安装的封装
我希望为以下组件制作一个封装: AG EMCO HV 电源
现在,这个组件可以通过电路板安装,虽然它不是一个很高的组件,但我希望探索这个选项。我想一个附带的问题是:PCB制造商有多喜欢这个功能?
有谁知道如何制作一个脚印来指定要从所有层中切出的形状?一般来说,我对 Kicad 和 PCB 设计不是很有经验,所以这可能很明显。我很感激任何可能引导我前进的信息。