Pc-Trace

<< 2024年11月 >>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30






Pc-Trace
PC-Trace

Lazer関係 - 2018年5月の記事
>>このカテゴリーの記事一覧

「LaserGRB」で保存したコードを3Dプリンター用に変換する

※以下、既存の3Dプリンターにレーザーヘッドを取り付け、「Firmware」を書き換えること無くレーザー加工を実行してみたい人だけに有効。
非常停止が使いやすい、「Repetier-Host」を対象としたが、「Cura」などでも動作確認。


「LaserGRBL」で書きだしたコードを3Dプリンター用に変換するには正規表現による検索、置き換えが可能なエディッターが必要になる。

有償の「秀丸エディッター」がブームの中、見栄えがシンプルで、瞬時に起動するFreeの「Peggy Pad」を長年愛用してきたが、他に移譲される事なく開発が終了し、会社も無くなってしまった。(高機能だっただけに残念)

Free、高機能、高速処理の三拍子が揃った「Peggy Pad」。
画面もこれ以上ないほどシンプル。


終了予告があったため、最終バージョンをダウンロードして保管しているものの、現在利用しているバーションはインストール時そのままの一つ前のバーション。

「Peggy Pad」が廃止されても"Free"で同等の機能を有するエディッターは他にも存在するので、参考までに。
http://sakura-editor.sourceforge.net/download.html

※正規表現が外部プラグインになっているようで、同時にダウンロードするか、プラグインを含んだインストール版を入手する必要がありそうだ。



ここから本題。
※正規表現についての参考例は、20年以上もブランクがあり、使い方を大いに間違っている可能性があるので自己責任で

「LaserGRBL」で保存するデータは、モードにより様々なパターンに変化するので、注意が必要。
画面に表示された領域だけで置き換えを判断し、一括処理するのは危険! 解像度の設定値を変えるだけでもコードパターンが変化する場合がある。

PWMが有効な場合に生成されるGコード


PWMが無効な場合のGコード



他にも山盛りの注意点があるが、以上を踏まえコード置き換え時のポイントを大まかにまとめると、

M3(Servo"ON")は、
(1)..M106 でレーザー"ON" S値 0〜255 の間でレーザー強度レベル
に。

M5(Servo"OFF")は、
(2)..M107 でレーザー"OFF"
に。

Fxx は、
(3)..G1 Fxx
に。

(4)..G21(ミリ設定)コードの追加
無いと25.4倍に拡大される事がある。

その他、座標末尾に単独で存在する"Sxx(xxは"0〜255"の間)" などのコードは、行挿入後の上段に配置し、M106 Sxx に置き換え。

"S0"だけの場合は"M107"に置き換える。
次のコードがG0で始まる場合、置き換え機能によりM107コードが重複するので必要無い。(あっても問題にならない)

いずれのGコードも、座標末尾に、F値(送り速度)を追加する
コード最終行には忘れずM18コード(すべてのステッピングモーターを無効)を入れる。


(PWMが有効な場合のコード置き換え)
正規表現での検索・置き換え例の画像は、あくまで個人的な方法によるもので、自分の考えとエディッターの機能に合わせて適宜変更する必要がある。・・かも?

例1:G0コードの場合

S0
G0 X0.933 Y1.4 S0


の場合、

M107
G0 X0.933 Y1.4 F800


に置き換える。
※ G0コード F値、"Fxx" はレーザー出力無しの時の任意の移動速度に

正規表現での置き換え例(2つにグループ化)




例2:G1コードの場合

G1 X1 Y1.333 S59

の場合、

M106 S59
G1 X1 Y1.333 F200


に置き換える。
※ G1 コードでのF値、"Fxx" はレーザー出力時に見合った任意の速度に

正規表現での置き換え例(2つにグループ化)


こんな感じで、他のモードについてもマニュアルに従って検索・置き換えをすると3Dプリンターでのレーザー彫刻が可能となる。

慣れると5分もあれば変換が終わるようになる。

添付ファイル 添付ファイル


LaserGRBL v2.3.0 speed optimization

YouTubeより






これ等の動画を見ていると"そもそも論"に立ち返ってしまう。

