开源改变世界

[心愿] CAM: Vector Shape infill #36

推推 grbl 2年前 (2023-02-03) 347次浏览
关闭
jorgerobles 打开了这个问题 2016 年 11 月 16 日 · 30条评论
关闭

[心愿] CAM: Vector Shape infill#36

jorgerobles 打开了这个问题 2016 年 11 月 16 日 · 30条评论

评论

[心愿] CAM: Vector Shape infill #36
合作者

嗨,我发现对于填充的矢量形状,将矢量转换为光栅可能很好,或者如果可能的话,可能是选择密度和图案的填充算法,如 3d 打印机填充。

[心愿] CAM: Vector Shape infill #36

好吧,Sébastien (@lautr3k) 今天早上在 g+ 上发布了这个预告片
https://plus.google.com/+SébastienMischler-Skarab/posts/cHjE7RZkrog
https://plus.google.com/+S%C3%A9bastienMischler-Skarab /帖子/cHjE7RZkrog

在 2016 年 11 月 16 日下午 5:43,“jorgerobles” notifications@github.com写道:

嗨,我发现对于填充的矢量形状,将矢量转换为
光栅可能很好,或者
如果可能的话,可能是选择密度和图案的填充算法,如 3d 打印机填充。


您收到此消息是因为您订阅了此线程。
直接回复此电子邮件,在 GitHub
#36上查看它,或将线程静音
https://github.com/notifications/unsubscribe-auth/AHVr2y8k8l5-hbBEPicfj15-hKn3kd1jks5q-yS-gaJpZM4K0BiP

[心愿] CAM: Vector Shape infill #36
合作者作者

太棒了,现在我们需要激光着色技术,不是吗?
我顺便发现了这个http://riccardoscalco.github.io/textures/

[心愿] CAM: Vector Shape infill #36

我喜欢!肯定有艺术应用!

在 2016 年 11 月 16 日下午 5:54,“jorgerobles” notifications@github.com写道:

太棒了,现在我们需要激光着色技术,不是吗?
我顺便发现了这个http://riccardoscalco.github.io/textures/


你收到这个是因为你发表了评论。
直接回复此电子邮件,在 GitHub
#36(评论)上查看它,
或将线程静音
https://github.com/notifications/unsubscribe-auth/AHVr2zuJvnb0FAUtbLtgN3xewNiZsChyks5q-yckgaJpZM4K0BiP

[心愿] CAM: Vector Shape infill #36
合作者

这太酷了,肯定会赢得一些用户

从 BlueMail 发送

在 2016 年 11 月 16 日 10:59,在 10:59,Peter van der Walt notifications@github.com写道:

我喜欢!肯定有艺术应用!

在 2016 年 11 月 16 日下午 5:54,“jorgerobles” notifications@github.com
写道:

太棒了,现在我们需要激光着色技术,不是吗?
我顺便发现了这个http://riccardoscalco.github.io/textures/


你收到这个是因为你发表了评论。
直接回复此邮件,在 GitHub 上查看

#36 (comment) ,
或者静音线程

https://github.com/notifications/unsubscribe-auth/AHVr2zuJvnb0FAUtbLtgN3xewNiZsChyks5q-yckgaJpZM4K0BiP

您收到此消息是因为您订阅了此线程。
直接回复此邮件或在 GitHub 上查看:
#36(评论)

[心愿] CAM: Vector Shape infill #36
合作者作者

哎,进步微乎其微,终究是进步了。
我做了一个使用 textures.js 和 LW4 的实验。我确定我做错了方法,但以某种方式起作用。它在https://github.com/jorgerobles/LaserWeb4/tree/d3patterns

似乎 textures.js 依赖于 d3。我不确定,我还没有找到任何关于使用独立的文档,也许是可能的。所以,我已经渲染了 svg,然后用 hack 重新渲染为 png。然后该图像将通过@lautr3k wonder-app 传递,或者可能替换工作区中的路径进行光栅化。天才们,我召唤你们!

