// 雑記 AppleScript "); } }

雑記

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[AppleScript][Illustrator] 保存したバージョンで開く

あ、このファイルCS5だったのか!
Illustratorは現在開いているバージョンでファイルを開いてしまうため、こんなウッカリをしがちです。
そこで、保存したバージョンのIllustratorで開くAppleScriptを書いてみました。
(誰かが書いてたような気がしないでもないのですが……)

CCからの下位バージョン保存は保存情報がCCのままですので、CCで開いてしまいます。
CCからCS6以外は保存バージョンで開きます。
CS6以前からの下位バージョン保存は指定のバージョンで開くようです。
(全てのバージョンで確認したわけではないです)


Exiftoolです。
リンク先からダウンロード&インストールしてください。


アプリケーションにDrag&Dropするか、予め『.ai』ファイルをver_openで開くように情報ウィンドウで設定すれば、ファイルのダブルクリックで保存したバージョンで開くと思います。

CC〜CS3まで対応しています。


ver_open.zip


2014-06-17 v0.1 とりあえず版

2014-06-17 v0.2 v5.1の追加。quoted form 追加

最終保存バージョンで開くScript

CCCS3に対応。

Exiftool http://www.sno.phy.queensu.ca/~phil/exiftool/

*)

on run

my main(afile)

end run


on
open theList

repeat with afile in theList

my main(afile)

end repeat

end open

on main(afile)

set afile to afile as alias

set posix_aFile to POSIX path of afile

set shellcmd to "ExifTool -T -Creator " & quoted form of posix_aFile --creatorバージョン取得

set ver_str to do shell script shellcmd

set ver to my get_ver(ver_str) --バージョン取得

my opne_file(afile, ver) --取得バージョンで開く

end main

on get_ver(ver_str)

set cc to 17

set cs6 to 16

set cs51 to 15.1

set cs5 to 15

set cs4 to 14

set cs3 to 13

if (offset of cc in ver_str) is not 0 then

--display dialog "CC"

return "cc"

else if (offset of cs6 in ver_str) is not 0 then

--display dialog "CS6"

return "cs6"

else if (offset of cs51 in ver_str) is not 0 then

--display dialog "CS5.1"

return "cs5.1"

else if (offset of cs5 in ver_str) is not 0 then

--display dialog "CS5"

return "cs5"

else if (offset of cs4 in ver_str) is not 0 then

--display dialog "CS4"

return "cs4"

else if (offset of cs3 in ver_str) is not 0 then

--display dialog "CS3"

return "cs3"

else

return "none"

end if

end get_ver

on opne_file(afile, ver)

if ver is not "none" then

try

set open_app to (path to applications folder as Unicode text) & "Adobe Illustrator " & ver & ":Adobe Illustrator.app"

tell application open_app

activate

open (afile as alias)

end tell

on error

display dialog "ver." & ver & " はこのMacにはインストールされていないようです" buttons " OK " default button 1 giving up after 3

end try

end if





ムムム……
色がつかなくなってしまった……

(もうちょっとすっきり書けそうな気がする…)


テーマ:ソフトウェア - ジャンル:コンピュータ

[AppleScript][Illustrator] アクションにScriptを登録しても保存されないので…

Creative CloudになってもアクションにScriptを保存できない仕様は変更にならないようですね〜
私は特に困っていないのですが、ちょっと考えてみました。

1.その他のスクリプト“メニュー”は登録できるので都度都度スクリプトを選択する。

どこからか罵声が聞こえてきそうなやり方ですね…


2.ここは一つ逆転の発想でスクリプトからアクション呼出し→スクリプト→アクション呼出し

これが現実的な方法ですね




(*

action1、action2にはアクション名を、

action_setにはセット名を入れる。

on my_script()内に実行するScriptをコピー&ペーストする

*)

tell application "Adobe Illustrator"

tell current document

activate

--アクション実行

do script "action1" from "action_set"

--Script実行

my my_script()

--アクション実行

do script "action2" from "action_set"

end tell

end tell

on my_script()

--ここに実行するスクリプトをコピー&ペースト

end my_script




