我想使用python解析一个SVG文件来提取坐标/路径(我相信它列在"路径"ID下,特别是d ="..."/>).该数据最终将用于驱动2轴CNC.
我在SO和Google上搜索了可以返回这些路径字符串的库,以便我可以进一步解析它,但无济于事.这样的图书馆存在吗?
我一直喜欢的编程和我一直喜欢学习新的汉语语言(任何例如,Java/C#/二郎/ F#/ Clojure的/红宝石等)的事,但从未似乎不亚于我想享受它.
有一点我很好奇,我想知道我是否可以完全享受CAD/CAM/CNC编程和设计,我想知道是否有人有关于在哪里/如何开始学习的任何提示,那里有哪些软件有助于学习(最好是免费/开源,最好是Linux,虽然我很欣赏选项可能有限).
任何提示将不胜感激.
我试图找到一个确定的G代码语法规范,而不是各个地方的G代码含义,这是我在各处编写的规范,我指的是详细的语法规范,目的是编写解析器。
我写解析器没有问题,我只是在寻找语法规范,例如。我知道您不必总是为某些Gcode提供完整的xyz坐标,在这种情况下,机器将使用丢失坐标的最后一个值,但是我似乎找不到任何确定的规则来确定何时发生。同样,有些指令可以放在一行中,而有些指令则不能,而且似乎没有确定的规则。
很长的故事:
因此,我有一台diy cnc机器,使用了一段时间,最近将其升级到足够稳定的状态,可以在其中铣削一些PCB。事实是,进行双面加工确实很棘手,因为机械地索引两面都不够精确。
因此,有一些旨在利用USB摄像头的项目,您将这些摄像头瞄准已知点,然后该应用计算并对gcode进行转换,以补偿未对准情况。
但是问题是,我想通过照相机以外的其他方式来做到这一点,而且那些项目还没有完成或被放弃。
所以我想,我可以为gfcode创建一个简单的解析器,但是我发现的任何“规范”都只谈论特定指令的含义,而不是语法。
我想将Vim和EMACS用于CNC,G代码和M代码.
Vim或EMACS是否有任何语法或模式来处理这种类型的代码?
这个问题实际上分为两部分.为了简要介绍这个问题,我们要求使用一个名为ArtCam的工具生成CNC文件(与Roland铣床一起使用),并修改它以移动被切割图案的绝对位置.
软件以下列形式生成并且机器接受输入文件:
;;^IN;
!MC1;
!RC5000;
V50.0;
^PR;Z0,0,10500;
^PA;
V49.8;
Z0,0,1000;
V39.8;
Z0,0,100;
Z10,0,99;
Z1000,0,-13;
Z10,0,-124;
Z0,0,-125;
...thousands more Zx,y,z; instructions...
Run Code Online (Sandbox Code Playgroud)
我的问题的第一部分是,任何人都可以告诉我这个文件格式是什么?它显然不是G-Code,我无法在任何地方找到任何参考或文档.
第二部分是,有没有人知道我们如何轻松修改这些文件削减的模式的绝对位置.显然Z线是X,Y,Z位置命令,但我不知道它们是绝对的还是相对的,我不知道它们在什么坐标空间/系统中.据我所知,我们可以在顶部添加一个简单的命令来移动起点,或者我们可能需要重写所有Z行,但是如果没有关于文件格式的一些信息,我就处于死胡同.
谢谢!
对不起,如果标题不够清晰,但这是我能想到的最好的.这是我的代码的一部分,一个python脚本将文件从Xilog3转换为woodWOP格式(cnc程序).
try:
print >>woodWOPfile, 'YA="%s"' %xbo['Y']
except KeyError:
xbo['Y']=xbo_prev['Y']
print >>woodWOPfile, 'YA="%s"' %xbo['Y']
Run Code Online (Sandbox Code Playgroud)
这会将字典键项打印到输出文件.如果密钥不存在,我想从先前版本的字典xbo_prev加载它,该字典在每个新的行读取周期之前从xbo复制.
使用两次打印规则似乎很愚蠢,但这是我能想到的最好的.有没有办法简化这个?
谢谢 :).
我正在研究Cnc编程,我不知道G41和G42之间的区别.讲师没有清楚地解释清楚所以我正在寻找能够让我更清楚地解释其差异的人.我知道它们都是刀具补偿,但我怎么知道何时使用G41以及何时使用G42?