2023年3月22日水曜日

線分 慣性系の作成 

aaa








import bpy

# 作成するコレクション名
zion_collection_name = "線分慣性系"

# コレクションが既に存在する場合は、既存のコレクションを使用する
if zion_collection_name in bpy.data.collections:
    zioncol = bpy.data.collections[zion_collection_name]
else:
    # コレクションが存在しない場合は、新しいコレクションを作成する
    zioncol = bpy.data.collections.new(zion_collection_name)
    bpy.context.scene.collection.children.link(zioncol)









半径30のサークルを作成し、xy平面(z=0)に配置するスクリプトは以下の通りです。

python
import bpy # オブジェクトの名前 obj_name = "円板" # サークルを作成する bpy.ops.mesh.primitive_circle_add(radius=30.0, fill_type='TRIFAN', location=(0.0, 0.0, 0.0)) # オブジェクトを取得する obj = bpy.context.object # オブジェクトに名前を付ける obj.name = obj_name # オブジェクトを移動する obj.location = (0.0, 0.0, 0.0)

このスクリプトを実行すると、半径30の円盤が作成され、xy平面(z=0)に配置されます。オブジェクトの名前は "円板" に設定されます。




半径30のサークルを作成し、xy平面(z=0)に配置するスクリプトは以下の通りです。





import bpy

# 作成するコレクション名
zion_collection_name = "線分慣性系"

# コレクションが既に存在する場合は、既存のコレクションを使用する
if zion_collection_name in bpy.data.collections:
    zioncol = bpy.data.collections[zion_collection_name]
else:
    # コレクションが存在しない場合は、新しいコレクションを作成する
    zioncol = bpy.data.collections.new(zion_collection_name)
    bpy.context.scene.collection.children.link(zioncol)


# オブジェクトの名前
zionobj_name = "円板 z2=0"

# サークルを作成する
bpy.ops.mesh.primitive_circle_add(radius=30.0, fill_type='TRIFAN', location=(0.0, 0.0, 0.0))

# オブジェクトを取得する
zionobj = bpy.context.object

# オブジェクトに名前を付ける
zionobj.name =zionobj_name

# オブジェクトを移動する
zionobj.location = (0.0, 0.0, 0.0)


# コレクションにオブジェクトをリンクする
zioncol.objects.link(zionobj)






オブジェクトが2回登録されてしまう問題については、以下のように修正することができます。

python
import bpy # 作成するコレクション名 zion_collection_name = "線分慣性系" # コレクションが既に存在する場合は、既存のコレクションを使用する if zion_collection_name in bpy.data.collections: zioncol = bpy.data.collections[zion_collection_name] else: # コレクションが存在しない場合は、新しいコレクションを作成する zioncol = bpy.data.collections.new(zion_collection_name) bpy.context.scene.collection.children.link(zioncol) # オブジェクトの名前 zionobj_name = "円板 z2=0" # オブジェクトがすでに存在する場合は、既存のオブジェクトを使用する if zionobj_name in bpy.data.objects: zionobj = bpy.data.objects[zionobj_name] else: # サークルを作成する bpy.ops.mesh.primitive_circle_add(radius=30.0, fill_type='TRIFAN', location=(0.0, 0.0, 0.0)) # オブジェクトを取得する zionobj = bpy.context.object # オブジェクトに名前を付ける zionobj.name = zionobj_name # オブジェクトを移動する zionobj.location = (0.0, 0.0, 0.0) # コレクションにオブジェクトをリンクする zioncol.objects.link(zionobj)

このように修正することで、オブジェクトが2回登録されることを避けることができます。ただし、同じ名前のオブジェクトが存在する場合は、既存のオブジェクトを使用するため、オブジェクトのプロパティが異なる場合は注意が必要です。



オブジェクトが2回登録されてしまう問題については、以下のように修正することができます。



import bpy

# 作成するコレクション名
zion_collection_name = "線分慣性系"

# コレクションが既に存在する場合は、既存のコレクションを使用する
if zion_collection_name in bpy.data.collections:
    zioncol = bpy.data.collections[zion_collection_name]
else:
    # コレクションが存在しない場合は、新しいコレクションを作成する
    zioncol = bpy.data.collections.new(zion_collection_name)
    bpy.context.scene.collection.children.link(zioncol)

# オブジェクトの名前
zionobj_name = "円板 z2=0"

# オブジェクトがすでに存在する場合は、既存のオブジェクトを使用する
if zionobj_name in bpy.data.objects:
    zionobj = bpy.data.objects[zionobj_name]
else:
    # サークルを作成する
    bpy.ops.mesh.primitive_circle_add(radius=30.0, fill_type='TRIFAN', location=(0.0, 0.0, 0.0))

    # オブジェクトを取得する
    zionobj = bpy.context.object

    # オブジェクトに名前を付ける
    zionobj.name = zionobj_name

    # オブジェクトを移動する
    zionobj.location = (0.0, 0.0, 0.0)

    # コレクションにオブジェクトをリンクする
    zioncol.objects.link(zionobj)
このように修正することで、オブジェクトが2回登録されることを避けることができます。ただし、同じ名前のオブジェクトが存在する場合は、既存のオブジェクトを使用するため、オブジェクトのプロパティが異なる場合は注意が必要です。





# 元のコレクションから円板を削除する
import bpy
old_col = bpy.data.collections[Scene Collection]
old_col.objects.unlink(obj)












bbb

連番 007 未来光円錐 過去光円錐 円周中心からの球体放出

aaa 参考 2023年3月26日日曜日 製作 002b 未来光円錐の方向 線路レールで https://ia2023sha.blogspot.com/2023/03/002b.html import bpy import math zion_co...