2020年1月17日金曜日

RepRap Snappy

久しぶりに RepRap のサイト を見に行った。

このブログは個人的なメモ用なので、あまり説明らしい説明をするつもりはないのだけれど、RepRap を知らない人もいるかも知れないので、一応、私の知る範囲での説明を試みるが、伝わるかどうか…。

現在の3Dプリンタ関連の技術は、何年だか前に期限が切れた特許技術を利用している。
その際に、技術的な情報を集約し公開し、普及の弾みを付けたのが、reprap.org だ。
個人で購入しやすい低価格帯の3Dプリンタは多かれ少なかれ、reprap の恩恵を受けている。

ハードウェアもソフトウェアも公開されたので、小規模なメーカーあるいは個人が、こぞってキット化した。
初期の設計では、何もない所から3Dプリンタを作る必要があったので、フレームにずん切りネジ(アタマのないボルト)とナットの組み合わせで、締め込み加減で寸法を微調整できるような構造になっていた。
まあ、見た目は、なんというか…アレな感じで、あんまり褒められたものでは無いけれど、ちょっとした金物屋で買える材料を、さほど精密な加工をせずに用意できる、というのは画期的だと思った。
金切りノコとドリル、スパナとドライバーぐらいがあれば形にはなる。
どのみち、ステッピングモーターと制御用のマイコンボードは、普通の金物屋では滅多にお目にかかれないとは思うので、そこで通販とか使うなら…みたいな事を言ってはいけない。
ステッピングモーターはジャンクのプリンターとかスキャナーから取り出すとか、先人達は色々と苦労したようで頭が下がる。

昔話は、このぐらいにして、現状どうなっているか?っていうと




こんな感じでフレームも送りネジも3Dプリンタで作ってしまう方向に振っている模様。
テーブル下のラック&ピニオンの摩耗が激しそうで気になるもののZ軸はそれほど激しく振らないから、これはこれでアリなのかも知れない。

否定的な事を言えば、なんでもかんでも3Dプリントするよりも、金型を起こして量産する方が価格は下げられるし、これを作る、という事は、すでに3Dプリンタを所有していて、それなりの精度で出力できる環境がある、という事だから、2台目以降にコレを作りたい人がどの位居るのか?って話ではある。

私は酔狂なので、一回ぐらいは試してみたいと思っている。

2020年1月10日金曜日

ファームウェア更新 - Marlin 2.0.1

リリースノートをみると、あちこち変更が加わっているようだけど、コンパイル手順などに変更はない模様。
サクッとビルドして、SDメモリカードからのアップデートを試してみたい。

Configration_adv.h でシンボル名が変更されてるのに合わせて書き換えないとコンパイルエラーが出る。

FILAMENT_UNLOAD_RETRACT_LENGTH が
FILAMENT_UNLOAD_PURGE_RETRACT に

FILAMENT_UNLOAD_DELAY が
FILAMENT_UNLOAD_PURGE_DELAY  に

それぞれ変更された。
名前から推測するに、フィラメントを引き戻すときの引き戻し量と、その後のちょっとした待ち時間のための定数の定義だと思う。

場合(機種?)によってはコメントアウトされていて変更不要かもしれないし、別のケースでは、もっと他にも書き換えるべき所があるのかもしれないけど、私の手元の Anycubic Kossel Linear Plus では、この2つを定義してあるのが引っ掛かった。

まあ、コンパイル時のエラーメッセージで「これを修正しなさい」みたいな親切な指示が出てたので、それに従って修正するだけでビルドは通った。
もう、修正箇所まで分かってるんなら自動で修正してくれればイイのに、ぐらいの事は思った。

感謝が足りないね。

2019年12月24日火曜日

OctoPrint-Slic3r プラグイン

OctoPrint に STLファイルを食わせて、gcode を吐かせるプラグイン。
もうちょっとだけ正確に言えば、スライサーである Slic3r へのフロントエンドというか、Web-UI のLauncher か?

プラグイン自体は、他のOctoPrint の、プラグインと同様にプラグインマネージャからインストールできる。
けど、肝心の Slic3r は自動ではインストールされないし、コンパイル済みのバイナリ配布とかも無さそうなので、自力でナントカしないといけない。

一応、OctoPrint-Slic3r の詳解ページ に、ビルド支援のシェルスクリプトが載っているのだけど、コレだと上手く動作しなくて困ったので、ここにメモを残しておく。

