3Dプリンタで篆刻を作る

まだ未完成だが、実現のためのステップ。

参考としたのは、「手書きのイラストからハンコ制作。3Dプリンターで出力する」<http://indielabo.php.xdomain.jp/?p=1071>

  1. Inkscapeでスキャンした篆刻のビットマップ(bmp)をトレースし、.dxfファイルとして出力する。
    ・ファイル->インポートで、bmpファイルを読み込む。jpgは不可。
    ・パス->ビットマップをトレースで、イラストをCAD形式に変換。パラメータはいじらなくてOK. もしスキャン画像の色のため、トレースがうまくゆかない場合はphotoshopなどであらかじめ2値化しておくとよい
    ・名前を付けて保存. 保存形式は、AutoCAD DXF R14(*.dxf). チェックボックスは全て外し、単位はmm、文字エンコーディングはUTF-8に変更して保存。
  2. このdxfファイルをBlenderで可読化する目的で、一旦AutoCADを介して読み込み/保存する。
    ・AutoCAD2022を起動
    ・スタート->開く、で先ほど保存したdxfファイルを読み込む
    ・読み込めたら、一番上の名前をつけて保存シンボルをクリックして保存。形式はAutoCAD 2018 DXF(*.dxf), 出力->書き出しは選択しないこと。
  3. Blenderでインポート
    ・Blenderを立ち上げる(執筆時バージョンは2.91)
    ・先のファイルをインポート。ファイル形式はAutoCAD dxf
    ・XY平面上にスキャンした画像が黒の線分で現れる。適宜オブジェクトモード->移動で原点付近に移動させる。
  4. Blender上でエディティング
    ・オブジェクトモード:オブジェクトを右クリックで選択後、オブジェクト->変換->メッシュ を選択し変換する。
    ・編集モード:黒い丸点がつながった画像がでてくる。キーボードA押下=全選択、メッシュ->クリーンアップ->大きさ0を溶解 & 限定的溶解。これで点の数が少なくなる。
    ・編集モード:同じく メッシュ->クリーンアップ->距離でマージ、を選択。左下に結合距離があるので適当に設定すると近い点をクリーンアップしてくれる。非選択部もクリックを入れておくと良いだろう。
  5. Blender上でエディティング2
    ・4.で無事にうまくセレクトできると、あとは
    オブジェクトモード:全選択したのち、Alt-F(面作成)を行えば、面が作成できる。
    押し出し:
    編集モード:E、exclude region(押し出し、領域)で+軸に作用させれば選択エリアが押し出される。
    あとは適当なcubeを作り、押し出されたモデルをその上に載せれば、篆刻が出来上がる。
  6. 4.5でうまくゆかない場合
    実際にはAlt-Fを行っても領域が全部囲われず、Failするケースが多々ある。”面がフィルされていません”というメッセージが出てくる。そんな場合には丁寧に点と点が接続されているかをチェックする。点が密接している場合発見しにくいので4.の距離でマージをうまく使おう。距離を適宜調整すると良い。
うまくゆかない時の例。点と点が実線ではなくフェードして次の点とつながっている

こんな時には
編集モード:薄い点をクリックして選択->Shift押しながら辺の反対側の点をクリック-> 頂点/頂点から新規辺・面作成 すると2点は実線でつながる。これを根気よく繰り返す。
Tipsとして、点数が多い図形の場合には図形を分割して面を作ると良い。そのためには上と同じようにして図形の任意の2点をつなげば実質図形は分割できる。これでデバッグがやりやすくなる。
また下手すると予期していなかった面が選択されるケースもあり得る。その際には面を形成している点群を選択してDel, 何を消すのか求めてくるので面を選択すると面が消える。


WSL TecoGAN 次から

下記に従って、WSL上でTecoGANをインストールした。<https://supplepentan.com/programming/tecogan_01/>

次からのTecoGANの起動メモ

・Windows Powershell 起動

(・WSLは他のディストリビューションで駆動されるのを防ぐため、もう必要なければ消去しておくのが望ましい
wsl –unregister <Distro>(e.g., Ubuntu-20.04))

・WSL起動
wsl

・homeに移る
cd ~

・TecoGANディレクトリに移る
cd TecoGAN

1)Pythonバージョンのローカル設定
pyenv local 3.6.8

2)仮想環境作成とアクティベイト
python3 -m venv venv-wsl
source venv-wsl/bin/activate

・runGan.py 起動

1), 2)はShellにしておくとよいと思います(sourceはshではできないので手打ち)。

なおできたファイルをWindowsで見るには、エクスプローラを開き、パスに\\wsl$を入力すればよい

 


サイトネットワーク管理

新しくサブディレクトリの参加サイトを作ったつもりが、管理画面の参加サイトに掲示されなかった。よく調べると管理者のアドレスが異なっていると表示されないのだった。これでよさそうだ


Fuji FinePix w3写真に3D画像を重ねる

昔Fuji FinePixという3D画像や動画が取れるカメラがあった。これを使って3D画像をOculus riftで読もうとした。FinePixの画像はMPOフォーマットになっている。サイズは左右それぞれで3584 x 2016だ。もしこちらで何か3D画像を作ろうとしたら、このサイズか、あるいはそれに比例するサイズで作成する必要がある。半分でちょうど1792 x 1008になる。これで作ったらよさそうだ。あるいは1280 x 720で作成すると比率としては丁度だ


MPOファイルをOculus riftで閲覧

MPOファイルをOculus riftで見るのは簡単ではない。そこでいっそのことmp4ファイルに変換してしまえばよい、という考えで以下の変更をした。

  • ステレオフォトメーカを使ってMPOを読みこむ
  • ステレオ画像として保存、このときファイルの種類をJPG, 正確なサイズを選択して最大のJPSを作成する。+常にSBS形式で保存、をチェックする。
  • これでSBSなJPGファイルができたので、これを静止画からmp4に変換する。Adobe Premierで動画として編集すれば音もキャプションも入れられる。
  • 先に書いたGizmoVRで読み込めば3D動画として閲覧ができる。


Oculus riftで従前のside by sideコンテンツを視聴する

Oculus riftで従前のside by side コンテンツは両方が並列に並べられて見えたりしてうまく3Dとして見えない。この視聴は、Oculus riftのライブラリにあるGizmoVRを利用するとよい。mp4で作成されたファイルであれば、自動的にファイルを変換してくれるようで、これで問題なく同コンテンツは3Dで見ることができる。その際、各コンテンツごとに設定をして、3Dモード、また画面モード、ループの有無などを設定すること。これで楽しめる。また自分でStereoMovieMakerで作成したAVI 3DファイルもHandbrakeなどでmp4化するとOculusで視聴を楽しむことができる。


Raspberry Pi 外部からのSSH接続について

SSHを有効にしたが、以下を実装した

  1. Rootによるログインを無効にする
    /etc/ssh/sshd_configで
    #PermitRootLogin yes ->
    PermitRootLogin no に変更ssh再起動は、sudo /etc/init.d/ssh restart
  2. SSHのポートを変更する
    同じく/etc/ssh/sshd_configで
    #Port 22 ->
    Port XXXXX に変更
  3. 公開鍵によるログインとする
    これはこのサイトを参照して作成した