Re: C++プログラムからBlenderをリアルタイム操作
8件表示
すべてのコメント一覧へ
投稿ツリー
-
C++プログラムからBlenderをリアルタイム操作 (ys77, 2013/4/8 22:11)
-
Re: C++プログラムからBlenderをリアルタイム操作 (yamyam, 2013/4/11 11:41)
-
Re: C++プログラムからBlenderをリアルタイム操作 (ys77, 2013/4/13 16:26)
-
Re: C++プログラムからBlenderをリアルタイム操作 (ys77, 2013/4/13 23:23)
«
-
Re: C++プログラムからBlenderをリアルタイム操作 (atassyu, 2013/4/14 22:08)
-
Re: C++プログラムからBlenderをリアルタイム操作 (ys77, 2013/4/20 11:57)
- Re: C++プログラムからBlenderをリアルタイム操作 (yamyam, 2013/4/22 12:04)
-
Re: C++プログラムからBlenderをリアルタイム操作 (ys77, 2013/4/20 11:57)
- Re: C++プログラムからBlenderをリアルタイム操作 (yamyam, 2013/4/15 11:29)
-
Re: C++プログラムからBlenderをリアルタイム操作 (atassyu, 2013/4/14 22:08)
-
Re: C++プログラムからBlenderをリアルタイム操作 (ys77, 2013/4/13 23:23)
«
-
Re: C++プログラムからBlenderをリアルタイム操作 (ys77, 2013/4/13 16:26)
-
Re: C++プログラムからBlenderをリアルタイム操作 (yamyam, 2013/4/11 11:41)
ys77
投稿数: 4
ys77です。
一つ前の投稿で質問した件(リアルタイムでpythonコマンドを実行)ですが、
自分で解決できましたのでご報告します。
・pythonのthreadingをimport
・スレッドを新しく作る。ここで、setDaemon(True)としてデーモンにしておく。
・上記スレッド内で、ソケット通信のモジュールを呼ぶ。
こうすると、親プロセスはすぐに終了するので、Blenderはすぐに起動されました。
そして、生き残ったデーモンがサーバーとなり、pythonコマンドを受信して、
リアルタイムに実行することが出来ました。
情報共有のため、以下にpythonスクリプトを載せておきます。
どうも有り難うございました。
一つ前の投稿で質問した件(リアルタイムでpythonコマンドを実行)ですが、
自分で解決できましたのでご報告します。
・pythonのthreadingをimport
・スレッドを新しく作る。ここで、setDaemon(True)としてデーモンにしておく。
・上記スレッド内で、ソケット通信のモジュールを呼ぶ。
こうすると、親プロセスはすぐに終了するので、Blenderはすぐに起動されました。
そして、生き残ったデーモンがサーバーとなり、pythonコマンドを受信して、
リアルタイムに実行することが出来ました。
情報共有のため、以下にpythonスクリプトを載せておきます。
どうも有り難うございました。
#-------------【call_serversocket.py】 呼び出し側 ----------------------
#------------- ./blender -P call_serversocket.py と起動時に実行 --------
import threading
import time
from called_serversocket import serverclass
class test(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.setDaemon(True)
self.i = 0
def run(self):
print("Start.")
serverclass.serversocket()
print("serverclass.serversocket() start!")
if __name__ == "__main__":
t = test()
t.start()
print("call_serversocket end!")
#-------------【called_serversocket.py】 呼び出される側 ----------------------
from socket import *
class serverclass:
def serversocket():
print( 'serversocket() ')
HOST = 'localhost'
PORT = 9000
s = socket(AF_INET, SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
(conn, addr) = s.accept()
print( 'Connected by', addr)
cnt = 0
while 1:
cnt += 1
tmp_data = conn.recv(1024)
data = tmp_data.decode()
exec(data)
print("exec( ", data, " )")
conn.close()
投票数:4
平均点:2.50
ログイン
クイックリンク
2021/07/01版
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)
●ニュース(英文)
BlenderNation
●Blenderコミュニティ
blenderartists.org
●Blender Q&A
- Blender Stack Exchange
●テストビルド
Buildbot(自動生成)
●開発関連
公式開発サイト
Blender開発blog
Blender Wiki
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)
●ニュース(英文)
BlenderNation
●Blenderコミュニティ
blenderartists.org
●Blender Q&A
- Blender Stack Exchange
●テストビルド
Buildbot(自動生成)
●開発関連
公式開発サイト
Blender開発blog
Blender Wiki