问题标签 [cnc]

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 投票
0 回答
55 浏览

arrays - Convert.ChangeType() 返回不正确的值

我有一个解析 CNC 文件的类,但是我在文件的每一行都尾随“单词”时遇到了困难。

我的代码解析所有前导“单词”,直到它到达最后一个单词。在解析“Z”值或其他 Double 类型值时最明显。我已经对其进行了足够的调试,注意到它成功地解析了数值,就像它对“X”和“Y”值所做的那样,但它似乎没有成功地将它转换为双精度值。我缺少的角色有问题吗?

这是我的代码:

以下是 GCode 的示例:

关于上面的示例 CNC 代码,您会注意到带有尾随 Z 命令的 X 和 Y 命令可以正确解析。

编辑 每条评论,这里是 _commands() 的细分 _commands = SortedList(Of Integer, Command) 命令是一个具有以下属性的类:

  • 范围作为枚举 ScopeType
  • 名称字符串
  • 字符串
  • 数据类型作为类型
  • 数据值作为对象

编辑:解决方案! 弄清楚出了什么问题。构成类构造的数组本质上是从类中传递对“已注册”对象数组的引用Command。因此,每次我从每一行的“单词”中解析出值时,我都会覆盖对象DataValue中的值。Command

解决方案是在每次解析时声明一个新的“命令”对象并将其附加到正确的数组中。

这是我的短手:

0 投票
2 回答
110 浏览

python - 将 CNC 钻孔从旧系统转换为新系统(使用 Python)

我有这种文件(部分):

...

我想将其转换为新的编程系统。我要做的是首先读取标题 (H) 并将 DX、DY 和 DZ 值分别放入命名变量中。我设法做到了这一点,但是当我开始处理我的 XBO 线时(一个钻孔,我需要 X、Y、Z、V、R、x、y、D、N、F 和;,也在单独的变量中)我的代码很快就开始看起来很丑陋。

所以我重新开始,想出了这个:

这正确识别了单独的命令 H 和 XBO,但我现在有点卡住了。我可以使用相同的方法从 H 和 XBO 循环内的循环中提取所有变量,但这似乎不是很好的编码......

任何人都可以让我站稳脚跟吗?我不想要一个完整的解决方案,因为我喜欢编码(我的主要工作是为 CNC 机器编码,与 Python 相比现在看起来很容易),但很想知道哪种方法最好......

0 投票
3 回答
119 浏览

python - Python:简化 try / except 代码?

对不起,如果标题不够解释,但这是我能想到的最好的。这是我的代码的一部分,一个将文件从 Xilog3 转换为 woodWOP 格式(cnc 程序)的 python 脚本。

这会将字典键项打印到输出文件。如果该键不存在,我想从以前版本的字典 xbo_prev 中加载它,它是在每个新行读取周期之前从 xbo 复制的。

两次使用打印规则似乎很愚蠢,但这是我能想到的最好的。有没有办法简化这个?

谢谢 :)。

0 投票
0 回答
152 浏览

c - C 优化 FANUC G 代码的数字输出(截断尾随零,保留小数)

C 中是否有一个格式说明符,它将输出一个数字值,小数点留在数字上,但小数点被截断后尾随零?

计算的值是浮点数,使用 %.4g 会接近所需的输出,除了将小数点从数字中删除会产生问题。

以下数字格式对于机器控制通过 RS232 端口读入是合法的: ( 10.0001 , 0.111 , .22 , 0. ) 但是,发送的代码包括没有小数点的数字;例如 "G00 X4" 导致机器保存字符串 "G00 X00.0004" 。机器将输入的一个或多个不带小数点的字符解释为正确格式输入的最低有效数字。

我可以简单地使用 %.4f 转换,但部分目标是删除尾随零。这台机器的内存严重受限,每个字符都很重要。另一种选择是生成预期的输出数字,将它们转换为字符,然后测试每个数字的尾随零并根据需要截断。我非常希望有更优雅的东西,但我没有在转换字符中找到任何东西。

提前致谢。

0 投票
0 回答
1330 浏览

python - SVG - 在 Python 中导出点/坐标

我正在开发一个机器人控制的绘图系统,目前正在寻找一些关于从现有 SVG 文件中提取普通坐标的输入。我的问题与这个问题非常相似,到目前为止没有得到太多反馈。

