问题标签 [3d-printing]

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 投票
1 回答
1762 浏览

go - 3D 打印机串行通信

我正在努力构建一个可以与 Golang 中的 3D 打印机通信的工具。我遇到的问题困扰着我,似乎我可以启动与打印机的连接。LCD 屏幕发生变化,代码开始运行,但每当我尝试从端口读取数据时,我都没有得到任何返回。具体来说,他们应该返回“ok”消息,所以我知道继续下一条消息。此外,当我发送 Gcode 字符串时,它似乎永远无法理解它们,据我所知,它们只是被丢弃了。这是我正在使用的示例代码:

这是我用来调用打印机的代码:

编辑:这是一个 Wanhao Duplicator 6。我可以让它与 Cura 和 Octoprint 一起工作,所以我很确定串行通信工作正常,我只是错过了一些东西。

EDIT2:更令人费解的是,如果我连接 Arduino IDE 并将串行波特率设置为 250000,它会向控制台吐出垃圾。如果我关闭它并打开 Cura,让它检测打印机,然后关闭 Cura 并重新打开控制台,它似乎工作正常。

0 投票
2 回答
305 浏览

octoprint - 通过 USB 在 3D 打印机上启动打印的要求

我认为实现一个基本版本的 Octoprint 会很有趣,它可以接收 gcode 文件并在我的 Prusa i3 上启动打印。

通过 USB 在 3D 打印机上启动打印有什么要求?

0 投票
2 回答
850 浏览

dictionary - openscad中的关联数组?

openscad 是否有任何用于字符串键关联数组(又名哈希映射,又名字典)的语言原语?或者是否有任何关于如何模拟关联数组的约定?

到目前为止,我能想到的只是使用向量并使用变量将向量中的索引映射到人类可读的名称。这意味着没有很好的、可读的方式来定义向量,你只需要评论它。

想象一下,我想写一些类似于 Python 数据结构的东西:

这样我就可以在模型定义中以某种可识别的类似哈希映射的方式引用它,比如传递bobbin_metrics['majacraft']给某个东西 asmetrics和引用metrics['close_wheel_diameter'].

到目前为止,我的最大努力看起来像

我认为这会奏效。但它很丑。不完全是“我用bash”丑陋的方式编写应用程序,但也不远了。

有没有更好的办法?

我准备在openscad之外维护数据集,如果需要的话,我准备了一个包含文件的生成器,但我宁愿不这样做。


另外,为了纪念 4 月 1 日,我想念闪烁标签,想知道滚动选框是否可以工作?试过了 :)

0 投票
0 回答
93 浏览

python - pyserial readline() 重新连接后超时

我使用 pyserial 通过 USB 与 3D 打印机(Monoprice Select Mini V2)进行通信。当我第一次连接到打印机时一切正常,但是当我尝试重新打开连接时,我仍然可以发送命令但没有收到任何字符。

当我关闭端口并在同一个程序中重新打开它时,或者当我第二次重新运行 python 脚本在第一个脚本返回后打开端口时,就会发生这种情况。正确重新连接的唯一方法是重新启动打印机或拔下并重新插入。更改超时值或尝试仅读取一个字节并不能解决问题。

简短的非工作示例:

0 投票
2 回答
2625 浏览

python - 如何在辅助显示器上全屏显示图像?

如何使用 PyQt5/PySide 或任何其他 Python 库以全屏模式在辅助监视器上显示所需的图像?过去,我使用帧缓冲图像查看器(FbiFbi 改进)。但是,这种方法需要我使用 Linux。我更喜欢在 Windows 中工作,最好使用 Python 找到解决方案。

动机/背景

我正在研究基于 DLP 投影的 3D 打印过程。当我使用 HDMI 将 DLP 投影仪连接到我的 Windows PC 时,它显示为第二台显示器。我只想将这个辅助显示器 (DLP) 用于显示我想要的 3D 打印过程的图案图像(png、bmp 或 svg)。我想使用 Python 以编程方式控制正在显示的图像。这是https://3dprinting.stackexchange.com/questions/1217/how-to-display-images-on-dlp-using-hdmi-for-3d-printing的后续问题

部分解决方案和问题

下面的代码是一种可能的解决方案,但是我不确定它是正确的还是最有效的方法。我发现了两种使用 PyQt5 的方法:1)使用闪屏,2)使用 QLabel。我的代码面临以下问题:

  • 光标按预期隐藏,但是如果我不小心在辅助屏幕上单击鼠标,则启动屏幕会关闭。
  • 如果我使用 QLabel 方法,我会看到出现白屏,然后我的图像被加载。从出现白屏到显示实际图像之间存在约 0.5-1 秒的明显延迟。
  • 如果图像以高频率显示(例如:每 1 秒),则此代码无法正常工作。例如,在代码中将total_loops=1更改为total_loops=25。使用启动画面方法时,我看到启动画面出现在主屏幕上,然后它移动到辅助屏幕。使用 QLabel 方法时,我看到的只是出现白屏,并且仅显示图像的最后一次迭代。此外,QLabel 的窗口在主屏幕上变为活动状态,并且在任务栏中可见。
  • 如果我想显示视频而不是图像,我该如何处理?

对于 3D 打印应用,解决方案需要满足以下要求:

  • 辅助屏幕是 DLP 投影仪,它不应包含任何与操作系统相关的窗口/任务栏/等...
  • 辅助屏幕上不应出现光标/鼠标或其他应用程序
  • 图片/视频需要全屏显示
  • 在副屏显示或更新图像时,主屏应无干扰。例如,辅助屏幕中的图像窗口不应将焦点从主屏幕中的当前活动窗口中移开
0 投票
1 回答
80 浏览

javascript - jsc3d有没有办法检测2网格碰撞?

我有一个使用 jsc3d 渲染 3d 对象的项目。该项目需要将新配件放入当前图形中。我需要检查附件是否与主要部分发生碰撞,以便输出 3D 模型可以通过 3d 打印机打印。有什么方法可以检测 jsc3d 中的碰撞?

0 投票
0 回答
311 浏览

node.js - 运行 .shp 到 .stl 转换器时出现问题

我正在尝试将 a 转换.shp.stl以便将后者作为模型进行 3D 打印。

我正在遵循“ Shapefiles ”和“使用 shp2stl 将地图转换为 3D 模型”中描述的指南。

不幸的是shp2stl,这两篇文章中描述的工具对我不起作用——我正在尝试从shp2stl存储库运行一个示例,但在此过程中出现错误:

我可能会错过什么?有没有更好的方法来获取 3D 打印文件.shp


我准备了一个 docker 镜像来帮助复制这个问题。重现我的问题的步骤:

  • 拉取图像:

    /li>
  • 在图像中启动 bash:

    /li>
  • 进入示例目录并尝试运行脚本:

    /li>
  • 运行脚本并查看问题:

    /li>

或者,我准备了一个 Dockerfile,可用于构建镜像以最小的努力重现问题:

0 投票
1 回答
6315 浏览

python - 如何通过 USB 发送一个 gcode 命令?

我正在尝试编写一个简单的 python 脚本,将 gcode 命令发送到我的 wanhao D9 主板打印机,运行 Marlin。我在通过 USB 连接到打印机的树莓派上运行 python 脚本。

我已经阅读了 20 多个有类似问题的论坛页面,并尝试了他们的答案,例如将波特率更改为 250000 以及对写入函数参数进行以下更改:

我已经尝试了所有这些组合,并且我还添加了:

以及我文件顶部时间模块的相关导入语句。我在我的 ser 声明和我的 ser.write 函数调用之间添加了这行代码。

我也尝试过添加:

看看这是否会有所作为,但事实并非如此,因为我知道无论如何这是最佳做法。

无论我使用什么组合的这段代码,当我运行我的python脚本时,我的打印机似乎重新启动(屏幕从主页变为打开的万号徽标并返回主页)

我期待任何人就我的代码和我可能做错的事情给予我任何帮助。

0 投票
1 回答
132 浏览

raspberry-pi - 如何同时发送两个不同的 g 代码指令?

我尝试使用 pi 4B 的 UART 引脚同时向 SKR V1.3 发送两个不同的 g 代码指令,以控制我的激光雷达系统的两个轮式步进电机和一个步进电机:

首先,我发送此命令以允许电机不受限制地移动:

但是,当我想同时为轮子发送这些命令时,

对于 Lidar back n' 第四动作,

它们最终不会同时被处理。它们在单独执行时工作正常,但是当我同时或一个接一个地执行它们时,只有在前一个 G 代码命令停止时才会启动下一个。有没有办法解决这个问题并同时执行 g 代码命令?

0 投票
0 回答
520 浏览

macos - Mac 终端连接到 USB 连接的 3D 打印机

尝试连接到通过 USB 电缆连接到我的 MacBook Air 的 Tevo Tornado 3D 打印机。在终端中,我识别 USB 设备并尝试使用以下方式连接它:

但这会产生一个带有随机字符的无响应屏幕: 无反应的屏幕

如果我将打印机连接到运行 OctoPrint 软件的 Raspberry Pi,我可以查看 Pi 的 OctoPrint 网页上的终端输出并查看以下交换:

这列出了允许该软件成功连接到打印机的波特率和其他连接参数。回到终端,打印机直接重新连接到 Mac 的 USB 端口,我尝试通过将上述信息输入屏幕命令进行连接,如下所示:

我还尝试了其他变体,但它们都产生了上面无响应的终端屏幕。有人对我做错了什么以及如何使用 Mac 上的终端连接到此 USB 设备有任何想法吗?

更新,在连接到打印机的 octopi 上运行 stty 并得到以下结果:

更新 2:查看 OctoPi 上的源代码后,有一个名为 comm.py 的文件。它详细介绍了在切换奇偶校验设置时打开和关闭端口的过程。显然这是某种常见的错误/功能???这是连接 Python 串行库所必需的,我现在可以这样做 BTW。这是来自 comm.py 的代码,它是OctoPrint Source的一部分:

我仍然不知道如何让屏幕执行此断开连接更改奇偶校验连接过程。所以也许屏幕是不可能的???