書替え箇所
action1…………初めに実行するアクション名
action2…………スクリプト実行後に実行するアクション名
action_set………アクションが登録されているセット名

my_script………実行するスクリプトをコピー&ペーストで挿入



スクリプトの実行面倒じゃん!!
という方はものかのさん作、ScriptKeyAiを使いましょう! スクリプトにショートカットを割当が出来るようになります。

これで素敵なアクションライフを!

テーマ:ソフトウェア - ジャンル:コンピュータ

[AppleScript][Illustrator] Collect For Output を修正

神速Illustrator発売されましたね!
様々なTip'sが掲載され作業の効率化に繋がっているのではないでしょうか?

さて、Chapter 07 自動化の神速テクニックの中で『Collect For Output』が紹介されていますが、その中に気になる記載が…
「0」「00」「000」「0000」などのファイル名が配置されていると一つしか収集されない。

知らなかった〜!
では修正しましょう。



if not ((file myfilename   of   myillfilecontainer  ) exists) then

ここがきちんと値を返してくれないみたいなので書き直し。

以下のハンドラを差し替えれば上記の様なファイル名も収集できるようになると思います。


on collectArtToLocal(myitems, thefilepath)

tell application "Finder" to set myillfilecontainer to container of thefilepath

repeat with myitem in myitems

tell application "Adobe Illustrator" to set myFile to (file path of myitem)

tell application "Finder"

set myfilecontainer to (container of myFile)

set myfilename to (name of myFile)

if myfilecontainer is not myillfilecontainer then

try

((myillfilecontainer as unicode text) & (myfilename as  unicode text )) as alias

on error

with timeout of 60 * 6 seconds

set mynewfile to (duplicate myFile to myillfilecontainer)

end timeout

end try

end if

end tell

end repeat

end collectArtToLocal



CC版のCS6からはパッケージ機能も付いたので今更このScriptを使わなくてもいいような気もしますが……
それに、収集だけで考えたらもっと高速に動作するものもありますしね。こちらのやあちら(2014-01-28現在10.9未対応)の等々……。

でも〜
せっかくのAppleScript。収集させるだけじゃもったいないので自分の使いやすいように改造してみましょう!
まずは、余計な保存をしないようにするとか、ドラッグ&ドロップで動くようにしてみるとか、複数ファイル対応にしてみるとか……


続きを読む

テーマ:プログラミング - ジャンル:コンピュータ

[AppleScript][FileMaker]フィールド値の直接参照

FM Tokyo行ってきました。

その中のLTで、AppleScript、Automator等の発表があったのですが、
なんと、FileMakerのフィールドが直接参照できるようになっていました!

どのバージョンから出来るようになったのかは分かりませんが、12で出来る事を確認。
少なくとも9まではグローバルフィールドを介してじゃないと出来なかったので少し面倒な所もあったのですが、これで随分使いやすくなりました!


テーマ:ソフトウェア - ジャンル:コンピュータ

[AppleScript][Illustrator]アウトライン時の留意点

AppleScriptでアウトライン化するには

convert to paths (every text frame)(loopさせなくても一括でアウトライン化できます)

を使いますが、留意すべき点があります。

効果」の「形状に変換」を使用している場合、「アピアランス分割」の前にアウトライン化してしまうと「形状に変換」で設定した形状が崩れてしまいます。

img09_01.jpg
わかりにくいかもしれませんが囲み罫が小さくなり、テキストの位置が下にずれています。
(データ的には囲み罫が上に上がっていますが……)


そして、「アピアランス分割」後に「convert to paths」すると線に設定した「スタライズ」の「ぼかし」が無効化されてしまい、ただのふちになってしまいます。

アピアランス分割」前ならぼかしが維持されたままアウトライン化されます。

img09_02.jpg


回避方法は見つけられなかったのでGUI Scriptで処理しています。

昨今はPDF入稿が増えていますのでアピアランス分割やアウトライン化もしなくなっているかもしれませんがご留意ください。


CS3、5、6で確認済み



目立たなかったので事故にはなりませんでしたが、これで納品してしまった事が……。

テーマ:プログラミング - ジャンル:コンピュータ

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。