3 返信 最新の回答 日時: Feb 10, 2009 10:58 PM ユーザー:(natunoradio)

    スクリプトのアンドゥ回数に関して

    Level 1
      はじめまして。

      よろしくお願いいたします。

      現在、けっこう大量ページのスクリプトを作成しています。

      おもにはMac版でAppliScriptと、JavaScriptを半分づつくらい記述しています。

      たまにWin版でも記述したりしてます。

      でも、割合はMacが8でWinが2って感じです。

      近頃、なんとかならないのかな…って思っていることがありまして。

      ページ数が増えて、テキストフレームの数が増えてくると、途中までは処理速度には不満がなく進のですが、ある程度のページまでいくと、極端に処理速度が落ちてしまします。

      これは、もしかしたら、インデザインがアンドゥする回数がデフォルトでは無制限だったと思うのですが、それが理由でどんどんメモリが不足していってるからではないか?などと考えているのですが 、みなさまはこんなことは考えることってないでしょうか?

      インデザインに環境設定などでアンドゥ回数の設定ってできますか?どうもみつかりません…。

      また、スクリプトから、実行開始時にアンドゥを0にして、スクリプト終了時にデフォルトのアンドゥ無制限に戻せたら、スクリプトの処理速度も落ちないのでは…?と考えていますが、この問題に関 して、どなたか教えていただけないでしょうか?
        • 1. Re: スクリプトのアンドゥ回数に関して
          seuzo-oJiFme Level 1
          AppleScriptで参照を頻繁にサブルーチンに渡していませんか? 理由はわからないんですが、このようなスクリプトで長文100ページ以上を処理する場合、非常に遅くなりました。10ページなら数秒で終わるのに、100ページだと数時間かかるような感じ。
          サブルーチンを使わないか、IDの数値を渡して解釈するかだと速くなった記憶があります。どのへんがしきい値なのかもわからないので、具体的な回避策ではないかもしれませんが...
          • 2. Re: スクリプトのアンドゥ回数に関して
            Level 1
            「InDesign script undo」でGoogleで検索すると以下の「ADOBE INDESIGN CS4 スクリプティングガイド:JAVASCRIPT」がヒットします。

            http://www.adobe.com/devnet/indesign/pdfs/indesigncs4_scriptingguide_js_jp.pdf

            そのPDF文書の「doScript を使用した取り消しの制御」で以下のように書かれています。

            > InDesign では、ほとんどすべてのアクションを取り消すことができます。ただし、行ったアクションのほとんどすべてがディスクに書き出されるので、犠牲も伴います。 ユーザインターフェイスのツールを使用した通常の作業では、取り消しによって問題が発生することはありません。 しかし、短時間に何千ものアクションの実行が可能であるスクリプトの場合、ディスクへのアクセスが絶えず繰り返されているので、パフォーマンスに深刻な影響を与える場合があります。
            doScript メソッドには、このパフォーマンスの問題を解決するために 2 つのパラメータが用意されており、InDesign の取り消し動作に関してスクリプトの実行方法を制御することができます。 次の例で、これらのパラメータを示します。

            AppleScriptのほうでも同文がありますね。

            http://www.adobe.com/devnet/indesign/pdfs/indesigncs4_scriptingguide_as_jp.pdf
            • 3. Re: スクリプトのアンドゥ回数に関して
              Level 1
              アドバイス、本当にありがとうございます!!

              市川さんのアドバイスどおり、サブルーチンに頻繁に参照の記述してしまっています。
              まさしく、同じです!

              短ページだと、あっという間の処理が、100ページ近くなると、信じられないくらい遅くなってしまいます。(高速CPUのマシンにしても、同じく遅くなってしまいます)

              文字ものでタグ付きテキストを一気に流せるようなのなら、一瞬で処理が終わっても、テキストフレームの数が1ページにそれなりに多いと、遅くなり方は顕著です。

              でも、自分だけじゃないんだ…ってわかりました。

               
               
              radeonさんのアドバイスのPDFみました!!

              CS4ってすごいんですね!

              まだCS2とCS3の環境で作業してますので、CS4に関する知識が乏しかったのですが、教えていただいたPDF見ました!

              Scriptに関して、そうとう進化してますね。
              しかもdoScriptって、RealBasicにAppleScriptを埋め込めたときの感激に似たものがありますね。

              しかも、UNDOに関しても制御できるなんて、実にすばらしいですね。

              でも、これはCS4から…ということなのでしょうか?
              なんとなくそういう感じですね。

              今日はまだこのCS4のPDF、まだ全部は読みこなせてないのですが、実際にCS4導入までには、時間をかけてじっくり読みこなしておきたいと思います。

              ADOBEって、CS2ではしっかりとした日本語のスクリプトマニュアルのPDFを出してましたが、CS2とCS3では英語版だけで、日本語のは、概要だけの薄いものしかなかったですが、CS 4からは、またしっかりとしたマニュアルを作ってきましたねー。

              CS4では、ADOBEもスクリプトに力を入れてきた感じですね。
               
               
              CS4環境にいけるまでは、市川さんにアドバイスいただいた、ID渡しにして、速度試してみようとおもいます。