[心愿] CAM: Vector Shape infill #36

[心愿] CAM: Vector Shape infill #36
成员

@jorgerobles我查看了您的示例,但没有看到 png hack。您是使用此处的方法还是找到其他方法?

[心愿] CAM: Vector Shape infill #36
合作者作者
jorgerobles 评论了 2016 年 11 月 18 日  

非常相似,它位于 components/playground.js

    let xml  = new XMLSerializer().serializeToString(ReactDOM.findDOMNode(this)),
        data = "data:image/svg+xml;base64," + btoa(xml),
        img  = new Image()
        img.setAttribute('src', data)
[心愿] CAM: Vector Shape infill #36
成员

看起来很容易将 SVG 作为光栅图像导入。Inkscape 使定义自定义模式变得容易:

[心愿] CAM: Vector Shape infill #36

[心愿] CAM: Vector Shape infill #36
成员

看起来我必须做一些重构来支持这一点。最好地处理这个问题的代码在文档缩减器的 loadSvg() 中。不幸的是,SVG-to-image hack 设置了一个回调。Reducers 不应该设置回调。

[心愿] CAM: Vector Shape infill #36
合作者作者
jorgerobles 评论了 2016 年 11 月 18 日  

我会(尝试)看一下代码,也许会找到一个更好的地方。我的第一个想法是用作操作,因此您选择要转换为光栅的矢量组,选择光栅操作,就像在图像所在的矢量然后进行预处理一样,在 gcode 生成之前使用 hack。

纹理方式只是糖,但我的方案是添加填充操作。其他复杂的设计需要桌面应用程序来制作图案,但这是一种非常简单的方法。

[心愿] CAM: Vector Shape infill #36
合作者作者

嗯.. https://www.npmjs.com/package/svg-patterns,非常相似(灵感来自)textures.js 19kb 并且没有 d3 依赖项.. 好吃

[心愿] CAM: Vector Shape infill #36

@lautr3k 你在优化方面做了什么吗?还是仅在 svg 解析上?

[心愿] CAM: Vector Shape infill #36
成员

喔好吧。我误解了。现在它从 SVG 文件中抓取轮廓但忽略填充图案。我假设您想保留 SVG 填充图案,但现在看起来您希望 LW4 生成新的填充图案。这是你要求的吗?

[心愿] CAM: Vector Shape infill #36
合作者作者
jorgerobles 评论了 2016 年 11 月 18 日  

对不起,我根本没有解释自己。有两个不同但互补的东西:

  1. 首先是我希望 LW4 能够光栅化矢量。例如,Epilog 激光“打印机”驱动程序将厚度大于 0.02 毫米的矢量或填充形状视为光栅。前任。选择一个矢量,说“这是一个光栅操作”,瞧瞧。
  2. 这个想法的副产品是确实选择了一个空心形状(但不限于),然后像切片软件一样生成填充。这可以通过两种方式实现,矢量方式和光栅方式。我想如果实施第一个想法,光栅方式会更容易。前任。选择一个矢量,说“这是一个填充操作”,从图案调色板中选择一个,让魔术开始。
[心愿] CAM: Vector Shape infill #36

好吧,这里有两件旧事。一种是光栅化(用
水平线填充实心)矢量内部(svg 路径和 dxf)的方法。模式是
一个很酷的主意……但是,我们已经有了“光栅化”,所以我认为
使用该代码处理填充的 svg 更容易。通读
LaserWeb/deprecated-LaserWeb3#83基本上完成了,只需要
一个漂亮的方法来选择你想在 UI 中做什么。

说到我们目前生成gcode的方式。我们遍历
threejs 对象,提取线,并将其用作点(请参阅
lw3/public/js 中的 threegcode.js)——这使得将三个作为
中间方式变得更容易,三个的任何加载器,我们已经另一端有一个 gcode
生成器。这使得添加 stl、dxf、svg 变得很容易。
我们还在做同样的事情吗?
(三人在将圆弧和圆圈分成 100% 的时间段方面做得非常出色)

另一个是几个月前的一个疯狂想法,我们已经使用@lautr3k
SLAcer.js 来“切片”和 STL 成层。添加一些填充物,clipperjs
抵消周边,你基本上有一个基于 Javascript 的 stl 切片器
用于 3D 打印。 @raykholo@andrewhodel两个人都想玩
那个……

在 2016 年 11 月 18 日下午 5:53,“jorgerobles” notifications@github.com写道:

对不起,我根本没有解释自己。有两个不同但
互补的东西:

首先是我希望 LW4 能够光栅化矢量。
例如,Epilog 激光“打印机”驱动程序将厚度大于 0.02 毫米
的矢量或填充形状视为光栅。选择一个矢量,说“这是一个光栅
操作”,瞧瞧。
2.

这个想法的副产品是确实选择了一个空心形状(但
不限于),然后像切片软件一样生成填充。这可以
通过两种方式实现,矢量方式和光栅方式。我想
如果实施第一个想法,光栅方式会更容易。


你收到这个是因为你发表了评论。
直接回复此电子邮件,在 GitHub
#36(评论)上查看,
或将线程静音
https://github.com/notifications/unsubscribe-auth/AHVr20YAGgbEfxf0ncA5cU8JAPWH-A8Fks5q_cnrgaJpZM4K0BiP

[心愿] CAM: Vector Shape infill #36

Stl 切片https://plus.google.com/+PetervanderWalt/posts/jMvRKXpoGdc

在 2016 年 11 月 18 日下午 6:50,“Peter van der Walt (Gmail)” <
peter.plaaswerf@gmail.com > 写道:

好吧,这里有两件旧事。一种是光栅化(用
水平线填充实心)矢量内部(svg 路径和 dxf)的方法。模式是
一个很酷的主意……但是,我们已经有了“光栅化”,所以我认为
使用该代码处理填充的 svg 更容易。通读
LaserWeb/deprecated-LaserWeb3#83基本上完成了,只
需要一个漂亮的方法来选择你想在 UI 中做什么。

说到我们目前生成gcode的方式。我们遍历
threejs 对象,提取线,并将其用作点(请参阅
lw3/public/js 中的 threegcode.js)——这使得将三个作为
中间方式变得更容易,三个的任何加载器,我们已经另一端有一个 gcode
生成器。这使得添加 stl、dxf、svg 变得很容易。
我们还在做同样的事情吗?
(三人在将圆弧和圆圈分成 100% 的时间段方面做得非常出色)

另一个是几个月前的一个疯狂想法,我们已经使用@lautr3k
SLAcer.js 来“切片”和 STL 成层。添加一些填充物,clipperjs
抵消周边,你基本上有一个基于 Javascript 的 stl 切片器
用于 3D 打印。 @raykholo@andrewhodel两个人都想玩
那个……

在 2016 年 11 月 18 日下午 5:53,“jorgerobles” notifications@github.com写道:

对不起,我根本没有解释自己。有两个不同但
互补的东西:

首先是我希望 LW4 能够光栅化矢量。
例如,Epilog 激光“打印机”驱动程序将厚度大于 0.02 毫米
的矢量或填充形状视为光栅。选择一个矢量,说“这是一个光栅
操作”,瞧瞧。
2.

这个想法的副产品是确实选择了一个空心形状(但
不限于),然后像切片软件一样生成填充。这可以
通过两种方式实现,矢量方式和光栅方式。我想
如果实施第一个想法,光栅方式会更容易。


你收到这个是因为你发表了评论。
直接回复此电子邮件,在 GitHub
#36(评论)上查看,
或将线程静音
https://github.com/notifications/unsubscribe-auth/AHVr20YAGgbEfxf0ncA5cU8JAPWH-A8Fks5q_cnrgaJpZM4K0BiP