ズッコケる理由は主に3つ。(もっと他にもあるかも?)
  1)メモリが足りない
  2)gtkが古い
  3)コンパイラの指定が古い

とりあえず、RAM不足はスワップ大盛りにして誤魔化すしかない。
最初に root権限で
/etc/dphys-swapfile
を開いて
set CONF_SWAPSIZE=100
みたいな行を探す。
100 Mバイトとか全然足りてないので、一気に2048Mバイトまで増やすので
set CONF_SWAPSIZE=2048
に書き換える。
書き換えたら、reboot して free -h してホントに増えてるか確認する。
OctoPi にインストールを試みた訳だけど、Raspbian もどんどんバージョンが上がってるから、色々と新しくなってて、シェルスクリプトで指定されるパッケージがいくつか無くなってたりする。

次はコンパイラとかgtkの問題に対処する。
gcc-4.7 とかが、正にそれで、4.9ならあるから、それで賄う、みたいな泥縄な感じの対応で凌ぎたい。
gtk も2系がダメなら3系を使えばいいじゃないの作戦で…。

色々と試行錯誤したので、クチャクチャになってるけど
install.sh
SLIC3R_REPO="https://github.com/alexrj/Slic3r.git"
SLIC3R_VERSION="1.3.0"
SLIC3R_DIR=~/Slic3r
# sudo apt-get install build-essential gcc-4.7 g++-4.7
# sudo apt install -y libgtk2.0-dev libwxgtk2.8-dev
sudo apt install -y build-essential  gcc-4.9 g++-4.9
sudo apt install -y git git-core
sudo apt install -y libboost-all-dev libboost-geometry-utils-perl libboost-system-dev libboost-thread-dev
sudo apt install -y libwxgtk3.0-dev libgtk-3-dev libcurl4-openssl-dev
sudo apt install -y libwx-perl libmodule-build-perl libnet-dbus-perl libextutils-cbuilder-perl libperl-dev libextutils-cppguess-perl libeigen3-dev libglew-dev libglewmx-dev cpanminus
sudo cpan ExtUtils::CBuilder ExtUtils::CppGuess Alien::wxWidgets CPAN::Mini  ExtUtils::XSpp::Cmd  ExtUtils::Typemaps::Basic
sudo cpanm AAR/Boost-Geometry-Utils-0.06.tar.gz Math::Clipper Math::ConvexHull Math::ConvexHull::MonotoneChain Math::Geometry::Voronoi Math::PlanePath Moo IO::Scalar Class::XSAccessor Growl::GNTP XML::SAX::ExpatXS PAR::Packer
echo "Cloning Slic3r repository..."
git clone $SLIC3R_REPO
cd $SLIC3R_DIR
git checkout $SLIC3R_VERSION
echo "Building and testing Scli3r..."
sudo perl Build.PL
echo "If everything was installed properly,you should be able to run Slic3r with the command ./slic3r.pl"
ぐらいの感じでインストール出来たりしないだろうか?
うちでは、こんな感じで、なんとなくインストールできたよ、事例ってことで…。

あとは、OctoPrint のプラグインの設定に戻って、OctoPrint-Slic3r が使用する Slic3r の在り処を教えておけば、STLファイルをアップロードした時に
「ねぇ?スライスする?するよね?スライス!しないの??」みたいな感じのダイアログボックスが開いて、スライス出来るようになるみたいだが、私の環境には
スライス用のプロファイルが1個も無いのでテスト出来ていない。

お粗末様でした。









ファームウェア更新 - Marlin 2.0.0

Anycubic Kossel Linear Plus のファームウェアを更新した。

http://www.lpomykal.cz/3d-printers/kossel/kossel-marlin-firmware/
から、Marlin 2.0.0 を DL する。

ZIPを解いて、ino ファイルをコンパイルして書き込めば作業は完了。
の、ハズだったが
#define DELTA_PRINTABLE_RADIUS 130.0  // (mm)
って設定されてて、これだと造形エリアの直径が260mmになってしまう。
うちのKLPは、テーブルが240mmだから、ここの値は最大でも 120
余裕をみて 115 よりは小さめに収まってないと色々と拙い気がする。

あとは、ino ファイルをコンパイルして、ボードにアップロードするだけ。
KLPのコントローラ は、Arduino Mega 2560 + Ramps 1.4 相当って事になってるので、ボードの選択を間違えないことと、USBシリアル変換チップのドライバーが入っていれば、後は大して気にかけるべきことも無いと思う。

とりあえず、ファームウェアをアップロードして、一度 EEPROMをクリアした。

