(クリックで動きます)
160601

【無料】「レイアウト」だなんてまだまだおこがましいですが…人工知能プロジェクト第1弾!>>>

おつかれさまです。@gorolibです。

先般ぶちあげた、
イラストレーター人工知能プロジェクト
ですが、オブジェクトひとつならなんとかなりましたので、早速公開いたします。

これは実験プロジェクトなので無料です。むしろ皆様に改造しながら使っていただいたほうがよろしいかと思いますので、ソースも公開します。

<スクリプトファイル名>
(無料ダウンロードです)

<使い方>
(1)オブジェクトを選択します
(2)このスクリプトを実行します

以上です。

(クリックで動きます)
160601

<仕様>
(1)選択されたオブジェクトの位置を判定します
(2)左右のアートボード端に近いほうのマージンを取得します
(3)反対側も同じマージンで決定します
(4)選択オブジェクトから反対側のマージンまで長方形を描きます
(5)選択オブジェクトと長方形のスキマはキー入力値の20倍です

<補足>
(1)仕様(5)について。
→唐突に20倍とか言ってますが(笑)
→まあ、0.1ミリ→2ミリ、0.5ピクセル→10ピクセルがスキマとなります。なんとなく妥当でしょ?このブログによくコメントいただいている方の意見を統合するとそんなカンジです。


先般の記事のとおり、

これが2つになるとモーレツにむずかしくなるんです!しばしお待ちを…。
53

お役に立てれば幸いです!

ではでは出羽の海。


ソースも公開します。
━━━━━
DOC = activeDocument;
SEL = DOC.selection;
CKL = app.preferences.getRealPreference("cursorKeyLength");
ABD = DOC.artboards;
ABDr = ABD[ABD.getActiveArtboardIndex()].artboardRect;

MAINfn();

function MAINfn(){
if(SEL.length == 0) return false;

for(s=0; s<SEL.length; s++){
BND = SEL[s].geometricBounds
D1 = CKL*20
M1 = Math.abs(BND[0]-ABDr[0])
M2 = Math.abs(ABDr[2]-BND[2])

T1 = BND[1]
H1 = SEL[s].height

if(M1 < M2){
L1 = BND[2] + D1
W1 = ABDr[2] - M1 - L1
} else {
L1 = ABDr[0] + M2
W1 = BND[0] - L1 - D1
}

SEL[s].selected = false

NEW = DOC.pathItems.rectangle( T1, L1, W1, H1 );
NEW.selected = true
NEW.fillColor = SEL[s].fillColor
}
}
━━━━━