なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

Python

pybind11 で C++ から Python クラスのインスタンスを作成したい

pybind11 は C++ と Python とで良い感じにやり取りができる C++ ライブラリです。 少し前の記事の記事でも紹介したとおり、わりと使いやすいライブラリです。 ただ、絶妙にドキュメントが足りなかったりして困るケースがあるので、今回はそれの補完用のメモ…

Blender アドオンで C++ で記述した DLL をロード・アンロードしたい

Blender アドオン作るときの小ネタ。 例えば、 Python では性能上厳しかったり、何らかの理由で Python から触れない何かを触りたい場合、 C++ で Blender のアドオンを書きたいケースがあります。 そういったことをやりたいときの方法をメモしておきます。 …

Blender アドオンの Operator に定義したメソッドを、プロパティを設定して呼び出したい

Blender アドオン作るときの小ネタ。 Blender アドオンを作っていて、何らかの処理をさせたい場合、通常は Operator を使用します。 import bpy from bpy.types import Context, Event, Operator from bpy.props import StringProperty class SomeOperator(O…

pybind11 で、 Console Application じゃないものでも print を stdout/err にリダイレクトしたい

C++ から Python を扱うことが出来る (その逆も出来る) pybind11 という C++ ライブラリがあるのですが、それで Python の print をリダイレクトする方法についてのメモです。 問題は、 Windows Desktop Application の場合の対処法。 Windows Desktop Appli…

Blender アドオンで、チェックボックスにチェックを入れたタイミングで、任意の処理を走らせたい

こういう動作をするのは Blender 的には、 UX 的にはあまり良くないのかもしれないですが、トグルボタンってある意味分かりにくいし......ということで、 Checkbox / ToggleBox にチェックを入れたタイミングで何らかの処理をする方法について。 これは、 Pr…

Blender アドオンで、任意のタイミングで Operator の invoke を呼び出したい

最近は Blender のアドオンを作ることもあるわたしですが、任意のタイミングで Operator の invoke が呼び出したくなったときの方法。 といってもカンタンで、以下のようにすれば良い。 import bpy bpy.ops.object.id_name("INVOKE_DEFAULT") ちなみに、引数…

VS Code で Blender の Add-on 開発をしたい

Blender のアドオン作りたくなったので、 VS Code で作るためのやり方。 まずは、必要最低限の環境を整えていきます。 ということで、 Blender Development 拡張機能を入れます。 このとき、 Blender 2.8x を対象に作成する場合は、不具合があるようなので 0…

Python で任意の点を X, Y, Z 軸基準に回転させたい

相変わらず Blender Add-on を書いている私です。 ある座標にある点 (x, y, z) をそれぞれの軸基準に回転させたくなったので、 その方法を書いておきます。 といっても方法は簡単で、回転行列を使ってあげるだけ。 回転する角度は rotation(x, y, z) で、座…

Python で4点が同一平面上にあるかどうかを確かめたい

最近は Blender Add-on をいじっている私です。 Blender で、ある 4 点が同一平面上にあるかどうかを知りたくなったので、スクリプトを書きました。 例えば、下のように点 A ~ D があったとして、これがほぼ同一平面上にあるかどうかを知りたい場合は、 imp…

pipenv install mysqlclient が失敗する

タイトル通り、以下の環境で pipenv install のうち、 mysqlclient が失敗してつらい。 なんか Ruby の mysql2 でもつらかった記憶があるので、 MySQL 周りはつらいのだろう。 環境はこんな感じ macOS Mojave 10.14.6 MySQL 5.6 (たぶん) Python 3.7.4 pipen…