Flashforge Adventurer3 でABSフィラメントを使った
ABSフィラメントを使ってサイコロを出力
前回は本体に付いてきたPLAフィラメントを使いました。
今度はABSフィラメントを購入して使ってみました。出力したのは前回のサイコロで設定は標準です。
PLAのサイコロと品質面の違いは特に見当たりらず、サイズも同じでした。
印刷時間は出力が始まってからの時間はPLAと変わりませんでしたが、出力が始まる前にヘッドとプラットフォームを温める時間が結構長くかかりました。このサイコロの時は6分50秒ほど経ってからオブジェクトの出力が始まりました。PLAの時は測ってなかったんですが、こんなに長くはなかった気がします。
その他
他にもオブジェクトを出力してみていていくつか分かったことがあります。
ラフト
ABSで最初に出力したのはギアだったんですが、ラフトを無効にして出力したら失敗しました。
ABS初印刷は失敗した。ラフトをなしにしたのが多分悪かった。 pic.twitter.com/pyc5ptNkrL
— loca (@locatw) 2018年8月1日
この後ラフトを有効にしたらうまく出力できたので、これ以降は必ずラフトを有効にして出力するようにしています。
ヘッドの温度
[2018/08/11 追記] ヘッドの温度を230℃にすると、プラットフォームとラフトの食いつきが非常に強固になり、ヘラを使っても剥がれなくなってしまうようになりました。デフォルトの225℃の戻したところまたうまく剥がれるようになったので、温度設定はデフォルトのままにする方がよいです。
Adventurer3のABSのデフォルトだと、ヘッドの温度が225℃になっています。ところがこの温度だとオブジェクトを出力すると糸が引いたり、変な所にも樹脂が出てしまうことが結構ありました。
完璧にできてるようで実はちょっと課題もある。ABSのデフォルト設定だと変な所に材料が出ちゃってる。設定を変えてみた方がいいのかもしれない。温度かな? pic.twitter.com/DKF4ElLI7R
— loca (@locatw) 2018年8月2日
調べてみると、ABSでは230℃以上に設定するらしいので、設定で230℃にして出力するようにしたらうまく出力されることが多くなりました。(それでもたまに起きます。)
プラットフォームの温度
ABSの場合はプラットフォームの温度が100℃くらいになるので、出力が終わった後に触るときはやけどしないように注意する必要がありました。
作ったもの
サイコロ以外にABSフィラメントを使って作ったものです。モデルは全てFusion360で作りました。
ギア
モジュール0.5という規格のギアで歯数は36と12です。タミヤの工作キットのギアと同等のものが作れるか確認したくて作ってみたものです。
ラフトをありにしたらちゃんと印刷できた。でもラフトが強力にくっ付き過ぎてて取れないw pic.twitter.com/yQDYCLUOIl
— loca (@locatw) 2018年8月1日
ギアボックスに組み込んでもちゃんと動いた。赤いのはPLAで印刷したもの。 pic.twitter.com/NKnqNbpmz9
— loca (@locatw) 2018年8月1日
同じものはPLAでも出力していました。
Adventurer3でモジュール0.5のギア(36Tと12T)をPLA樹脂を使って印刷してみた。青いのはタミヤの工作キットのギア。正直歯の部分は歪になるんじゃないかと思ってたけど、まったくそんなことなくキレイに印刷できてるっぽい。これそのまま使えるんじゃないか? pic.twitter.com/GLzrNlSqHX
— loca (@locatw) 2018年7月29日
ただ課題があって、真ん中の穴の直径がデータより小さくなってしまいます。
小さいギアの部分で歯と穴の距離が近すぎて直径が小さくなってるのかと思ってでかい方だけで印刷した。それでも穴の直径が2.5mmになったから別の理由らしい。 pic.twitter.com/V2FjfbkLBD
— loca (@locatw) 2018年7月29日
乾電池ホルダー
乾電池を収納ボックスにそのまま入れて保管していたんですが、ショートしたら危ないなぁと思っていたのでホルダーを作りました。(これを作るときに金属のノギスでサイズを測っていたら、電池が発熱して火傷しかけました...)
単三乾電池ホルダーを3Dプリンターで作ってみた。モデリングはFusion360。印刷はFlashforge Adventurer3で材質はABS。 pic.twitter.com/A2VSVPv63M
— loca (@locatw) 2018年8月2日
円の深さを10mmにしたらかなり安定した。あとヘッドの温度をデフォルトの225℃から230℃に上げて印刷したら変な所に材料が出てた問題も解消された。ABSは230℃以上って記事があるからデフォルト設定が少し低いらしい。 pic.twitter.com/WlREzQCZ8g
— loca (@locatw) 2018年8月3日
ユニバーサルジョイント
3Dプリンターで作ってみたかったものの1つがユニバーサルジョイントでした。
Flashforge Adventurer3でユニバーサルジョイントを作れた。手に持ってるシャフトの直径が3mm、ジョイントの直径が8.2mm、真ん中の立方体は1辺5mm、ネジはM1.4x3mm。こんな小さなパーツでも3Dプリンターで作れるんだね。 pic.twitter.com/a5UUsUWwao
— loca (@locatw) 2018年8月4日
モーターで回してみた。たーのしー! pic.twitter.com/N35Otx9ALL
— loca (@locatw) 2018年8月4日
Flashforge Adventurer3を購入
新しくFlashforge Adventurer3という3Dプリンターを買いました。
今までは1年半前くらいに買ったダヴィンチMini wという機種を使っていました。
それが2,3ヶ月前に壊れて印刷途中にエラーで中断するようになってしまいました。修理を考えましたが1万数千円する(人件費を考えると高くはありませんが)のが分かったのと、フィラメントにPLAだけではなくABSを使いたいと思うようになっていたので新しいプリンターを買うことにしました。その時にちょうどFlashforgeが近々新しくプリンターを発表する情報を得たので、それを待って購入しました。
この記事ではセットアップから実際にモデルを印刷してみたところまで、マニュアルだけでは分からなかった所や実際の手順、印刷した感想なんかを書こうと思います。本体の操作方法はマニュアルに書かれているのでこの記事では詳細な操作方法は省きます。
セットアップ
まずは公式サイトから3つのドキュメントをダウンロードします。
adventurer3 | 3Dプリンター | フラッシュフォージ
- ユーザーガイド
- 開封する際の注意事項
- クイックスタートガイド(任意)
クリックスタートガイドはプリンターに同梱されていますが、あとの2つはダウンロードする必要があります。特に 「開封する際の注意事項」 は重要で、電源を入れる前にそこに書かれている緑の部品を取り外す必要があります。
次はクリックスタートガイドの通りに電源ケーブルを接続して電源を入れ、以下のような手順でセットアップしました。
- プリンター本体の言語設定の変更
- フィラメントのロード
- Wifiの設定
- 校正
- FlashPrintのインストール
プリンター本体の言語設定の変更
まずは本体のタッチスクリーンで言語設定を日本語にします。ただ、「フィラメント」も「樹脂」と訳されていて逆に分かりにくかったり、日本語が不自然だったりするので英語が分かるならそのままでもよいかもしれません。
フィラメントのロード
これはクリックスタートガイドの通りにやります。フィラメント吸入口にフィラメントを入れた状態でロードを開始した後はゆっくりフィラメントがロードされるので数分かかります。数分すると検査の時に使ったであろう白い樹脂と、今回付属していた赤い樹脂が出てきます。
(ただ、今思うともっと奥まで押し込んでいたらすぐにフィラメントが出てきたのかもしれません。)
Wifiの設定
タッチスクリーンで操作してWifiの設定をします。これはクイックスタートガイドではなくマニュアルに書かれています。WifiをONにする(スクリーンの右上でONにできる)と、アクセスポイント一覧が表示されます。そしたら接続するアクセスポイントを選んでキーを入力します。
ただし、アクセスポイント一覧に5GHz帯のアクセスポイントが出てこなかったので、対応しているのは2.4GHz帯の規格だけのようです。
あと私は使っていませんが、有線ケーブルにも対応しているようです。
校正
お試しでモデルを印刷して失敗するのも嫌なので先に校正をします。タッチスクリーンで校正を選んだら、ノズルとプラットフォームの間の距離を調整します。私はノズルとプラットフォームの間に普通紙を通してみてギリギリ通らなくなった距離にしました。これでよいのか分かりませんが、ちゃんと印刷できたのでたぶんいいと思います。
FlashPrintのインストール
モデルを印刷するためにはデータを用意する必要がありますが、そのためにFlashPrintというソフトウェアを使うようなのでインストールします。FlashPrintはFlashforgeのサイトからダウンロードできます。
ダウンロードしたらZIPファイルを展開してインストールします。
記事を書いている時点でダウンロードできるのは3.21.0が一番新しいですが、既に3.23.1が公開されているらしく、それをもう一度インストールする必要がありました。
ちなみに、私はVivaldiというブラウザを使っているのですが、ディスプレイの右半分にブラウザを表示していたらダウンロードリンクの表が表示されず、最大化したらリンクが表示されました。もしVivaldiを使っていてリンクが表示されなければ、最大化するか他のブラウザを使ってダウンロードするとよいと思います。
FlashPrintの使い方
プリンターに接続する
FlashPrintを起動したらまずはプリンターに接続します。接続はメニューから「スライス」→「プリンターに接続する」をクリックします。クリックするとプリンターのIPアドレスとポート番号を入れるダイアログが表示されます。
プリンターのIPアドレスとポートは、プリンターのタッチスクリーンから、「ツール」→「その他」を選択するとIPアドレスが表示されます。「192.168.0.2:8899」と表示されているので、':'の前がIPアドレス、後がポート番号です。
モデルデータを読み込む
印刷するモデルーデータを用意します。私は前に使っていたプリンターのギャラリーからサイコロのモデルをダウンロードしました。
他にはThingiverseというサイトでダウンロードがあります。ここから単純であまり大きくないモデルを探してダウンロードするとよいと思います。FlashPrintは".stl, .obj, .fpp, .3mf, .png, .jpg, .jpeg, .slc, .bmp"というフォーマットのファイルに対応しているようです。Thingiverseでも大抵".stl"ファイルだと思います。
モデルデータが用意できたらFlashPrintで読み込みます。画面上部の「ロード」という青いボタンをクリックしてモデルデータを選択します。
印刷用データに変換(スライス)する
モデルデータを読み込んだら画面上部の「スライス」と書かれている青いボタンをクリックして3Dプリンターで印刷できる形式に変換します。まずは標準設定にしました。
- 「樹脂の種類」をPLAにする
- サポート材を無効にする
- 解像度は「標準」
サポート材はモデルによっては必要なので、その場合は有効にします。
印刷
FlashPrintから印刷するとプリンターで印刷が始まります。約46分かかると推定されました。
プリンターのタッチスクリーンに印刷中のデータが表示されていました。モデルのファイル名や残り時間が表示されてます。下にボタンがあるので一時停止したりできるようです。
印刷しているところです。
印刷が終わりました。
前にダヴィンチMini wで印刷したサイコロとAdventurer3で印刷したサイコロを比べてみます。ただし、ダヴィンチのものはどんな印刷設定だったか分からない(壊れているので再度印刷することもできない)ので公平な比較はできないです。
見比べるとどちらも同じ大きさですし積層にも違いはないです。
裏面(プラットフォームに接する面)は少し違いがありました。というのも、ダヴィンチの場合はプラットフォームにシートを張っていてそれがモデルに模様として写ってしまっています。でもAdventurer3はプラットフォームの模様が写っていないので、ここは良いなと思います。
印刷時間は推定は46分でしたが、実際は約53分でした。
印刷(高精度)
次は同じモデルを高精度設定でレイヤー高さを0.05mmにして印刷してみます。
写真でうまく撮れなかったんですが、標準設定(左)と高精度設定(右)を比べると目で見て分かるくらいの違いがあります。高精度ではレイヤーの凹凸が目視できないレベルでした。また、指で触ると標準設定は凹凸を感じますが、高精度設定はツルツルした感触です。
上から見比べると、穴の中のレイヤーの粗さに違いがあるのが分かります。高精度設定はすごく細かいです。
最後に印刷時間ですが、推定は3時間51分でしたが、実際は4時間7分でした。レイヤーの高さは3.6倍薄くなりましたが、印刷時間は約4.4倍になった計算です。
感想
印刷を始めてまず思ったのが動作音が静かなことでした。ダヴィンチとの比較になりますが、印刷スペースを覆っていて音が漏れにくいのもあって、ファンの音はそれなりに発生していますが同じ部屋で別の作業もできるレベルの静かさだと思います。
また、PCで使うソフトウェアが使いやすいと思いました。ダヴィンチの場合はXYZwareというソフトウェアを使うのですが、処理待ちになるとソフトが数秒間固まるので使っていて快適ではなかったです。FlashPrintは固まるような動作をしませんし、UIも自分は分かりやすいと感じました。
印刷については、高精度設定なら印刷したものによっては表面の仕上げをしなくてもそのまま使えそうなくらいでした。また、標準設定でも歪みもなさそうですしバリもでませんでしたので印刷品質も良いと思います。
後は本命のABSでも印刷も試してみたいですが、まだフィラメントがないので後日になります。今回の結果を見ると結構期待できそうです。
.NETアプリでマルチコアCPUを活かす
F#でレイトレーサーを作っていてArray.Parallel
モジュールを使って処理を並列化したら、CPU使用率が40~50%くらいまでしか上がらない現象が発生しました。原因を調べたら.NETランタイムのGCの設定を変更することで解消できたので記事にまとめます。
現象
以下が並列化している個所のコードで、640 x 480の解像度の画像を生成する場合、あるピクセルの色を計算するrenderPixel
関数が640 x 480 = 307,200回呼び出されます。また、renderPixel
関数では最大1万回シーンオブジェクト(球など)との衝突判定と色の計算が行われ、そのときにベクトルの計算(和や内積など)を大量に行います。
let render scene (width : int) (height : int) = let coords = seq { for y in 0..(height - 1) do for x in 0..(width - 1) do yield { X = x; Y = y } } |> Seq.toArray let data = coords |> Array.Parallel.map (fun coord -> renderPixel scene width height coord) { Width = width; Height = height; Data = data }
この状態だと私のPCでは1枚の画像を生成するのに約550秒(9分10秒)かかりました。
CPUを100%まで使い切れればより速く画像を生成できるので原因を調べることにしました。あと、せっかくマルチコアのCPUを使っているのに活かし切れていないのはもったいないと思うので。(正直こっちの理由の方が大きいです。)
また、F#のArray.Paralle.map
は内部でSystem.Threading.Tasks.Parallel.For
を使っています。なのでこの現象はF#固有の現象ではないです。(調べたら.NETのランタイムが原因でした。)
Parallel.map<'T,'U> Function (F#)
解決策
解決方法を先に書くと、.NETのGCのモードをサーバーGCというものに変更すると解決しました。
ガベージ コレクションの基礎 | Microsoft Docs
.NET Frameworkの場合
App.config
にgcServer
という要素を追加してenabled
属性の値をtrue
にします。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<runtime>
<gcServer enabled="true"/>
</runtime>
</configuration>
gcServer
はデフォルトでfalse
(ワークステーションGC)です。
.NET Coreの場合
プロジェクトファイルにServerGarbageCollection
を追加して値をtrue
にします。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup>
...
</Project>
project.json と csproj の比較 - .NET Core | Microsoft Docs
この設定をするとCPU使用率が100%まで上がるようになり、約202秒(3分22秒)、変更前より約2.7倍速く画像を生成できるようになりました。
改善した理由
ガベージ コレクションの基礎 | Microsoft Docs
このページの「ワークステーションとサーバーのガベージ コレクションの比較」に、
ワークステーションのガベージ コレクションにおける、スレッド処理とパフォーマンスについての注意点を次に示します。
・コレクションは、ガベージ コレクションをトリガーしたユーザー スレッドで、それと同じ優先順位で実行されます。 ユーザー スレッドは一般に通常の優先順位で実行されるため、その場合 (通常の優先順位のスレッドで実行された場合)、ガベージ コレクターの CPU 時間が他のスレッドと競合します。
...
サーバーのガベージ コレクションにおける、スレッド処理とパフォーマンスについての注意点を次に示します。
・コレクションは、 THREAD_PRIORITY_HIGHEST の優先順位で実行される複数の専用スレッドで実行されます。
・ヒープおよびガベージ コレクションを実行するための専用スレッドは CPU ごとに 1 つずつ用意され、複数のヒープのコレクションが同時に行われます。 各ヒープには小さなオブジェクト ヒープと大きなオブジェクト ヒープがあり、どのヒープもユーザー コードからアクセスできます。 異なるヒープのオブジェクトを相互に参照できます。
・複数のガベージ コレクション スレッドが連携して処理を行うため、同じサイズのヒープを処理した場合、サーバーのガベージ コレクションの方がワークステーションのガベージ コレクションよりも高速です。
...
と書かれていました。
レイトレーサーではベクトルの計算を大量に行うため、有効期間が短い(ジェネレーション0)ベクトルクラスのオブジェクトが大量に生成されます。(これはVisual Studioのプロファイラを使って確認しました。)
そのためgcServer
を有効にする前はGCを1スレッドで行っていたためボトルネックになりCPU使用率が上がらず、gcServer
を有効にした後は論理CPUの数(私のPCの場合は12)だけGCのスレッドが用意されてボトルネックが解消されてCPU使用率が上がったのだと思います。
その他
今回の現象について調べてる最中に知ったことが他にもあるので、せっかくなので書いておきます。
CPUグループ
CPUグループは64個の論理CPUをまとめたもので、1つのシステムで64個より多い論理CPUがある場合は複数のCPUグループが存在するみたいです。
また、How to Get Started with Multi-Core: Parallel Processing You Can Use – US ISV Evangelismに、
CLR only uses processor group 0 and doesn’t call any of the new Windows NUMA APIs. If you are a C# or VB developer, you’ll be able to use up to 64 processors. This provides plenty of processing power for the foreseeable future on commodity hardware. But rather than embed NUMA into your code, .NET Framework 4 provides some a new namespace that lets you take advantage of parallel processing power in your PC.
と書かれていました。CLR(共通言語ランタイム)はデフォルトで1つのCPUグループしか使わないようです。
なので、もし64個より多い論理CPUを持つシステムで.NETアプリを動かす場合、CLRで全てのCPUグループを使うようにする設定が必要みたいです。
.NET Framework の場合
c# - Unable to use all processors in .NET on AWS c5.18xlarge 72 vpu - Stack Overflow の回答によると、App.config
にThread_UseAllCpuGroups
, GCCpuGroup
, gcServer
を有効にする設定をするらしいです。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<runtime>
<Thread_UseAllCpuGroups enabled="true"/>
<GCCpuGroup enabled="true"/>
<gcServer enabled="true"/>
</runtime>
</configuration>
<Thread_UseAllCpuGroups>要素 | Microsoft Docs
<GCCpuGroup>要素 | Microsoft Docs
.NET Core の場合
.NET CoreではServerGarbageCollection
をtrue
にして、さらに以下の2つの環境変数を追加すると同等の設定ができるようです。
coreclr/clr-configuration-knobs.md at master · dotnet/coreclr
Oculus Goの感想
ツイッターでOculus Goが動画視聴デバイスとしてすごく良いと評判だったので買ってみました。
5/8(火)の夜に注文して5/11(金)には不在届がポストに入っていて、12日の昼頃に受け取れたので海外から来た割には意外と早かったです。
セットアップ
セットアップはスマホにOculusアプリを入れて行う方法でした。特に難しいところはなく終わりましたが、1つ分からなくて調べたのがシリアル番号の確認でした。BluetoothでスマホとOculus Goをペアリングするときにシリアル番号が表示されます。一応確認しようと思ってシリアル番号を探したんですが見つからなかったのでネットで調べました。Oculus Goの左側のバンドの裏側にQRコードあり、その下に印刷されてました。
この後メニューや設定をチェックしたりして動作を確認した後、バッテリーが半分以下だったので夕方まで充電しました。
Youtube、ニコニコ動画、Amazonプライム・ビデオ
普段ニコニコ動画、Youtube、Amazonプライムをよく使ってるので、まずはOculus GoのブラウザでYoutube、ニコニコ動画、Amazonプライム・ビデオを観てみました。
ブラウザで動画を開いた後に全画面表示にすると、画面の周りが暗くなって動画だけが目の前に表示される状態になるんですが、これ映画館のスクリーンで観てるような迫力があってすごいです。特にAmazonプライムで映画を観たときは1人で映画館にいる気分になりました。Oculus Goをかぶるだけで映画館に来た気分になれるのはお手軽ですごく良いです。
スマホや4Kディスプレイのような高解像度の液晶で動画を観るのに慣れているとOculus Goでは多少ドット感がありますが、それでも目の前のスクリーンで観る迫力があるので楽しいです。ドット感については、Oculus Goのディスプレイの解像度は2560×1440でPSVRの1920×1080よりも高いので良くなっています。(リフレッシュレートはPSVRの方が高いですが。)
ただ、いくつか気になる点もあります。
- 日本語入力ができない
- 鼻の部分から光が入ってくる
- バッテリーが結構はやくなくなる
- 全画面表示にするとちょっと大きすぎて四隅が視界に入らない
- コントローラーのポインタが結構横にずれる
日本語入力ができないのは動画を探すときに苦労します。なのでYoutubeではローマ字入力の途中で出てきた検索候補一覧を選択したり、検索結果の上部に出てくる「もしかして:〇〇」をクリックしたりしてます。これは結構不便なので改善して欲しいところです。
鼻の部分は指が1本余裕で入るくらい隙間があってここから光が入ってきて少し気になります。これはカーテン閉めて明かりを消すと解消できます。
また、バッテリーの減りは結構早く、2,3時間動画を観るとほぼなくなります。休日にがっつり観たい時は物足りなくなりそうです。 これはOculus Goに電源ケーブルを挿しっぱなしにして使うとある程度長持ちするようになります。ケーブルレスの利点がなくなりますが、私はイスに座って観ているのでケーブルは全然気になりませんでした。(ゲームをするときに邪魔になるかもしれません。)
あとはそれ程でもなくて、最初は気になりましたが使ってたら慣れてあまり不便に感じなくなりました。
ちなみにAmazonプライム・ビデオはシークバーが表示されないのでシークできませんでした。再生と一時停止・再開はできます。
Youtubeの360°・3D動画
2Dの動画以外にもYoutubeの360°で3Dな動画も観てみました。
www.youtube.com www.youtube.com www.youtube.com
360°全方向を見渡せるだけでなく、3Dなので本当に目の前に存在するように感じられます。PSVRを持っているので体験済みなんですがやっぱり凄いですね。解像度は4Kでも足りない感じですがそれでも十分楽しめます。
更に上の8K解像度の動画もありますが、Oculus Goのブラウザでは映像がまったく表示されませんでした。
また、VR180という形式の動画もYoutubeにありますが、対応してないようで正しく表示できません。ただ、Oculusの人が動いているようなのでその内対応するかもしれません。
We are definitely working on VR180 support, I'll check on the browser side.
— John Carmack (@ID_AA_Carmack) May 10, 2018
まとめ
細かいところで気になるところはありますが対処できるレベルで、届いてから1週間経ちましたが毎日Oculus Goで動画観ています。評判通り良いデバイスだと思います。
アクリルキーホルダーケースを作る
何ヶ月か前に買ったアクリルキーホルダーを袋に入れたまま放置していたんですが、いい加減に飾らないともったいないなと思い、何かいい方法がないか探していたらよいサイトを見つけました。
こちらを参考に自分でも作ってみました。
材料
- Poster Frame A4 (2個)
- コルクボード
- ピン
- 蝶番(2個)
- 両面テープ
Poster Frameとコルクボードとピンはダイソーで購入、蝶番はホームセンターで購入しました。
あとスタンドの製作に3Dプリンターを使います。
製作
まずはフレームを加工します。
フレームを裏返して金具(枠に沿って10個あるやつ)を立てて背板を外します。手でやるとケガしかねないのでペンチでやると良いです。
そして金具を全て取ります。 金具はペンチで掴んで左右にぐりぐりしながら引っ張ると抜けます。ただ結構力が必要なので、抜けた時に勢い余って手をぶつけないように気を付けてやります。
全部抜きました。
もう1つのフレームも同じように加工します。
次は2つのフレームを蝶番で繋げます。
フレームは同じ向きにしてそのまま重ねた状態にします。その状態で位置合わせをしてネジ穴を開けて蝶番で固定します。
私が蝶番に付属していたネジは長さが少し長くてフレームを貫通しましたが、これくらいなら許容範囲内です。 (そもそもホームセンターにこれ以上短いネジがありませんでしたが。)
蝶番で繋げるとこんな風になります。
次にコルクボードをフレームに合わせて切ります。 長辺はぴったりの長さだったのでそのままにして、短辺を1cmカットしました。
あとはフレームに両面テープを張ってコルクボードを貼り付けます。
次はもう1つのフレームに透明のプラスチックシートを貼り付けます。 プラスチックシートはフレームに付属していたものなのでそのまま貼り付けられます。
シートのフィルムを剥がして
フレームに両面テープを張って貼り付けます。
ここまでで一応ケースとして使える形までできました。
このケースを飾る方法ですが、今回は台に置くタイプにしようと思います。
台に置いて立たせるためのスタンドを3Dプリンターで作ります。スタンドはケースが5℃傾くように作ります。
出力したスタンドのバリなどをリューターで取ってフレームにネジで固定します。
ケースができました。
2つのフレームを固定してないので前に傾けると開いちゃいますが、今回はそれでよしとします。
アクリルキーホルダーを飾る
ケースができたのでアクリルキーホルダーを飾ります。
まずはキーホルダーのチェーンを外します。
ピンはダイソーのこんなやつを使います。
コルクボードの上にキーホルダーを配置してピンで固定したら完成です。
少し手抜きをしましたが簡単な工作でアクリルキーホルダーケースができました。