あるgroup itemをX=0pt Y=10pt 幅=100pt 高さ=200ptにしたいとき
set properties to {position:{0, 10}, width:100, height:200}
とやってしまうと大きさや場所は望みの場所に来るのですが線幅やアピアランスが消えてしまいます。解決するには
scale horizontal scale Wper vertical scale Hper line scale Wper ¬ about top left with transforming objects, transforming fill patterns,¬ transforming fill gradients and transforming stroke patternsを使って変倍したあとpositionで移動させます。
scaleのオプションパラメータは以下のとおり horizontal scale 120--左右の変倍比率(120だと120%) vertical scale 120-- 天地の変倍比率 line scale 120-- 線幅の変倍比率 about top left--左上基準で変倍 bottom rightで右下基準 centerで中心基準 with transforming objects,--効果も変倍する transforming fill patterns,--塗りのパターンも変倍する transforming fill gradients --グラデも変倍する and transforming stroke patterns--線のパターンも変倍する下記が変倍のサンプルスクリプトです。希望の大きさと現在の大きさの比率を出して変倍してから移動しています。
tell application "Adobe Illustrator"
tell document 1
tell group item 1
set properties to {position:{0, 10}, width:100, height:200}
--これをすると線幅やアピアランスが消えてしまう
--(Illustrator10では大丈夫)
set myCB to control bounds
--オブジェクトを選択してドラッグするときに表示される輪郭。
--オブジェクトよりひとまわり大きい。
set myGB to geometric bounds
--オブジェクトのアンカーポイントぴったりのサイズ
set myVB to visible bounds
--オブジェクトに線の設定がされていれば線幅も加えたサイズになる。
set myX to item 1 of myGB
set myY to item 2 of myGB
set myW to (item 3 of myGB) - myX
set myH to (item 4 of myGB) - myY
set Wper to 100 / myW * 100
set Hper to 200 / myH * 100
scale horizontal scale Wper vertical scale Hper line scale Wper ¬
about top left with transforming objects, transforming fill patterns,¬
transforming fill gradients and transforming stroke patterns
set position to {0, 10}
end tell
end tell
end tell
コメントする