投稿

ラベル(Blender)が付いた投稿を表示しています

Blenderで分子模型の立体視

イメージ
Blenderには立体視用の画像を出力できる機能がついているらしい 立体的な特徴のある分子に使ったら面白いのでは?と思ってやってみたというメモです   手元にあったCPPのファイルを開いて、 出力プロパティの 立体視 にチェックを入れて、 画像をレンダリングして、 保存画面のオプションで好きな方式を選択するだけ (サイドバイサイドは2枚の画像を並べて寄り目で見るやつ) するとこんな感じで出力されるので、あとは寄り目で頑張ると立体に見えて楽しい この記事の内容は以上です。

Blenderで芳香環に面を張るやつ

イメージ
 こんなやつです。 手作業でやると思いのほかめんどくさかったので、少し楽にしようとしました。 方針としては、 ・手作業で原子を選択する ・選択されている原子の中心座標を頂点として面を生成する ・ついでにマテリアルも設定しておく という感じです。 以下スクリプトです。 import bpy name = "plane" color = (0,0.7,0.95,1) emit = 15 ma = bpy.data.materials.new(name) ma.use_nodes = True bsdf = ma.node_tree.nodes["Principled BSDF"] bsdf.inputs[0].default_value = color bsdf.inputs[4].default_value = 0.2 bsdf.inputs[7].default_value = 0.3 bsdf.inputs[18].default_value = emit ma.diffuse_color = color if(len(bpy.context.selected_objects))>2: verts=[] face=[] idx=0 for o in bpy.context.selected_objects: verts.append(o.location) face.append(idx) idx+=1 o.select_set(False) faces=[face] mesh = bpy.data.meshes.new(name) obj = bpy.data.objects.new(name,mesh) bpy.context.collection.objects.link(obj) mesh.from_pydata(verts,[],faces) mesh.update bpy.context.view_layer.objects.active = obj bpy.ops.object.mode_set(mode...

Blenderで読み込んだ分子モデルにマテリアルを自動設定したかった

イメージ
23.9.14追記 修正版作りました。 molファイルを編集することなく、そのまま読み込めるようにしてあります。 https://sanasnote.blogspot.com/2023/09/blendermol.html 以前こんな投稿をしました。 →  http://sanasnote.blogspot.com/2021/07/3d.html Avogadroでmolファイルを3Dモデルに変換してBlenderに読み込んで、なんやかんや着色したりパワポに貼ったりするという内容です。 マテリアルをひとつひとつ選択して設定しなきゃいけないので、分子量が大きかったり構造が混み入ってたりすると苦行になります。 というわけで、なんかいい感じに自動設定してくれるスクリプト作れないかな?と思ってやってみたのがこの記事です。 結論から言うと、最低限動くことは動く、という感じです。 具体的な方針としては、 1. molファイルを原子部分と結合部分の情報にそれぞれ分割して保存する 2. pythonでtxtファイルを読み込み、原子と結合それぞれの原子種リストを作る ※Blenderに読み込んだ時のオブジェクトの並びは、元のmolファイル中の原子の順番に対応しています 3. リストに従ってマテリアルをひとつずつ割り当てていく 以下スクリプトです。 (Stickモデル用です。CPKモデル用は ページ末尾 に貼っておきます。) #for stick-model import bpy import csv import re #-------------------------------------------- # molファイルから作成した原子の情報と結合の情報が入ったtxtファイルを指定する atom_file="C:/******************.txt" bond_file="C:/******************.txt" #---------------------------------------------------------- # delete all materials and material_slots # あらかじめマテリアルとマテリアル...

パワポに直接挿入可能な3D分子モデルを作る

イメージ
こういうのを作ります。 この3Dモデルはパワポ内で任意に動かしたりアニメーション機能を利用することが可能です。(デフォルトで入っているティラノサウルスの3Dモデルが有名ですね) 大まかな流れとしては ---------------------------------------------- 1. molファイルを作成 2. Avogadroでwrlファイルを出力 3. Blenderでマテリアルを設定しfbxファイルを出力 4. パワポに挿入 ---------------------------------------------- となります。以下、具体的に流れを説明します。 1.molファイル作成 適当に作ってください。 今回はchemsketchでtolueneを作りました。 2. Avogadroでwrlファイルを出力 作成したmolファイルをAvogadroで開きます。 Stick や Ball & Stick など、お好みの描画方法を選択してください。 今回はStickを選択しました。 (また、必要であればこのとき3次元構造を最適化してください) File > Export > VRML を選択し、wrlファイルを出力してください。 このとき3Dモデルの大きさを  Scale 欄で調整可能です。 3. Blenderでマテリアルを設定しfbxファイルを出力 先ほど出力したwrlファイルをblenderにインポートします。 ファイル > インポート > X3D Extensible 3D(.x3d/.wrl) このとき、マテリアルは未設定なので灰色のモデルが表示されます。 (2022/5/15追記)以下のマテリアル設定の操作を簡略化するスクリプトを作ってみました。→ https://sanasnote.blogspot.com/2022/05/blender.html 適当なオブジェクトを選択し、マテリアルタブをクリックしてマテリアルを作成・設定します。 まずひとつのオブジェクトに対してマテリアルを作成・設定します。ここでは炭素原子です。 プリンシブルBSDF 以外を選ぶとパワポ上でマテリアルが反映されない場合があるので注意してください。 (わたしはここで行き詰まって数日を溶かしました) 次に、同一...