-> 是否有一些简单/已建立/预构建的方法可以从 python 中现有的 SVG 文件中提取点坐标?

根据我的(有限的)理解,现有的 SVG 库,如svg.pathpysvg似乎不包含从现有文件中提取所有点的函数(因为它们似乎更多地是为了编写 SVG 而不是读取 SVG。 .)

感谢您的回答。

0 投票
2 回答
1903 浏览

geometry - 如何计算圆弧上的点y位置?当我有半径时,弧的起点和终点

我正在尝试在 CNC 上编写程序。基本上我有圆弧起点 x, y , 半径和终点 x, y 我也知道圆弧的方向是顺时针或 cc。所以我需要找出特定x位置的弧上y的值。最好的方法是什么?我在这个网站上发现了类似的问题。但我不确定如何获得角度 a。

样本

0 投票
0 回答
140 浏览

bash - 调试专有递归脚本

因此,在阅读了这里和这里的这些问题之后,在不解释我的情况的情况下,我对如何提出这个问题并没有任何其他想法。

注意: 总的来说,我对专有平台非常陌生,来自自由/开放软件的背景。

本质上,我有一个用于我们内部专有运动控制平台的程序,它使用带有宏的脚本在 UI 端的程序和运动控制器端的固件之间进行通信。所有涉及软件的文档和开发都由姊妹公司处理,文档缺乏/不完整,我们有他们的支持,但他们很瘦,有自己的产品,距离 2,700 英里,不能在内部随叫随到,我没有来源/我不允许有任何来源的来源主应用程序,也不是固件,真正杀死它,我们最后一个,唯一的真正程序员。我们独自拥有这个脚本和一些新产品,这些新产品都依赖于这个脚本在软件中的良好配合。该脚本需要一个严肃的、定期的错误检查解决方案;对于我们使用此运动控制器系统的每台已配置机器。

所以我要开始调试这个脚本。这就是这里发生的事情。

我试图编写一个模拟 bash 实现,但递归程度、从 .ini 文件中提取的数组、系统定义的命令集以及固件中的脚本解析;使这个 bash 调试实现变得困难,我不确定我能否在不破坏重要内容的情况下完全完成它。

我查看了其他选项,例如 ANTLR,这也有点超出我的想象,但可能会起作用。

现在,控制器通过某种静态 IPv4 交叉以太网设置(Telnet?)进行通信,但具有 RS-232 串行,将输出从“sout”命令解析的格式化字符串。我的意图是修改脚本以尽可能多地输出带有预定义系统命令和变量的格式化字符串,但我担心它不会给我提供全局。

脚本本身定义了全局、系统和局部变量和函数(因为它位于运动控制器端,有硬件限制),可以嵌套 25 个子程序深度。真正的陷阱似乎是脚本的递归端进入和退出这些函数的地方,因为它们是从 UI 和其他函数调用的。什么都没有跳出来,但是没有深入的文档,我只能看到这么多,而且几乎只是和另一位向姊妹公司提问的工程师一起学习了所有这些。

谁能给我一些关于我应该如何继续努力的建议?我知道这可能有很多问题,但我有点墨守成规,需要比我的技能更多的认知资源,而咖啡允许。

感谢您的时间。

0 投票
1 回答
1573 浏览

ftp - VB6 中的 FTP 文件上传错误

我正在开发一个需要通过 VB6 与 Mitsubishi M70 CNC(FTP 服务器)通信的项目。虽然我与它的初始通信是成功的,但当我尝试向它上传或下载文件时,出现以下错误:

我可以手动复制并粘贴文件夹中的文件。但是当我尝试通过 VB 做同样的事情时,它显示错误。

MY Project VB exe 安装在与我的 FTP 服务器相同的 PC 上。

我的代码如下

0 投票
1 回答
179 浏览

c# - c# twincat将参数传递给类构造函数

我想知道最好的方法是什么。

如果我需要将一个类传递给一个类构造函数,为什么我应该在我的类中使用一个变量。

例子:

为什么我不能这样做:

我想_adsServer在很多未连接的课程中使用,我该如何正确地做到这一点?

感谢帮助。

0 投票
1 回答
49 浏览

cnc - 这个代码片段是用哪种编程语言编写的?

该代码编写于 1999 年,用于控制 CNC 机床。如果代码片段不足以确定语言,我可以上传整个文件。这是代码段: