Adobe Illustrator のスクリプティング処理のうち、スクリプト実行時に作成した新規ドキュメント上での処理についての質問です。バージョンは CS5 です。
jsx で以下の処理を組もうとしています。
(1) アクティブドキュメントを検索し、任意の要素を選択
(2) (1)をコピーしたオブジェクトを作成
(3) 新規ドキュメントを作成
(4) (2)を(3)に移動
(5) (3)に移動した(2)を取得(選択)
(6) (5)の位置を変更
(7) (6)を外部ファイルに保存
(8) (6)を閉じる
(5)で新規ドキュメントのpageItems配列の0番目(コピーした要素)にアクセスした瞬間にレスポンスが返ってこなくなり、固まってしまいます。仕方なく、毎回イラストレータを落とします。
(5)(6)の工程を抜くと、他の処理は全体を通してすべて正常に動きます。
アクティブドキュメントのループ処理中に作成した新規ドキュメント上にコピーした要素のプロパティは触ることができないのでしょうか…?また、上記を実現できる方法はありますか?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
shut0325です。
簡単なコードを書いてテストしてみましたが、可能でした。
下記のコードでは、最初のアクティブドキュメント(BaseDoc)内の選択されたオブジェクトを新規ドキュメント(MyDoc)に複製し、100(ポイント)ピッチで、配置(移動)しています。
ちょっと引っかかった点としては
BaseDoc.activate();
この部分で、最初のアクティブドキュメントをアクティブにしないと、新規書類に対して何も処理してくれませんでした。
今回は各々で複製→複製先で移動とやっていますが、元ドキュメントをアクティブにしてコピー(copy())→複製先ドキュメントをアクティブにしてペースト(paste())すると、選択は維持されたままになっているので、複製先でループ処理して移動、、、としてもいいと思います。
var BaseDoc = activeDocument;
var Mydoc = app.documents.add();
var mat = new Array;
BaseDoc.activate();
for (var i in BaseDoc.selection){
mat[i] = BaseDoc.selection[i].duplicate(Mydoc);
mat[i].position = [100*i,100];
}
お返事遅くなってすみません。
サンプルコードを元に色々やったらうまく動きました。
とても参考になりました、ありがとうございます!
No.1
- 回答日時:
コードがないので、何が問題か良くわかりませんが、開始時のアクティブドキュメント及び新規ドキュメントは変数に格納していますでしょうか?
下記の様な感じです。
var docref = activeDocument;
var Mydoc = app.documents.add();
最初に宣言しておけば、後は、変数名を指定しての処理が進められます。
この回答への補足
ご回答ありがとうございます。
> コードがないので、何が問題か良くわかりませんが、開始時のアクティブドキュメント及び新規ドキュメントは変数に格納していますでしょうか?
はい、スクリプト実行時のアクティブドキュメントとスクリプト実行中に作成するドキュメントを区別するために、変数に格納しています。
以下のように新規ドキュメント上にコピーした画像の座標を(0,0)に移動させようとすると止まってしまいます。
//newDoc = 新規作成したドキュメント
//imgObj = コピーする画像オブジェクト
imgObj.moveToBeginning(newDoc);
newDoc.pageItems[0].translate(0, 0);
新規ドキュメントに画像をコピー後、画像の座標を操作するスクリプトを組むことはできるのでしょうか…?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 フォルダの新規作成を必ず「ドキュメント」にする方法 1 2023/06/24 09:08
- Google+ Googleのドキュメントの使い方を教えて貰いたいです。 書いたものを共有して格納場所に入れて 毎日 2 2022/05/02 10:55
- Illustrator(イラストレーター) Illustrator アンカーポイント選択について 3 2023/01/30 12:31
- WordPress(ワードプレス) Wordpress 複数プラグインの不具合? 1 2022/10/09 21:52
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- その他(クラウドサービス・オンラインストレージ) one drive 容量いっぱいだそうだが意味不明 4 2022/11/26 20:20
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- グループウェア 一太郎がイントラで開けません。対処方法を知りたいです。 3 2023/04/04 13:30
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ムービークリップのドラッグ
-
Wordの文字削除ができない
-
【テプラの使い方で】複数行の...
-
エクセルのグラフ データテー...
-
ワード ヘッダ下部とフッタ上...
-
ユウロピウム
-
WinMergeの色設定
-
テプラで2行目の文字を大きく...
-
Excel 行列番号のハイライト色...
-
ホームページビルダー22でリン...
-
PhotoShopで任意の色数に減色し...
-
Excelのヘッダー表示を変数で指...
-
フリーソフトのCliborについて
-
URLを掲載せずに文字をクリック...
-
カーソルを当てると説明の枠と...
-
ツールバーのサイズ変更方
-
texでアクセント記号
-
HPビルダー。作成ページでの...
-
photoshopのCMYKのスウォッチに...
-
検索窓のフォントの大きさを変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ムービークリップシンボルとグ...
-
illustratorにてクリッピングマ...
-
Wordの文字削除ができない
-
【テプラの使い方で】複数行の...
-
ワード ヘッダ下部とフッタ上...
-
エクセルのグラフ データテー...
-
テプラで2行目の文字を大きく...
-
WinMergeの色設定
-
PhotoShopで任意の色数に減色し...
-
Excelのヘッダー表示を変数で指...
-
Excel 行列番号のハイライト色...
-
Becky! で2行目以降に色がつく...
-
macとwinで色の見え方が違う、...
-
日塗工の色をRGB値に変更し...
-
一太郎13でカーソルがタテか...
-
EXCELのコンボボックス 配置の...
-
特色の一括変換方法につきまして
-
イラレでCMYKをDICに変換すると...
-
txtって、ページ番号振れないん...
-
AviUtlの色による劣化について...
おすすめ情報