いつもお世話になってます。
インデザインCS5.5のキーボードショートカットで1℃だけ右回転
同じように左回転を登録をして、マスクに写真を入れたあと
楽に角度調整できるようにしたいのです。
スクリプトでできるのかな?と思ったのですが、
私には難しすぎて理解できませんでした。
宜しくお願いします。
[12636] エケモゴーザ (2011/08/26 Fri 16:57)
> インデザインCS5.5のキーボードショートカットで1℃だけ右回転
エラー処理とか考えなければ以下の4行でいけます。
三行目のラストあたり、プラス値で反時計、マイナス値で時計回りに回転します。
(はいさい!さんを参照してください)
http://d.hatena.ne.jp/oimoh/searchdiary?word=%B3%D1%C5%D9
var myImgObj = app.selection[0];
var myAngle = myImgObj.rotationAngle;
var myRotateMatrix = app.transformationMatrices.add({counterclockwiseRotationAngle:myAngle +1});
myImgObj.transform(CoordinateSpaces.pasteboardCoordinates, AnchorPoint.CENTER_ANCHOR, myRotateMatrix);
[12637] いき◆OTKUlNBtV0 (2011/08/26 Fri 18:17) web
すみません、間違えました。
このソースでは意図通りに動作しません……。
[12639] いき◆OTKUlNBtV0 (2011/08/26 Fri 18:27) web
おうち用なので多少ぶさいくですが
任意の基準点があればそこを基準にぐるんぐるん回転します。
定規の単位どれでもオケーです。
function unitFunc(ary){
app.activeWindow.transformReferencePoint=["1pt", 0];
x= app.activeWindow.transformReferencePoint[0];
app.activeWindow.transformReferencePoint=ary;
return x;
}
var myruler = false;
if (app.activeDocument.viewPreferences.rulerOrigin != 1380143983) {
myruler = app.activeDocument.viewPreferences.rulerOrigin;
app.activeDocument.viewPreferences.rulerOrigin = 1380143983;
}
if(app.activeDocument.selection.length){
aa=app.activeDocument.selection[0];
tt=app.transformationMatrices.add(1,1,0,1,0,0);
bb=aa.rotationAngle;
cc=app.activeWindow.transformReferencePoint;
if(cc.length==2){
unitObj=unitFunc(cc);
dd=[[cc[0]*unitObj, cc[1]*unitObj],[0,0]];
} else{
dd=cc;
}
aa.transform (2021222766, dd, tt, undefined, undefined);
}
if (myruler) {
app.activeDocument.viewPreferences.rulerOrigin = myruler;
}
[12640] (z-) (2011/08/26 Fri 18:41)
と、すみませんCS4までは動作確認できたのですが(財力の限界)
CS5でコケるそうです。
ほんとすみません。
2人がかりでぐだぐだに orz
[12641] (z-) (2011/08/26 Fri 18:50)
app.selection[0].rotationAngle+=1;
だけで、いいっちゃあいいんですけど。。
ほんとすみません。
[12642] (z-) (2011/08/26 Fri 18:56)
謝りつつ 少し直しました
任意の基準点を軸に1°回転します。
function unitFunc(ary){
app.activeWindow.transformReferencePoint=["1pt", 0];
x= app.activeWindow.transformReferencePoint[0];
app.activeWindow.transformReferencePoint=ary;
return x;
}
var myruler = false;
if (app.activeDocument.viewPreferences.rulerOrigin != 1380143983) {
myruler = app.activeDocument.viewPreferences.rulerOrigin;
app.activeDocument.viewPreferences.rulerOrigin = 1380143983;
}
if(app.activeDocument.selection.length){
aa=app.activeDocument.selection[0];
tt=app.transformationMatrices.add(1,1,0,1,0,0);
bb=aa.rotationAngle;
cc=app.activeWindow.transformReferencePoint;
if(cc.reflect.name=="Array"){
unitObj=unitFunc(cc);
dd=[[cc[0]*unitObj, cc[1]*unitObj],[0,0]];
} else{
dd=cc;
}
aa.transform (2021222766, dd, tt, undefined, undefined);
}
if (myruler) {
app.activeDocument.viewPreferences.rulerOrigin = myruler;
}
[12643] (z-) (2011/08/26 Fri 19:05)
私スクリプトは初めての挑戦でしたのでかなり緊張しました。
見事に回転したのを見てウチの皆「うわぁ〜@@;」と小躍り。
迅速かつ丁寧な対応をお二人から頂き、一同共々深く感謝しております。
今回を機に私自信、スクリプトの勉強を始めたいと思います。
本当にありがとうございました。
[12644] エケモゴーザ (2011/08/26 Fri 19:37)
ほんとにぐだぐだですみませんでした。。
ぐだぐだついでに、余計な処理が残っていたので整理させてください(土下座)
function unitFunc(ary){
app.activeWindow.transformReferencePoint=["1pt", 0];
x= app.activeWindow.transformReferencePoint[0];
app.activeWindow.transformReferencePoint=ary;
return x;
}
if(app.activeDocument.selection.length){
aa=app.activeDocument.selection[0];
tt=app.transformationMatrices.add(1,1,0,1,0,0);
bb=aa.rotationAngle;
cc=app.activeWindow.transformReferencePoint;
if(cc.reflect.name=="Array"){
unitObj=unitFunc(cc);
dd=[[cc[0]*unitObj, cc[1]*unitObj],[0,0]];
} else{
dd=cc;
}
aa.transform (2021222766, dd, tt, undefined, undefined);
}
--------------------------------------------
以上で完成形とします。
(1,1,0,1,0,0)の部分は、1番目と2番目が拡大縮小、4番目が回転となっています。
必要分書き換えて作っておくと便利かと。
[12645] (z-) (2011/08/26 Fri 19:44)
AJABONさんの完成版が汎用性が高く、私も勉強になりました。
ちなみに、私の書いたのを一応動くように書き換えるとすると以下のようになります。
3行目の末尾、+1で反時計回りに1度ずつ、-1で時計回りに1度ずつとなります。
if (app.selection.length === 1) {
var myImgObj = app.selection[0];
var myAngle = myImgObj.rotationAngle - myImgObj.rotationAngle +1;
var myRotateMatrix = app.transformationMatrices.add({counterclockwiseRotationAngle:myAngle});
myImgObj.transform(CoordinateSpaces.pasteboardCoordinates, AnchorPoint.CENTER_ANCHOR, myRotateMatrix);
}
else {alert("オブジェクトを1つだけ選択してください");}
[12647] いき◆OTKUlNBtV0 (2011/08/29 Mon 09:19) web
…すごくすみません。 カケルとワルを間違えておりました。
みっちり検証の上、これでほんとのほんとです。
もう、沸騰するまで回転しちゃって下さい。
function unitFunc(ary){
app.activeWindow.transformReferencePoint=["1pt", 0];
x= app.activeWindow.transformReferencePoint[0];
app.activeWindow.transformReferencePoint=ary;
return x;
}
if(app.activeDocument.selection.length){
aa=app.activeDocument.selection[0];
tt=app.transformationMatrices.add(1,1,0,1,0,0);
bb=aa.rotationAngle;
cc=app.activeWindow.transformReferencePoint;
if(cc.length==2){
unitObj=unitFunc(cc);
dd=[[cc[0]/unitObj, cc[1]/unitObj], [0, 0]]
} else{
dd=cc;
}
aa.transform (CoordinateSpaces.PASTEBOARD_COORDINATES, dd, tt, undefined, undefined);
}
[12651] (z-) (2011/08/29 Mon 11:31)
> みっちり検証の上、これでほんとのほんとです。
というのは冗談で、以下が最終版となります(超土下座)
function unitFunc(ary){
app.activeWindow.transformReferencePoint=["1pt", 0];
x= app.activeWindow.transformReferencePoint[0];
app.activeWindow.transformReferencePoint=ary;
return x;
}
if(app.activeDocument.selection.length){
aa=app.activeDocument.selection[0];
tt=app.transformationMatrices.add(1,1,0,1,0,0);
bb=aa.rotationAngle;
cc=app.activeWindow.transformReferencePoint;
if(cc.reflect.name=="Array"){
unitObj=unitFunc(cc);
dd=[[cc[0]/unitObj, cc[1]/unitObj], [0, 0]]
} else{
dd=cc;
}
aa.transform (CoordinateSpaces.PASTEBOARD_COORDINATES, dd, tt, undefined, undefined);
}
[12652] (z-) (2011/08/29 Mon 12:04)
なんで温度を回転するの?
[12646] 謎 (2011/08/27 Sat 18:09)