個人の空間事情を無理やり3Dプリンターに押し付け、わざわざコード変換までしてやる理由が、僕以外の"余裕"ある人にとってはそもそも不必要な話。
レーザー彫刻機も、時間を費やす以上に低下価格化が進んでいる。
3Dプリンターで兼用した場合、ワークエリアも200x200と中途半端だし、個人的な事情を備忘録として残すのであればPC内に整理しておけば良いだけの話。

まぁ、唯一の利点は外部から情報として検索出来る事くらいか。
良く考えたらあまり意味の無いことを必死でやってた。
その間、皆先へ先へと進んで行ってる。


「LaserGRBL」 備忘録1

3Dプリンター(「Merlin」)用にレーザー彫刻データを変換する前準備

前準備の設定ダイアログ
「grbl」→「Settings」で開いたダイアログ


彫刻する画像の取り込み


PWMモードの有効化で追加されるツール


PWMモードチェック無しの場合のダイアログ


データ書き出しダイアログ



次の備忘録に続く・・。


「LaserGRBL」 画像ごとのコード形態を調査中

328Pを搭載した「UNO」や、その互換機で使用されている「GRBL」で動作するレーザー専用機では必要無い作業だが、あくまで一般の3Dプリンターで、「GRBL」のデータをコンバートして動かしたい場合の個人的な備忘録。

データ抽出用の対象アプリは画質と機能を優先して「LaserGRBL」一本に絞った。
市販のレーザー彫刻機に付属している数種類のアプリ(Benbox、NEJE LaserCarver・・等々)を試してみたが、画像のGCODEデータを保存出来ないなど機能不足なものが多い。
その点「LaserGRBL」は処理体系が完成されているだけでなく、レーザーの強弱をコントロールしながら照射できる「PWM」機能を有するなど、難しい条件を満たしている。
(最新のバーションでは「BACKLASH」対策と思われる機能も追加されている)

結論からの提示。 

レーザーヘッドに「PWM」コントロールが無い場合の一般的なラスターデータ。 他のレーザーアプリと比較すると精細で綺麗。



レーザーヘッドの「PWM」コントロールを有効にした場合のデータ。 非常に綺麗!
(この機能を使うには、オプションの「PWM」機能にチェックを入れる必要がある)



上の二つのコード(PWMの有無)を出力して比較。
まるで異なる別コードが生成される。
どちらも3Dプリンターのファームウェア「Merlin」では処理する事が出来ない。


下の実行画像は、自作の3Dプリンター(ファームウェア「Merlin」)で出力したもの。
左側の画像はPWM機能無しの一般的なラスター処理画像。
右側の画像がPWM機能を有効にした場合の処理画像。
どちらの方が綺麗な画像で出力されるか一目瞭然。 人魚の高さは3センチ程度。



上の画像は事務用の茶封筒でテストしたもの。


一見、不可能に思えた「Merlin」でのレーザー出力PWMコントロール。
FANのコントロールバーが、レーザーの強弱に合わせて気ぜわしく動く。


これ等のデータを3Dプリンター用に出力するための作業手順は次回。


「Coffee Break」 レーザーについて、ちょっと振り返る。

3Dプリンターと、レーザーを"ドッキング"する事により遊び(あくまで遊び!)の幅は2倍に膨らんだが、スペースは1/2に節約できた。

かかった費用はと言うと、"御託"を並べて時間を費やした割には5,000円でお釣りがくる程度。(1W〜1.5W想定)
大切なのは"アプリ"の方だったと言うお粗末な結果となった。

これまでの動静(レーザーだけ)にフィルターをかけると、残ったものは3,500円程度のレーザーヘッドを購入し、1,000円程度の降圧コンバーターと僅かなケーブルを購入してFAN端子に接続しただけ。

「Coffee Break」だけで、"どうにかならんかったのか?"とつくづく思う。
知人や友人に"すごいね!"と言われるたび胸が"チクチク"する。



コードと画質の調整中!

「GRBL」の3Dプリンターへのコード変換も慣れると30万行もあるコードが数分で出来るようになる。

慣れは大事!

あとはコードと画質の"最良"を探すための旅に出るだけ。
意匠の関係でプリントした封筒を使う事は出来ないので、あくまでテスト用。

