04)アプリケーションコントロールの最近のブログ記事

05)リファレンスの調べ方

| コメント(0)

用語辞書よりもっと詳しい解説が見たい場合は各メーカーが提供しているリファレンスやガイドブックを見ます。
AdobeInDesignやAdobeIllustratorなどはスクリプトリファレンスやスクリプティングガイドなどがインストーラCDに入っています。リファレンスは用語辞書で命令方法やテキストフレームやカラーといったオブジェクトの指定方法や使えるプロパティを調べるのに役に立ちます。(英語の場合もあります。)スクリプティングガイドは初心者からAppleScriptを扱う解説が詳しく載っています。特にInDesignCS2のスクリプティングガイドは非常に丁寧に解説されており。サンプルも多数掲載されています。私自身も知らないことやあやふやなことがたくさん載っていて、まだまだ勉強しなくてはと実感させられます。このガイドをくわしく読むだけで十分AppleScriptの勉強になりますし、この原稿を読む必要もなくなるぐらいです(笑)

04)コマンドを送る

| コメント(0)

get propertiesでtext frameのプロパティをいろいろ変更できました。ではtext frameを作成するのにはどうすれば良いでしょう。これにはコマンドを使います。用語辞書のCore Suiteのコマンドにmakeがあります。

make: Make a new element
	make
		new  type class  -- the class of the new element.
		at  location reference  -- the location at which to insert the element
		[with data  anything]  -- the initial data for the element
		[with properties  record]  -- the initial values for the properties of the element
	Result:   reference  -- to the new object(s)

makeというコマンドの次の行にnew type classとありさらに次にat location referenceとあります。これは

make new 作りたいオブジェクトのクラス at 場所

という書き方になります。その後の[]でくくられている部分は省略可能です。Resultにreferenceとありますがこれは返り値で新しく出来たオブジェクトが返ってきます。では作りたいオブジェクトのクラスですが、先ほどget propertiesで調べたtext frameクラスを渡してみましょう。場所は最前面につくるのならbeginningでいいでしょう。

tell application "Adobe Illustrator"
	tell document 1
		make text frame at beginning
	end tell
end tell

ぽつんと小さなオブジェクトが出来ました。これがスクリプトから作成したtext frameです。さきほど省略したwith propertiesを使ってみましょう。with properties recordと書いてあるのでwith properties {○○:〜〜}という使い方になります。text frameのプロパティは先ほど調べました。その中でcontentsを使ってみましょう。

tell application "Adobe Illustrator"
	tell document 1
		make text frame at beginning with properties {contents:"あああ"}
	end tell
end tell

ほかにもコマンドには

close: --ドキュメントを閉じる
	close document 1 saving no--保存せずに
count  reference  -- オブジェクトの数を数える
	count taxt frames
delete: -- オブジェクトを消す
	delete text frame 1
duplicate: --複製する
	duplicate text frame 1 to end
exists: --オブジェクトが存在するか?
	if exists text frame 1 then〜end if
move: --オブジェクトを動かす
	move text frame 1 to end of layer 1
open: --ファイルを開く
	open alias "Macintosh HD:test.ai"
save: --ファイルを保存する
	save  document  1 in  file "Macintosh HD:test.ai" as Illustrator

などがあります。まだまだ他にもいろいろありますので後述します。

03)用語辞書の調べ方

| コメント(0)

AppleScriptからアプリケーションをコントロールするときは用語辞書を見て使えるコマンドやセットできるプロパティを調べます。
用語辞書を見るにはまずスクリプト編集プログラムのウィンドウメニューからライブラリを選びます。ライブラリウィンドウ上部の+ボタンをクリックしてInDesignやIllustratorを選択します。ライブラリウィンドウに登録されたらダブルクリックしてください。用語辞書が開きます。
試しにAdobe Illustrator Suiteのクラスでtext frameを見てみましょう。
as4-3.jpg

Class text frame: Text frame item
Plural form:
	text frames
Elements:
	character by numeric index, as a range of elements, 
				before/after another element, satisfying a test
	insertion point by numeric index, as a range of elements, 
				before/after another element, satisfying a test
	line by numeric index, as a range of elements, 
				before/after another element, satisfying a test
	paragraph by numeric index, as a range of elements, 
				before/after another element, satisfying a test
	text by numeric index, as a range of elements, 
				before/after another element, satisfying a test
	word by numeric index, as a range of elements, 
				before/after another element, satisfying a test
Properties:
	<Inheritance>  page item  [r/o]  -- subclass of page item
	properties  record  
		-- all of this object's properties returned in a single record
	anchor  list  
		-- the position of the anchor point (start of base line for point text)
	column count  integer  
		-- the column count in the text frame (area text only)
	column gutter  real  
		-- the column gutter in the text frame (area text only)
	content variable  anything  
		-- the content variable bound to this text art item
	contents  Unicode text  
		-- the text contents of this text frame
	end T value  real  
		-- the end position of text along a path, as a value relative to 
		   the path's segments (path text only)
	flow links horizontally  boolean  
		-- Flow text between linked frame horizontally first. (area text only)
	kind  area text/path text/point text  [r/o]  
		-- the type of a text frame item
	matrix  matrix  [r/o]  
		-- The transformation matrix of the text frame object
	next frame  text frame  
		-- the linked text frame following this one
	optical alignment  boolean  
		-- is the optical alignment active?
	previous frame  text frame  
		-- the linked text frame preceding this one
	row count  integer  
		-- the row count in the text frame (area text only)
	row gutter  real  
		-- the row gutter in the text frame (area text only)
	selection  a list of text  [r/o]  
		-- the selected text (ranges) in the story
	spacing  real  
		-- the amount of spacing (path text only)
	start T value  real  
		-- the start position of text along a path, as a value relative to 
		  the path's segments (path text only)
	story  story  [r/o]  
		-- the story of the text frame
	text orientation  horizontal/vertical  
		-- the orientation of the text in the frame
	text path  text path  [r/o]  
		-- the path for the text frame (area and path text)
	text range  text  [r/o]  
		-- the text range of the text frame

大量にでてきますが--より右に書いてあるのが解説です。
Elementsは要素です。character(キャラクター)が書いてありますが、text frameの要素にcharacterがあるということです。これをスクリプトにすると下記のようにさらに深い階層になります。characterの用語辞書はText Suiteに書かれています。

tell application "Adobe Illustrator"
	tell document 1
		tell text frame 1
			tell character 2
				get properties
			end tell
		end tell
	end tell
end tell

Propertiesがプロパティですね。この値を変更することによって、Illustratorを操ることが出来ます。

contents  Unicode text  -- the text contents of this text frame

はプロパティcontentsの値はユニコードテキストだということと、--以下の説明をみるとtext frameの内容だということがわかります。

row count  integer  -- the row count in the text frame (area text only)

というのはrow count(段組みの段数)がinteger(整数)で返ってくることがわかります。 [r/o] と書いてあるのはread onlyのため変更することは出来ません。

kind  area text/path text/point text  [r/o]  -- the type of a text frame item

kindというのは種類でarea textかpath textかpoint textで値が返ってきます。テキストボックスを作ればarea textでクリックして文字を作ればpoint textで、ベジェ曲線に沿うようなのはpath textです。こちらも[r/o]なので変更不可です。(実はIllustrator10では変更できましたが変更すると変な形になっていました。)

エントリー一覧

OpenID対応しています OpenIDについて
Powered by Movable Type 8.0.2
漢字イラストロジック-脳トレ京
FREE ONLINE SUDOKU