【Illustratorスクリプト】オブジェクトの位置を取得して中心に角を合わせた四角形を作成。
Windows10、CS4
イラレのスクリプトでオブジェクトの位置(座標?)を取得して、中心に角を合わせた四角形を作成する方法です。
→
花はこちらを使用しています。AIデータあり。商用利用可能で無料でダウンロードできます。
ソースコードです。
#target "illustrator"
//選択中のオブジェクトを取得
var sel = app.activeDocument.selection; //座標を取得
var bns = sel[0].visibleBounds;
//四角形を作成
docObj = activeDocument;
pObj = docObj.pathItems.rectangle(((bns[1]+bns[3])/2),((bns[0]+bns[2])/2),200,100);
中心の座標を直接取する方法は分かりませんでした。なので((左上-右下)÷2)で求めています。
Illustratorでは、①左上のy座標、②左上のx座標、③右下のy座標、④右下のx座標、の順に取得するようです。
取得は①左上のx座標、②左上のy座標、③右下のx座標、④右下のy座標。
書き出すときの書き方は①左上のy座標、②左上のx座標、③右下のy座標、④右下のx座標。でした。
なんでこんなふうにしてくれたんだろう。
((bns[1]+bns[3])/2)が「+」だよ?と思ったかもしれませんが、y座標は下方向が+のようです。(bns[1]-(-bns[3]))/2ということです。ちょっと複雑。
(((bns[1]+bns[3])/2),((bns[0]+bns[2])/2),200,100)→(左上y座標,左上x座標,横幅,縦幅)です。
四角形の作成については下記のサイトを参考にしました。
var sel = app.activeDocument.selection;
var bns = sel[0].visibleBounds;
上の2列で位置を取得しているのですが、2つ以上のグループ(オブジェクト)がある場合、前面にある方を最初に取っているようです。
2つ目以降の座標も知りたい場合は参考になります↓
Gyonilog: [Illustrator]バウンディングボックスサイズの四角形を作成する
イラストダウンロードサイト【イラストAC】でフリー素材を投稿しています。よろしければご覧ください。
プロフィールページ:イラストレーター ふわぷかさんのプロフィール
Photoshop & Illustratorでつくる手描き感デザイン
- 作者: MdN編集部
- 出版社/メーカー: エムディエヌコーポレーション
- 発売日: 2016/03/23
- メディア: 単行本
- この商品を含むブログ (1件) を見る