※使用した画像は公式サイトからフリー素材として公開されていた「壁紙」をダウンロードしたもの。

まだ暫く"探す"旅が続きそうだ。


コード体系の共有

自作レーザー彫刻機で今でも困るのがアプリの選定。
同じGcode体系でも「GRBL」と3Dプリンターなどで用いる「Gcode」ではほぼ互換性が無く、うまく共有出来ない。

唯一「Inkscape」でエクスポートするデータだけは、書き出すMコードと、S値を設定できるため、双方を動かす事ができる。
ただし、ラスターデータの出力解像度だけが非常に低く、とても印鑑などを彫刻できるほどの解像度を持たない。

「GRBL」のコードをテキストエディッターの正規表現での"置き換え"機能を利用し3Dプリンター用のGCODEに変換。 スライサーにうまく読めたが、データ用のビュワーでは無いため、サイズと輪郭しか把握出来ない。



フリーの「LaserGRBL」で書きだし、そのまま「GrblController」で読み込んでみた。
レーザー出力用にMコードを編集し、「Repetier-Host」でプリントすると、レーザーの「ON」「OFF」とが反転してしまう。 画像もどこか見難い。



こちらは3Dプリンター用に完全に変換できたデータ(ヘッダー除く)。画像をハッキリ認識できる!



「LaserGRBL」のデータを3Dプリンター用のコードにうまく変換できた場合、下の画像のように綺麗に出力できる。 印鑑でも楽に彫刻できるほどの解像度がある。
※サンプルで使用した画像は過去にDisneyがフリー素材(固定サイズ)として掲載していたもの。


現在は廃止されてしまったが、コード変換に利用したテキストエディッターは「Peggy Pad 4.62」

「GRBL」を正規表現の置き換え機能を用いて3Dプリンターで処理できる「GCODE」に変換する手順はまた後日?
添付ファイル 添付ファイル


「ベクトル」と「ラスター」の混在データを試す

「FB」のS様から、「ベクトル」と「ラスター」のデータを混在して処理した際、弊害となる干渉があるかについての?コメントが寄せられた。
これまで、常にどちらか一方の処理と、それに該当するソフトの選定しか頭になかったので、これには目から鱗!
老化した脳はハイブリッド対応で無かった事を改めて自覚!

いずれのデータ形式であろうと、書き出すデータはテキスト形式なので合成はいとも簡単。

コード接続部分の一部コードを修正するだけで実現できるため時間短縮のための荒いデータを準備し早速テストしてみた。

Inkscapeで処理する際、"ベクトル"で書き出すデータと"ラスター"で書き出すデータを、予めレイヤー分けしておく。 (合成時の位置とサイズをきちんと合わすのが目的)

※レイヤー名を指す矢印の「yuki」と「waku」が逆になっているので訂正!


それぞれ異なるプラグインでラスターデータとベクトルデータを書き出し、後で合成する。

合成した「GCODE」データの生成状態を「GrblController」を利用して確認。 ラスター画像とベクトル枠がうまく合成されている


混在データのレーザー彫刻結果。
レーザーのテスト用で使える余白がまだ十分にあるため、外枠は切り抜かずマークするだけに留めた。


当たり前だが、あっさり成功!
たったこれだけでも、レーザー彫刻の応用の幅が"グ〜ン!"と広がる。


問題山積

今更な話では無いが、順調に行かない方が当たり前なのか?

作業対象:Jwwで設計した仏具(小型の六角灯籠)図面


「Inkscape」でレーザー用の"gcode"として生成し、「Repetier-Host」で読み込む。


図面尺度と円弧サイズに合わせて分割数(解像度)が自動調整されてしまう?
個人的には大いに不満が残る"ガクガク"の分割数。


"ガクガク"の分割数が、排出したデータに原因が無い事の証明。
「GRBL」では円弧大小のサイズ関係なしに滑らか。


初めての白紙描画・・のつもりが切れまくり! で、緊急停止!
描くより切る方が好きらしい。



また振り出しに戻った!


調整不良で切り紙細工に

みての通り。
経験を積んで解決するしかない。
卓上レーザー機と同じ感覚で設定した結果、A4サイズの茶封筒を下(2枚厚)まで貫通させてしまった。

サイズ40ミリの図面では数字など、肉眼で読むことすら出来ない。
数字そのものも輪郭だけの袋文字だったため中が切り抜かれている!


ひとつ分かった事は、実用域を超えた精細な加工が出来るという事。

東本山・屋根彫刻 (仏壇宮殿用)
レーザーの照射速度を3倍にして今度は成功。
しかし、図面で使うにはあまりにも線が細くて撮影時のフラッシュで飛んでしまう。


※仏壇の宮殿などにつけられた各部の呼称は古建築で用いるそれとは異なり、イメージ化された意匠に独自に用いられている場合が多い。
虹梁、紅梁、高梁・・など。



バックコンバーターと、TTLコンバーターのサイズ比較

サイズ比較とは言ったものの、手間暇かけて作るより買った方が早い。
デジタル表示付き1枚+表示無し2枚の合計で2,400円弱。
興味本位の衝動買い。

当分出番は無いが、電圧を規格内で自由に設定できるメリットは大きい!


そろそろ、ハードの製作よりデータ作りに没頭しなければ本末転倒に。


3Dプリンターとレーザー兼用機の完成

大した苦労や技術など必要無い割に、時間だけを浪費して兼用機の完成!
今度は"ラスター"と"ベクトル" 両方の加工が可能になった。

レーザーと3Dプリンターのヘッドを抱き合う形で取り付け。


プリンターに取り付けたレーザーの照射テスト。
照射中の画像サイズは30ミリ✕50ミリの極小サイズ。(理論上の精度は16倍に上がった)


レーザー二度目を照射中。 (二度目で表面に切れ込みが入った!)
動作音は静かで、ファンの音しか聞こえない。


レギュレーターの出力には充分な余裕があるので、1.5W程度のレーザーで発熱する事は無かった。
計算上、7Wのレーザーまでは大丈夫なので、せめて4W程度のレーザーヘッドが欲しい。(ちょっと間を置かないと無理っぽい!)

特にプラットフォームの改造無しでも合板の切り抜きまでは出来そうなので次にヘッドを交換する際はやってみたい。(希望だけ?)
添付ファイル 添付ファイル


ついでに「TTLモジュール」まで製作

特に見たいテレビ番組無し!=TTLモジュール製作
"無茶苦茶"な式が成り立ったところで早速製作開始!

とっとと必要なパーツを取り付け、組み立てていく。


指で触って「ヒートシンク」を取り付けるか否か判断すると意気がってた割には臆病な結果に。 ・・反省! (ここは安全第一で)


んで、完成!


リップルを気にかける余り、今度は過渡特性が気になりだし、入出力ともデカップリングは控えめの2.2μに決定。
(t/255)のデューティ比では問題にもならないとは思うが、何せ「オシロ」が無い。


あとは3Dプリンターに取り付け、「PWM」信号を出力し、正常動作するか確認するのみとなった。

ちなみに、TTLのスレッショルドレベル(L,H)の参考値は以下の通り。
スレッショルド(L)最大電圧0.8V
スレッショルド(H)最低電圧2V


卓上レーザーヘッドの取り外し

何もしない1日で終わりそうなので、卓上レーザーのヘッド取り外しだけ。

デッキを固定しているナットを4ヶ所取り外す。
※取り外しの際、邪魔になるので冷却ファンも取り外しておく。




レーザーヘッドを固定してる六角穴付ボルトを取り外す。




デッキのレンズ部分に固定されている六角ボルトも取り外す。




レーザーレンズ




レーザー・リード線引き出し後部




Amazonなどでよく見かける構図




最後に、TTLのモジュール製作用に、ユニバーサル基板を必要領域ほど切り取っておく。(ニッパーで両端に僅かな切り込みを入れ、小型のモンキーに挟んで折る)


今日はここまで。


3DプリンターへのLazer移植。 気力不足で実行に移せず。

思いつきの"テスト"をする予定だったが、さすがに400gでは重すぎてベッドが動かなかった!



本来、CDやDVDのトレイを"開閉"するだけの役割なので無理も無い。
とっとと3Dプリンターに移植すれば解決する問題だが、どうにも気力不足!

その気になるだけの話なのだが・・。