注释
贾勒特, 我也在 Mac 上运行 Web 界面,没有问题。要上传文件,请单击 3d 查看器区域中的小云图标。当你想加载一个不同的文件时,点击小垃圾桶关闭现有的 gcode 文件。 虽然没有注意到高 CPU 或控制台消息。 |
嗨,贾勒特, 谢谢你的来信。Web 界面目前确实缺少拖放功能,但我已将其添加到待办事项列表中,并将很快添加。 至于闲置时CPU使用率高,我会进一步调查。 |
我还注意到即使处于空闲状态,网络浏览器也会导致 CPU 使用率很高,看来我遇到了与mrdoob/three.js#7670相同的问题。 function render() {
requestAnimationFrame(render);
renderer.render(scene, camera);
}
render();
默认情况下, 我将尝试仅在事件发生时才使用静态场景渲染,如下所示: // controls
let controls = new THREE.OrbitControls(camera);
controls.addEventListener('change', render);
let renderAnimationFrame = false; // a flag that will be updated when receiving mouse and keyboard events
function render() {
if (renderAnimationFrame) {
requestAnimationFrame(render);
}
renderer.render(scene, camera);
}
render();
|
如果当前状态不在运行状态,修复将停止渲染动画循环。 例如: class Visualizer extends React.Component {
state = {
workflow: WORKFLOW_STATE_IDLE
};
componentDidMount() {
// create your scene
}
componentDidUpdate(prevProps, prevState) {
requestAnimationFrame(::this.renderAnimationLoop);
}
renderAnimationLoop() {
let isAgitated = (this.state.workflow === WORKFLOW_STATE_RUNNING);
if (isAgitated) {
requestAnimationFrame(::this.renderAnimationLoop); // 60 fps refresh rate
// start animations
} else {
// stop animations
}
this.renderer.render(this.scene, this.camera);
}
}
|
在v0.12.0中添加了对加载 G 代码文件的拖放支持 |
刚刚测试了 0.12.0,这看起来棒极了。 空闲时的高 CPU 使用率和拖放都是固定的。我喜欢你用 gcode 拖/放框所做的事情,我也喜欢 3d 查看器不再与其他框一起滚动,所以下面没有空白,你永远不会丢失屏幕顶部的播放/暂停按钮。 其他一些观察:
抱歉,如果这些都应该是单独的问题,如果这样会更好,我可以将它们全部移出。 保持伟大的工作;我希望在接下来的几周内更深入地研究您的代码,看看我是否可以为您的项目做出任何贡献。我开发了 chilipeppr grbl 工作区,因此我熟悉那里的触摸板小部件、自动级别小部件、grbl 缓冲区处理等的大部分代码。 干杯, |
非常感谢您的建议。我真的很感激。 请参阅下面我对您提出的要点的回复:
|
TODO:浏览器刷新后恢复 UI |
v0.14.7:浏览器刷新后恢复 G 代码 |
我将关闭该问题,因为上面提到的大多数问题都已解决。感谢您在这里的反馈。 |
你好,
我刚刚安装并运行了 cnc.js,它看起来棒极了。但是,我在 Mac 上,要么我遗漏了一些明显的东西,要么有问题,因为我无法加载 gcode 文件。我假设因为没有上传选项,我应该只将 .nc 或 .gcode 文件拖放到浏览器窗口上,但这对我不起作用(在 chrome 或 safari 上),这可能是一个特定于 mac 的问题…
另外,有没有办法抑制打印的所有控制台输出?和 $G 默认响应并且仅显示是否在启动时发送详细/调试标志?该应用程序在闲置时使用了我 51% 的 CPU,我怀疑部分开销是由于不断打印这些控制台输出行造成的。
cnc.js 绝对有潜力!
干杯,
-J。