[心愿] CAM: Vector Shape infill #36
成员
纠结 评论了 2016 年 11 月 19 日  

我们像这样存储路径:([[x,y,0, x,y,0, x,y,0, ...], ...]我可能会删除 0)。这是positions文档树的成员。它可以轻松地与 json、regl 缓冲区和 Clipper 路径进行相互转换。STL 最终将转换为[x,y,z, x,y,z, x,y,z, ...].

一些转换函数(mesh.js):

  • elementToPositions. 从 SVG 转换。根据需要进行曲线到线的转换。
  • triangulatePositions. 转换为三角形网格。Regl 使用它来绘制填充区域。Regl 也可以使用它来将路径转换为光栅。
  • positionsToClipperPaths

用三个做一些转换是可以的,但它不再是应用程序数据的中心点。

[心愿] CAM: Vector Shape infill #36

我会去挖掘旧问题的链接,但要从过去一年的
教训中汲取灵感:

  • 将圆弧和圆转换为线段:threejs 做得很好。别的什么都没
  • svg 导入:snap.svg 在大约 20% 的用户文件中失败,我们
    现在使用的文件来自 Lasersaur 项目,成功率为 100%。这也是
    @lautr3k 正忙于扩展 lw3 的优化分支。宁愿
    我们使用那个
  • dxf导入。来自https://github.com/gdsestimating/three-dxf的 Three-dxf
    大部分是防弹的。只是缺少 DXF 样条支持
    @iceman1979正在为我们工作。它将弧/圆绘制为
    three.circlegeometry 所以我们现在需要扩展它们以
    在解析器中进行分割?或者我们现在如何处理?(当然
    这里的愿望清单是适当的 g2/g3 支持)

在 2016 年 11 月 18 日晚上 8:19,“Todd Fleming” notifications@github.com写道:

我们这样存储路径:[x,y,0, x,y,0, x,y,0, …], …
http://I’ll%20probably%20remove%20the%200’s。这是
文档树的位置成员。它可以轻松地与 json、regl
缓冲区和 Clipper 路径进行相互转换。STL 最终会转换为 [x,y,z, x,y,z,
x,y,z, …]。

一些转换函数(mesh.js):

  • 元素到位置。从 SVG 转换。根据需要进行曲线到线的转换
  • 三角定位。转换为三角形网格。Regl 使用它来
    绘制填充区域。Regl 也可以使用它来将路径转换为光栅。
  • positionsToClipperPaths

用三个做一些转换是可以的,但它不再
是应用程序数据的中心点。


你收到这个是因为你发表了评论。
直接回复此电子邮件,在 GitHub
#36(评论)上查看,
或将线程静音
https://github.com/notifications/unsubscribe-auth/AHVr24QQ4UVeycV0nxZ8ZA7BfXMSsM-Yks5q_ewwgaJpZM4K0BiP

[心愿] CAM: Vector Shape infill #36
成员

如果你能把three’s segments转换成Clipper,那么转换成就[[x,y,0, x,y,0, x,y,0, ...], ...]不成问题了。

[心愿] CAM: Vector Shape infill #36

凉爽的。现在让我停止劫持这个线程(:

[心愿] CAM: Vector Shape infill #36
成员

尝试找到这些链接。我想看看当我运行那些有问题的 SVG 文件时会发生什么。

[心愿] CAM: Vector Shape infill #36

LaserWeb/弃用-LaserWeb2#29

在 2016 年 11 月 18 日晚上 8:57,“Todd Fleming” notifications@github.com写道:

Try to find those links. I’d like to see what happens when I run those
problematic SVG files through.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#36 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHVr20gX-WCs7_WaNQ7746vp-39iBKebks5q_fULgaJpZM4K0BiP
.

[心愿] CAM: Vector Shape infill #36

This one too LaserWeb/deprecated-LaserWeb2#10 – trying to
jog my own memory, might not have been snap.svg itself. May have been

喜欢 (0)