« MacPro数日使ってみて | メイン | Shade-頂点 稜線に接する面を取得 »

●Python覚え書き

2008年3月 4日    

クリップボードの中のPythonScriptを実行する


import commands
f=commands.getoutput('osascript -e \'return the clipboard\'')
print f #戻り値をメッセージウィンドウに出力

クリップボード内のスクリプトで commandsをインポートするとエラーになるので注意
Windowsではwin32clipboardモジュールをインポートすることでクリップボードを扱えるらしい

Shadeでムービーを作成して
ムービープレーヤーで開く


import os
import sys , commands,time

f_name = "/test.mov"

##動画を閉じる
CloseMovieAS_="""
tell application "QuickTime Player"
repeat with i from 1 to (count documents)
if name of document i is "test.mov" then close document i
end repeat
end tell
"""

##動画再生ApleScript##
PlayMovieAS_="""
on run argv
tell application "QuickTime Player"
activate
open argv as POSIX file
play document 1
set looping of document 1 to true
end tell
end run
"""

#同名の動画が開かれている場合閉じる
commands.getoutput('osascript -e \'' +CloseMovieAS_ + '\' ')
time.sleep(0.1)

#保存するパスを設定
if shade.active_document:
f_path = os.path.dirname(shade.active_document) + f_name
else: f_path = "/Users/yukimi/Temp_items" + f_name

#シーンを取得
scene_= xshade.scene()

#アニメーションの開始フレームを取得
if scene_.animation_settings.starting_frame == -1: start_frame = 0
else: start_frame = scene_.animation_settings.starting_frame

#アニメーションの終了フレームを取得
if scene_.animation_settings.ending_frame == -1:
end_frame = 300
scene_.animation_settings.ending_frame = end_frame
else:end_frame = scene_.animation_settings.ending_frame

xshade.scene().inhibit_update() #画面の更新を止める
start_time=time.time()
#アニメーションの作成を開始
scene_.rendering.start_animation( f_path )
for flame_ in xrange(start_frame,(end_frame +1)):
scene_.sequence_value = flame_ #シーケンス値(フレーム)
scene_.rendering.render()
scene_.rendering.append_animation()
scene_.rendering.finish_animation()
end_time=time.time()
print str(end_time - start_time) + "sec" #経過時間を表示
#シーケンス値を0位置に
scene_.sequence_value = 0
xshade.scene().allow_update() #画面の更新を再開

#再生スクリプトを実行
commands.getoutput('osascript -e \'' + PlayMovieAS_ + '\' \''+ f_path +'\'')

投稿者 Yukimi` : 2008年3月 4日 02:40