[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
過去ログ
投稿順に表示
スレッドごとに表示
キーワード
タイトル
投稿者
編集パスワード
コメント
添付
Re[468][466][464][463][462][461][460][459]: python tips
2006年12月26日 (火) 23時37分
でった☆
返信
> 私の場合、自分が作ったツールやスクリプト内で使用しているスクリプトコマンドやプロパティーは全部リストに登録してあり、メジャーバージョンアップの度に、最初に全リストの動作確認を行っています。

うわああああああ、耳が、耳が痛いぃいいい(pT▽T)p
Re[466][464][463][462][461][460][459]: python tips
2006年12月26日 (火) 23時18分
加藤俊明
返信
> >マスターサーフェス
> ずいぶん長いことバグっていたということになるんでしょうが、
> こういうのは、誰かがその機能を使ってみないと
> なかなか気づきにくいものなんでしょうね。

私の場合、自分が作ったツールやスクリプト内で使用しているスクリプトコマンドやプロパティーは全部リストに登録してあり、メジャーバージョンアップの度に、最初に全リストの動作確認を行っています。

これを自動で行うのは無理なので、その都度手で一つ一つ確認してますが、全部で4〜5時間はかかってしまいますね。

開発側に完全なものを出せなどといっても、事実上これは無理難題ですから、快適な使用環境を求めようと思えば、自分で手間暇かけてプロテクトしないといけませんです。
Re[464][463][462][461][460][459]: python tips
2006年12月26日 (火) 20時48分
管理人
返信
> 配列の中に配列を入れ子にするには特に関数は必要なく、
> リストやタプルの指定と同じ方法でOKです。
> a = [1,2,3]
> b = [10,20,30]
> c = [100,200,300]
> d = [1000, 2000, 3000]
> print [a,b]
> print [a,[c,d],b]
簡単にできそうですね。なに勘違いしてたんだろう?

>マスターサーフェス
ずいぶん長いことバグっていたということになるんでしょうが、
こういうのは、誰かがその機能を使ってみないと
なかなか気づきにくいものなんでしょうね。
マスターサーフェスについて
2006年12月26日 (火) 18時41分
でった☆
返信
現状(9.0.1)ではpythonで形状にマスターサーフェスを設定することは
不可能なことが判明しました。次のアップデートでどうにかなる予定では
あるそうです。
ということは、8.5ではVBScriptで行うしかないということになってしまいますね。
マスターサーフェスについて
2006年12月17日 (日) 20時27分
匠弥
返信
お世話になります。
Pythonに挑戦中なのですが、ちょっと困ったことが出たので投稿させていただきました。

任意の形状・パートにマスターサーフェスを設定したいと考えているのですが、Pythonでは上手くできないのです。

VBScriptだと、
対象のパートを選択状態にしておいてから、
Xshade.MasterSurface = 'MasterSurfaceのHandle'
これで、設定が出来ます。

Pythonも同様に考えて、
xshade.master_surface = 'master_surfaceのShapeObject'
とすると、何も変化無し。(エラーも出ない)

また、shapeクラスのmaster_surfaceが、パートにマスターサーフェスの設定していないときに、Noneを返しているので、
xshade.scene().active_shape().masuter_surface = 'master_surfaceのShapeObject'
としてみると、エラーが出てきます。

'master_surfaceのShapeObject'には、create_master_surfaceで返るShapeObjectを当てています。

VBSで出来る事がPythonで出来ないとは考え難いので、私のやり方が悪いのだと思いますが、今はお手上げ状態です。

解決策がありましたら教えて頂けたら幸いです。

Shade 7.5 8.5
Re[463][462][461][460][459]: python tips
2006年12月26日 (火) 02時18分
でった☆
返信

配列の中に配列を入れ子にするには特に関数は必要なく、
リストやタプルの指定と同じ方法でOKです。
a = [1,2,3]
b = [10,20,30]
c = [100,200,300]
d = [1000, 2000, 3000]
print [a,b]
print [a,[c,d],b]

zipは、
与えられた配列の、それぞれのi番目の要素をまとめた配列を、
与えられた配列の中の、一番要素数が少ない配列の数だけ、配列を作る関数です。

a=(1,2,3)
b=(4,5,6)
c=(7,8,9)
があったとき、zip(a,b,c)では以下の配列を作ります。ちょうど行列式で縦と横を入れ替えるのと似ていますね。
((1,4,7),
(2,5,8),
(3,6,9))

配列の数が4つに増えると、配列の数の要素をもつ配列ですから、要素が4となり、縦横を入れ替えて
a=(1,2,3)
b=(4,5,6)
c=(7,8,9)
d=(0,0,0)

zip(a,b,c,d)=
((1,4,7,0),
(2,5,8,0)
(3,6,9,0))

となります。

少ない要素の場合、最小のbにあわせて
a=(1,2,3)
b=(4,5)
c=(6,7,8,9)

zip(a,b,c)=
((1,4,6),
(2,5,7))
になります。

先の
a = [1,2,3]
b = [2,3,4]
ではzip(a,b)は
[(1,2),(2,3),(3,4)]になりますね。
Re[462][461][460][459]: python tips
2006年12月26日 (火) 00時56分
管理人
返信
コピーペーストのまんまで動くことを確認しました。

そういえばリスト中のリストってどうやればいいんだろうと思っていたんですが
zipを使えばいいんですね。
いくつでも入れ子にできるのかな?

a = [1,2,3]
b = [2,3,4]
c = [3,4,5]
d = [4,5,6]
e = zip(a,b)
f = zip(c,d)
g = zip(e,f)
print g
Re[461][460][459]: python tips
2006年12月25日 (月) 21時13分
でった☆
返信
ちなみにzipはいくつでもリストを指定可能みたいです。
a = [1,2,3]
b = [2,3,4]
for i,j,k,o in zip(a,b,a,b):
        print i,j,k,o

また、inの前を1つにすると、全てを1つのタプルにzip(まとめ)して出力します。
a = [1,2,3]
b = [2,3,4]
for i in zip(a,b,a,b):
        print i
Re[460][459]: python tips
2006年12月25日 (月) 21時05分
でった☆
返信
> タブのまま投稿してもらってもたぶん大丈夫です。

それじゃ、実験かねて、もうひとつfor文
for i in xrange(10, 0, -1):
        print i

10から1まで-1のステップで出力します。線形状のポイントを逆順に調べるときなんかに
使えますね。例文はわかりやすくするために10,0,-1ですが、実際は始点は0ですから
10,-1,-1となります。

#コントロールポイントの総数を逆順に出力
n = xshade.scene().active_shape().number_of_control_points -1
for i in xrange(n, -1, -1):
        print i
Re[459]: python tips
2006年12月25日 (月) 19時17分
管理人
返信
zip でタプルのリスト(というのかな?)ができるんですか。
これはいろいろと使えそうですね。

ところでこのコード、インデントが全角スペースになってたんですね。
このままコピー&ペーストで実行しようとしたら、エラーが出ました(^^;;

この掲示板と何でも掲示板、ツール別掲示板は、
タブは半角スペース4個に変換するように改造してるので、
タブのまま投稿してもらってもたぶん大丈夫です。
(スペースの数がそろっていれば、4個スペースのままでもPython実行できるようです)
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
過去ログ
投稿順に表示
スレッドごとに表示