javascriptでの点線の描き方

[1049]javascriptでの点線の描き方 | 投稿者:いさ | 投稿日:2008/04/24(Thu) 16:07:16
Indesign CS3(windows) javascriptについてです。
下記Scriptで点線を描きたいと思っていますが、実線を描くところまでは動作するのですが、その後がうまくいきません。StrokeStyleの辺りがきちんと理解できていないのが原因なのかと思うのですが、アドバイス頂けるとうれしいです。

java scriptここから

var doc,pObj;
doc = app.documents.add();

pObj = pageObj = app.documents.add();.rectangles.add();
pObj.paths.item(0).entirePath = [[0, 0], [100, 100]];
pObj.paths.item(0).pathType = PathType.openPath;
pObj.strokeWeight = "2 H";

with ( pObj ) {
   strokeType = 1684108136;                    //idDashed??
   strokeDashAndGap = ["8 H"];
}
» 1
[1050]Re: javascriptでの点線の描き方 | 投稿者:梅花藻 | 投稿日:2008/04/24(Thu) 19:18:09
CS3のJavaScriptを調べている余裕がありませんので、CS2の話になってしまいますが、
(たぶん、そんなに外れてはいないと思いますので)

まず、新規の線種として点(DottedStrokeStyle)線を追加して、それを選択する形にする必要があると思います。

参考までに、CS2のJavaScriptで新規の二重線を追加するスクリプト
(線幅までは定義できないので、線幅を0.5㍉にしたときに定義した比率になるようになっています)

//2重線(0.12㍉罫線2本からなる0.5㍉の二重線)を追加
var myDoc = app.activeDocument;
var myStrokeType = myDoc.stripedStrokeStyles.item("2重線");
try {
   myStrokeType.name;
} catch (myError){
   myStrokeType = myDoc.stripedStrokeStyles.add({name:"2重線",strokeStyleType:"ストライプ",stripeArray:[0, 24, 76, 100]});
}
» 2
[1061]Re: javascriptでの点線の描き方 | 投稿者:梅花藻 | 投稿日:2008/05/02(Fri) 13:56:57
>いさ様

私が(あまり適当でないかも知れない)レスをつけてから、一週間以上経ちますが、問題は解決しましたでしょうか?

時間ができましたので、いささんのInDesign CS3のスクリプトを検証してみました。
2カ所ほど修正しました。

//----ここから
var doc,pObj;
doc = app.documents.add();

pObj = pageObj = doc.rectangles.add();//修正 pageObjは不要かとも
pObj.paths.item(0).entirePath = [[0, 0], [100, 100]];
pObj.paths.item(0).pathType = PathType.openPath;
pObj.strokeWeight = "2 H";

with ( pObj ) {
strokeType = "$ID/Dashed";//修正 "$ID/Dashed"は"点線"としてもよい
strokeDashAndGap = ["8 H"];
}
//---ここまで

strokeTypeはデフォルトでもっているものに関しては、その名前で指定できます。
新たな線種を設定して使用する場合には、
DashedStrokeStyle
DottedStrokeStyle
StripedStrokeStyle
のいずれかのタイプで新規線種を設定することになります。

なお、"$ID/Dashed"等を調べる方法は、せうぞー氏の「旧BBSの過去ログ」をどうぞ。
http://www.seuzo.jp/rubbs/search_html/msg01616.html
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア