問題タブ [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.
perl - Slic3rで3D印刷中の押出順序のPerlの小さな変更
Slic3rという有名なオープン ソースの 3D 印刷スライサー ソフトウェアは、Perl で記述されています。大学のプロジェクトのソース コードに小さな変更を加える必要がありますが、Perl にはまったく慣れていません。
これは、二重押し出しがどのように見えるかの素晴らしいイメージです。基本的に、ノズル/材料を変更すると、問題が発生します。ノズルのよだれを取り除くためにワイプタワーが必要で、再加熱/冷却などの時間のかかる作業に対処する必要があります。
そのため、私が知っているすべてのスライス プログラムは、エクストルーダーの変更を最小限に抑えようとしています。たとえば、レイヤー 3 とレイヤー 4 が両方の材料を必要とする場合、レイヤー 3 は押出機/材料 1、次に押出機/材料 2 を印刷します。レイヤー 4 では、押出機 2、次に押出機 1 を印刷します。
ただし、常にエクストルーダー番号と同じ順序で印刷する必要があります。すべてのレイヤーは、エクストルーダー 1、エクストルーダー 2、エクストルーダー 3 の順に開始する必要があります。
Slic3r ソース コードで重要なコード スニペットを見つけたと思います。lib/Slic3r/Print/GCode.pm にあり、Github hereにもあり、622 行目から始まります。
コードは次のとおりです。
@Extruder は、[1]、[1, 2]、[1,2,3] またはそれ以上のリストにすぎないと思います。このブロックを変更して、押出機のコマンドを常に番号順 (1、2、3) で記述できるようにします。
Why? についてさらに詳しくお知りになりたい場合は、FFF 印刷、印刷熱交換器などについて、これまで以上に詳しくお話しさせていただきます。
編集実際、 ifステートメント をコメントアウトすると完全に機能しました。再コンパイル後、slic3r は問題なく動作し、Gcode は正しいように見えます。したがって、これはソフトウェア内で順序が言及されている唯一の場所だと思います。この変更を加えた Slic3r コードは、誰かがこの同じ問題に遭遇した場合に備えて、Github の私のフォークで利用できます。zdim さん、フィードバックありがとうございます。
javascript - 3d 印刷 js-slicer (SLAcer.js) のバイナリ処理
序章
皆さん、私は現在、安価な dlp プリンター (SparkMaker) 用の便利な印刷ファイルを生成できる JavaScript ベースの 3D スライシング ツール (SLAcer.js - すばらしい仕事です) に取り組んでいます。印刷ファイルは、いくつかの G コードと単純なバイナリ レイヤー/画像で構成されます (こちらを参照)。
G コードと、バイナリ レイヤーの関連情報を含む Uint8Array を生成できます。現在、すべての G コードおよびバイナリ レイヤーは文字列として連結され (最初の問題がある可能性があります)、最終的には zip ファイルの一部として印刷ファイル (.wow) としてダウンロードできます。(プロジェクトのデフォルト JSZip フレームワーク) (こちらを参照)
私が苦労しているポイントは次のとおりです。
元のバイナリ レイヤーと一致するバイナリ レイヤーの正しい TextEncoding を取得できません。
以下を含むいくつかのことをすでに試しました。
また試しました:
私を驚かせたのは、各 Uint8Array を個別のバイナリ txt ファイルとしてエクスポートすると、それらが必要な/元のパターンとほぼ完全に一致することです
連結:
概要
必要なファイルの内容(テキストと生のバイナリの両方 - utf8):
これは簡単に聞こえるかもしれませんが、正しいエンコーディングに関してはそうではありません。
- SLAcer でスライスしたファイル (バイナリ層が異なる)
- 単層ファイル (元の第 1 層パターンとほぼ一致します)
- 元のソフトウェアによってスライスされたファイル 誰かが私を助けてくれることを願っています:)
c++ - QtSerialPortがシリアルポートに書き込んでいません
QtSerialPort を使用して Gcode コマンドを 3d プリンターに送信しようとしています。プリンターが送信するスタートアップ gcode を接続して読み取ることはできますが、プリンターに何かを実行させるための Gcode を書き込むことができませんでした。私は多くの人のコードを読みましたが、私の知る限り間違っているようには見えませんが、間違いなく何かが欠けています。
これは、3d プリンターに接続するために使用するものです。
これは、シリアルポートに書き込むために入力しているものです。
これによりエラーは発生しませんが、プリンターは反応しません。Qt シリアル コンソールの例を試してみて、「G28」を送信すると、プリンターは正しく反応しました。同じプログラムで、上記のコードを実行してコマンドを書き込むボタンを追加しましたが、何もしませんでした。これは、ポートへの書き込み方法に問題がある可能性が高いことを示しています。私が間違っていることについて何か考えがありますか? 前もって感謝します。