Archive for the 'Shade' Category

2009/02/21 Shade 10でsceneをDXF形式で書き出す

Shade 10でドキュメント(scene)をDXF形式で指定パスに書き出すAppleScriptです。

scene 1に対してのtellブロック内で「save DXF」を実行しても、「save DXF scene 1 in aPOSIXpath」を実行しても正常に実行されます。

確認のため、書き出したDXFファイルを現在オープン中のドキュメント内にインポートしてみましたが、tellブロック内で実行したものでも、1行にまとめて記述・実行したものでも同様の結果が得られました。

スクリプト名:Shade 10でsceneをDXF形式で書き出す
set fileName to choose file name
set aPOSIXpath to POSIX path of fileName

tell application "Shade 10"
  tell scene 1
    save DXF in aPOSIXpath
  end tell
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

2009/02/21 Shade 10で円(disk)を作成する

Shade 10でscene上に座標{0, 0, 0}から同心円状に円(disk)を描画します。

Shadeのオンライン・フォーラムで加藤俊明さんが書かれていたものを……そのまま掲載するのは芸がないので、ちょっと応用してループで同心円を描かせてみた次第です。

shade_disk.jpg

スクリプト名:Shade 10で円(disk)を作成する
tell application "Shade 10"
  tell scene 1
    repeat with i from 100 to 1000 by 100
      create disk at {0, 0, 0} r i axis 1
    end repeat
  end tell
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

2009/02/21 Shade 10で新規ドキュメントを作成

Shade 10で新規ドキュメントを作成するAppleScriptです。

一般的に、アプリケーションで新規ドキュメントを作成する場合には、「create new document」とか「make new document」といった記述になりますが……Shadeではこれが「new scene」という固有の命令で行うことになります。

一般的なAppleScriptのノウハウでShadeを攻略しようとしても、定石がまったく役立たずに歯が立たない感じですし、ShadeでAppleScriptによるコントロールをマスターした人がいたとしても、Shadeのなまりが強すぎて他のアプリケーションを操作することは困難でしょう。

「Shade弁」とでもいうべき強烈な方言は勘弁していただきたいものです。

スクリプト名:Shade 10で新規ドキュメントを作成
tell application "Shade 10"
  new scene
end tell
> 「名称未設定」ドキュメントが作成される

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

2009/02/21 Shade 10でドキュメントを保存する

Shade 10でオープン中のshdファイルを指定したパスに保存するAppleScriptです。

ただし、ShadeではPOSIX pathでパスを指定する必要があるうえに、空白文字列を含むパスであることに備えて、AppleScriptで常識的に用いられる「quoted form of」の指定を行うと逆に異常動作を行ってしまいます。

miss_shade.jpg

なんと、HDDのrootディレクトリ上にフルパスの文字列をquote文字列を含んだまま保存してしまうという異常動作であり、Shadeの開発者がquoted form ofが使用されることを知らずにコーディングしていることが伺われます。

同様の異常動作はAdobeのAcrobat Distillerでも見ることができ、このようなアプリケーションの存在については注意を払う必要があります。バグといってよいでしょう。

そのうえ、scene 1に対してsave命令を実行してもファイルへの保存は行われません。「save scene」という1語を、アプリケーションに対して直接実行する必要があります。

スクリプト名:Shade 10でドキュメントを保存する
set aFile to choose file name
set aPosixFile to POSIX path of aFile
set aPosixFile to quoted form of POSIX path of aFile –quoted formを付けるとrootフォルダ上にフルパスを名称としたファイルを作ってしまう

tell application Shade 10
  save scene aPosixFile
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

2009/02/18 Shade 10でレンダリングを行う

Shade 10で現在レンダリング中かどうかを調べ、レンダリング中でなければレンダリングを行います。

スクリプト名:Shade 10でレンダリングを行う
tell application "Shade 10"
  activate
  
set curRender to still rendering
  
if curRender = false then
    start rendering
  end if
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

2009/02/18 Shade 10のプロパティを取得(クラッシュする可能性高し)

Shade 10 basicを購入したのでAppleScriptでコントロールしてみようと試みたのですが……ちょっとプロパティを調べてみようとしただけで、必ずクラッシュします。再現性はほぼ100%。

Shadeの用語辞書の内容を調べてみると、一般的なアプリケーションとはかけ離れた内容であり、とても手に負えない印象を受けます。自分がやりたい処理を記述できるかどうか、なかなか見えてきません。

どうも、この辞書内容からするとShadeはRecordingに対応しているようで……そのようなアプリケーションでは、素直なスクリプティングが行えないので、最近ではあまりRecordingは推奨されていません。

shade1.jpg

スクリプト名:Shade 10のプロパティを取得(クラッシュする可能性高し)
tell application Shade 10
  properties
end tell
> “Shade 10 でエラーが起きました:接続が無効です。”
100%クラッシュする

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に