DTP駆け込み寺
  1. [15871] AIのAppleScriptで AM66 2013/08/09 10:31
    1. [15874] Re: AIのAppleScriptで 通りすがり 2013/08/09 13:57
      1. [15896] Re^2: AIのAppleScriptで AM66 2013/08/21 09:03
    2. [15877] Re: AIのAppleScriptで 小泉 2013/08/10 01:25
      1. [15903] Re^2: AIのAppleScriptで AM66 2013/08/23 10:43
    3. [15895] Re: AIのAppleScriptで . 2013/08/19 11:57

[ 返信 ]

AIのAppleScriptで

ネットで拾ったソースを改変して、
下の様なスクリプトを作ったのですが、
コメントアウトしてある部分を使う(開いている全ドキュメントにたいして処理)と、かなりの確立で処理が止まります。
イベントログを見ていても set visible〜とかの部分で止まります。
ドキュメントを一つずつ処理する分には問題ありません。
原因がわかるかたいらっしゃいますか?
OS10.4.11 CS1

tell application "Illustrator CS"
--set evdoc to count document
--repeat with i from 1 to evdoc
tell document 1
with timeout of (1 * 60 * 30) seconds
set visible of every layer to true
set locked of every layer to false
set locked of every page item to false
set evTxt to every text frame
repeat with txtObj in evTxt
set fontName to "KozGoPro-Regular"
changeFont(txtObj, fontName) of me
end repeat
close saving yes
end timeout
end tell
--end repeat
end tell

on changeFont(txtObj, fontName)
tell application "Illustrator CS"
set properties of every paragraph of txtObj to {text font:text font fontName}
end tell
end changeFont

[15871] AM66 (2013/08/09 Fri 10:31)

[ 返信 ]


Re: AIのAppleScriptで

まったく分かりませんが、
処理の順番を変える
delayを入れる
visibleの前で処理が止まるのか、visibleの後で止まるか
調べてみると幸せかも。

と思いましたが、tell document 1というのがよくないのでは?
きちんとドキュメントを開き、きちんとドキュメントをファイル名で
指定してみてはどうでしょう?
経験的な話ですが、ファイルの指定はFinder使ってからのほうが
いいような気もします。参照形式もきちんと考えて。
ネットワーク上のデータを扱うならさらに慎重な姿勢が必要です。
とかなんとか。

[15874] 通りすがり (2013/08/09 Fri 13:57)

[ 返信 ]


Re^2: AIのAppleScriptで

返信が遅れて申し訳ありません。

止まる時はエラーが出る訳でもなく、処理が進まなくなります。
止まる箇所は決まっていませんし、同じドキュメントに対しても止まる時とちゃんと動作する時があります。
最近AppleScriptエディタ自体ちょっと変な動作をする事もあるので、
システム自体何らかのコンフリクトとか起こしているのかもしれません。

>小泉さん
こんな書き方もあるのですね。勉強になります。
しばらく検証できないのですが、また検証したら書き込みます。

[15896] AM66 (2013/08/21 Wed 09:03)

[ 返信 ]


Re: AIのAppleScriptで

どのくらいの物に対して処理をかけているのかわかりませんが、
とりあえず、まとめられるところをまとめて、みました。

文字スタイルを使っていないと仮定して、全ドキュメントの全テキストにを一斉に変更しています。

tell application "Adobe Illustrator"
repeat with a4 from 1 to count documents
try
make new character style in document a4 with properties {name:"古都か", text font:text font "KozGoPro-Regular"}
end try
end repeat
tell documents
set properties of every layer to {visible:true, locked:false}
set locked of every page item to false
apply character style character style "古都か" to paragraphs of text frames with clearing overrides
end tell
close documents saving yes
end tell

[15877] 小泉 (2013/08/10 Sat 01:25) web

[ 返信 ]


Re^2: AIのAppleScriptで

教えていただいたスクリプトですが、
タイムアウト処理を入れれば問題なく動きました。
ただ今日は自分で作った物で開いている全てのドキュメントに対して処理しても正常に作動したので、
やはりうまく動かない原因はよくわかりませんでした。

[15903] AM66 (2013/08/23 Fri 10:43)

[ 返信 ]


Re: AIのAppleScriptで

処理が止まるというのは、どういう状況なのでしょう?

[15895] . (2013/08/19 Mon 11:57)