开源改变世界

多层配置 #29

推推 grbl 3年前 (2023-01-24) 101次浏览

关闭
mkeyno 打开了这个问题 2017 年 4 月 19 日 · 7条评论
关闭

多层配置#29

mkeyno 打开了这个问题 2017 年 4 月 19 日 · 7条评论

注释

多层配置 #29

我用过中文激光切割机固件和inkscape,它有多层配置,可以为每一层定义功率和速度,你有计划实现这样的功能吗?
BR

多层配置 #29
所有者

嗨 mkeyno
现在我没有计划实现这种类型的功能。光栅图像的导入(现在唯一实现的导入)不允许我区分图层。当我添加读取/导入矢量文件(如 .svg 或 .dxf)时,我可以像你建议的那样放置。

最好的问候,迭戈

多层配置 #29
作者

谢谢@arkypita,你做了困难的部分,我认为有许多免费的 C# vector2gcode lib 实现这样的功能并不难,不幸的是我不是 C# pro 在这种情况下制作 PR,但感谢你的回购,它非常有帮助

多层配置 #29
所有者

矢量文件导入是我想要实现的事情列表的顶部。只是因为我的空闲时间很少,所以我还没有能够添加它!

多层配置 #29
sh4wner 评论了 2019 年 4 月 1 日  

你好@arkypita,

我是来自西班牙的开发者。首先,祝贺您的应用程序并为所有人带来了使用它的可能性。我过去几天实现了基于笔划颜色的多形状功能和材料管理器。

在工作重复中标记时加载并附加 SVG 文档 N 次,按工作选择的颜色过滤形状并调整每个工作的速度和功率。

我也做了一个材料管理器来存储和加载每种材料的默认值。

我还没有完成,但这个自定义多形状功能正在运行。
多层配置 #29.

如果您认为这可以提供此功能,请联系我,我会将我的分支推到任何地方。

谢谢!

多层配置 #29
sh4wner 评论了 2019 年 4 月 2 日  

我也制作了一个简单且可选的 InkScape 集成(将 Inkscape 文件夹添加到设置表单)以通过执行系统命令将 svg 文本转换为 svg 路径,如下所示:

inkscape filename.svg –export-text-to-path –export-plain-svg 输出.svg

转换文件后,它会替换其余通量中的原始文件名。
它工作得很好,它可以作为自动转换带有完整路径 svg 文本的 svg 文件的解决方案(不需要但可以使用)。我知道这是一个很大的依赖关系,但对于许多安装了 InkScape 的用户来说可能是一个好点。

如果有兴趣,这是函数:

private string preprocesTextsWithInkScape(string filename) {
            string inkScapeFolder = Settings.GetObject("InkScapeFolder", "").ToString();
            if (inkScapeFolder!="")
            {
                EnsureExistTempPathFolder();
                var outFilename = TempPath + "out.svg";
                string strCmdLine = "/C \"" + inkScapeFolder + "\\inkscape.com\" " + filename + " --export-text-to-path --export-plain-svg " + outFilename;
                try
                {
                    var process1 = System.Diagnostics.Process.Start("CMD.exe", strCmdLine);
                    process1.WaitForExit();
                    process1.Close();
                    filename = outFilename;
                }
                catch (Exception e)
                {
                }

            }

            return filename;
        }
多层配置 #29

协调将多层支持添加到 LaserGRBL 中的最佳方法是什么?我经常发现自己使用 File->Append 将光栅雕刻层和 SVG 切割层添加到同一个作业中。这行得通,但是在添加这些层之后能够单独查看/编辑/删除这些层的参数会很好,而不是如果您想更改其中一个则必须重新开始。

我很乐意通过代码或经济上的贡献来帮助实现这一目标,但似乎需要对架构进行相当基本的更改才能让 LaserGRBL 认识到单个工作中多层的潜力,这就是我认为它的原因可能需要一些指导@arkypita而不是自己试一试。

多层配置 #29
所有者

你好@alastaira

您说得好,那将是一个很棒的功能,而当前的“附加”功能绝非舒适且不足以替代。

你也说对了。LaserGRBL 代码是随机编写的,现在添加新功能而不会使情况恶化是很复杂的。但是,必须说流媒体部分做得很好。

最大的问题是 LaserGRBL 的特性(矢量化、line2line、centerline、SVG)是在没有共同基础的情况下制作的,将我开发的一些部分放在一起,而其他特性则来自其他开源程序,所以很多部分重复(有至少有 2 种或三种将贝塞尔曲线转换为 gcode 的方法,有不止一个类来表示一个点或一个段),这可以防止重复使用某些适用的服务(例如填充或最大切割速度的行进优化)例如在从光栅创建的矢量上,而不是在 SVG 上。

此外,管理每个性能设置的方式非常糟糕。

如果我有愿望和时间,它必须重新完成,考虑到一些概念,使它更加模块化和可扩展,即使是第三方开发人员的贡献。

也就是说,我仍然愿意合作。

如果您想尝试自己开发此功能,我建议采用这种方法:创建一个“项目”编辑器。

在编辑器中插入您想要在最终作品中使用的各种图形部分,有一个画布,您可以在其中重新定位和调整各种图形部分的大小,在小光“预览”上工作,并且对于每个对象(或包含多个对象的层) 预见处理设置(处理类型:矢量化、抖动等和速度功率)。

项目完成后,仅在最后使用现有功能将其转换为 gcode。

喜欢 (0)