その後
http://www.lpomykal.cz/3d-printers/kossel/kossel-bed-calibration-marlin-fw/
に従って、ヘッドの移動に関する調整と
http://www.lpomykal.cz/3d-printers/kossel/kossel-pid-calibration/
に従って、ヘッドの温度制御に関する調整を行った。

以前、愚痴ったパラメーター調整の際のロータリーエンコーダの回転方向と値の増減の関係や、1クリックで4ステップの入力になってしまう問題が改善されているし、ヘッドの移動の最小値が以前の0.1mmステップから、0.025mmステップになっていて、設定を追い込める感じになっているので、これだけでも更新する価値は十分にあると思った。

2019年12月18日水曜日

Anycubic Kossel Linear Plus だった

Anycubic Kossel Plus って書いてしまってたのだけど、肝心なのは リニアガイドが使われてる、ってとこで、私が持ってるヤツは
Anycubic Kossel Linear Plus
と表記するのが正解らしい。
正解かどうかというよりは、正確だったり混乱する要素が少ないとか、紛れがない、というべきかも知れない。
もう今までの記事を掘り返して訂正するのも面倒なんで
「今後は気を付けます」
ぐらいで勘弁してください。

一応、蛇足とわかりつつ説明を加えると、リニアガイドのモデルの前にプーリーと称するゴム?のタイヤみたいなのを2020フレームの溝に沿わせて走らせるタイプのモデルが存在したので、区分としては、プーリーとリニアガイドに大別されて、造形ステージというかテーブルにヒーターが仕込まれてるかとか、テーブル(デルタなので丸型)の直径が何㎜かとかで、プラスとか無印とかに分かれるみたい。

買ったときは、そんな事気にしてなかったよ…。

で、ここからが本題。

Anycubic Kossel Linear Plus に関する、いくつかのリンク

Anycubic Kossel wiki
  Anycubic Kossel Linear Plus のエライ人 Lukas Pomikal さんのWebページ
  ここから
  Marlin 2.0 へのアップグレード
  とか
  ベッドのレベリング
  とか
  PID制御の補正
  とかの、とてもとても有用な情報に辿り着ける。

知ってる人には、「いまさら?」かもしれないけどね…。

以下は Thingiverse へのリンク

Kossel Marlin 2.0.0 - the newest firmware
  上で紹介した  Lukas Pomikal さんが Thingiverse にポストした
  Marlin 2.0 のページ
  同じものみたいだけど、一応…。

The most efficient Anycubic Kossel cooler
  成果物を冷やすノズルのアップグレード版
  標準のノズルはネジ4本で固定されている。
  ホットエンドのヒートシンクと、ノズルが干渉するので、ノズルを外さないとホットエンドが引き抜けない。
  このノズルはネジ2本で固定するように変更されている上に、ヒートシンクとの干渉が無いので、ホットエンドへのアクセスが容易になるメリットがある。
  もちろん、冷却性能の向上も期待できる。らしい。
  円形というか完全な環状のノズルでは見た目に反して冷却性能の向上には寄与しないか、または、冷却効率が下がるとされている。
  アルファベットの C の形になっているので、ベッドのレベリングに使用する
  Zプローブの脱着にも支障がない、と良いことづくめのようだ。

Anycubic Linear Plus Cura Profile
  Cura で使用するプロファイル
  他のスライサーでも参考にできるハズ。

Kossel Linear Delta Plus Corner Support
  ステッピングモーターのマウントの上に盛大に空いている穴のカバー
  兼
  柱どうしを繋ぎ留めて強度を増す
  一石二鳥のパーツ。
  とは言っても、今までのところ、強度が不足してると思った/感じた事はない。
  オサレパーツとかキヤスメパーツの類かも知れないし、もしかして、ヘッドの移動速度をゴリゴリに上げるために必要だったりするのかも知れない。
  少なくとも、ゴミの侵入をいくらかでも防ぐ効果は見込めそうではある。

Kossel Plus Frame 2020 Top Reinforcement
  前出のパーツが柱の根本に取り付けるものだったのに対して
  こちらは、柱の上の方に取り付けて、強度を(以下略
  上側のセクションの方が、ネジ留めの箇所が少ないので
  撚れ防止には、こちらの方が有用かも知れない、とも思うものの、撚れてる実感がないので効果が不明なのは同じ。

Anycubic Kossel Linear Plus carriage tensioner
  ベルトのテンションを調整可能にするキャリッジのアップグレード版
  柱の天辺に取り透けるプーリーの位置を調整するタイプよりもスマートな気がする。

Top and Footer Cap for AnyCubic Delta Linear Plus
  蓋
  柱のてっぺんに空いてる穴を隠す蓋
  あるいは
  柱の底に敷く足
  でも、足にするならクッション材とか滑り止めを張り付ける必要がありそう。

Anycubic Kossel E3D v6 hotend assembly
  文字通り、E3D の v6 ホットエンドを取り付けるためのパーツ
  v6は標準の v5 Jヘッド よりも短いので、スペーサーで調整したり
  マウント方法を変更する必要がある。
  エフェクターを変更すると、Zプローブが使えなくなる弊害があるが
  これは、エフェクターを標準のまま変更しないので、そういう問題が無い。
  v6で大型化されたヒートブロックも、利用できる模様。

  今のところ、v6ヘッドに変更する予定はないが、標準のマウント方式よりも
  このマウントの方がメンテナンス性が良さそうに思えるので一考の余地あり?

AnyCubic Kossel Linear Plus E3D V6 Mount
  上記のv6ヘッドマウント同様、標準エフェクター流用の別解
  見た目の印象が少し違う程度の差しか感じられない。
  冷却用のブロアファンを大型化する例が含まれているので参考までに…。

Anycubic Kossel basic effector
  標準のエフェクターと同じ形のモデルデータ
  カスタマイズのベースとして、あるいは鉄製の標準エフェクターの軽量化部品として。
  製作者は。プーリーエディションのエフェクターから採寸したので、リニアで使えるかどうかは分からない、としている。
  リニア向けと思われるタグも付けられているし、使えない、というコメントも付いていないので使える可能性はある。
  と、思いたい。

2019年12月15日日曜日

構造材、または、角材で「ウルァアァアアッッ!!」

 いきなり、アフィリエイトリンクで申し訳ないしカッコ悪いんだけども
中華キットものも意外と規格化されていて

こういう感じのアルミの角材みたいなのの組み合わせで出来ている事が多い。
手元にある3DプリンタもCNCミリングマシンも、以前使っていた借り物の直交式の3Dプリンタも、この手の構造材を使ってた。
これは、20mm角だけど、30mm角とか40㎜角のもある。
もちろん、太くなれば頑丈になるし、重くなるし、お高くもなる。

ここで紹介してるのは、Amazonで多分中華なお店の中華な材料だけど、確かモノタロウ?だと、国産の材料を好きな長さにカットして売ってくれてた気がする。
メーカーの直販サイトでも切り売りがあったかも知れない。
とても便利だけど、お値段も跳ね上がる。

あと、これを並べて連結したようなのもあって

こんな感じに板状になってる。
これは、4本分を束ねた2080だけど、2本分の2040とかもある。
多分、3本分の2060もあると思う。

で、このちょいとイカした角材を
こういうブラケットで固定する。

この手のブラケットの裏側に入れるナットの代わりに

 こういうのを挟み込むと、矩が出しやすいかもしれない。

あと、3Dプリンタがあるなら、ブラケットはプリントした方が良い場合もあるかと思う。
Corner Brackets For System20 2020 / 2040 Extrusion
だとか
T Slot Extrusion 2020 corner
なんかを、そのまま使うもよし、強度を増すようにアレンジして使うもよし。

という、分かりやすいが調べるとなると、ちょっとした手間がかかる事をメモ代わりにポストしてみました的エントリで御座いました。

貧乏人なので、こんなお高い材料ではなくホムセンで角材買ってきて、ノコとクギで解決したい所ではあるんですけど、反ったり捻じれたりしてない材を探すのは結構大変だし、切り貼りしてると思いのほか高くなったりするので、ここにお金をかけるのはアリだと思います。
レゴブロックみたく組んでバラシて組み直して無限に遊べますよ。

捨て板を調達しないと

CNC3018の加工テーブルに乗せる板を調達したい。

テーブルと同寸で厚みは10mmもあれば十分?
四隅に穴をあけてテーブルにネジ留めする。

捨て板にグリッドを描く/罫書く、または、彫り込んで作業ガイドにする。
貫通穴を掘って、裏面に爪付きナットを埋め込んで、クランプベースにしたい。

あと、ちっちゃいクイッククランプバイスも欲しい。

が、手持ちの定規よりも正確な定規を用意するのが先だな。
今はホームセンターで買ったノギスで0.1mmまでは読めるけど、0.01mmのデジタルノギスが欲しい。