SirenScriptをテストしやすいように、こんな感じの
VBScriptを作ってみました。
(本来、公式サイトで記載されているように環境変数でパスを
通しておけば良いのですが・・・。)
'vbs SirenTestStart.vbs Language = "VBSCRIPT" '*** setting *** 'siren.exeファイルのフルパス SirenPath="C:\siren\siren_0.11_mingw32\siren" 'sirenスプリクトファイル名 ScriptName="test.txt" '****** Execute() WScript.Quit 0 Sub Execute() Dim fso : set fso = createObject("Scripting.FileSystemObject") ScriptPath = fso.getParentFolderName(WScript.ScriptFullName) Dim WshShell : Set WshShell = CreateObject("WScript.Shell") Call WshShell.Run(SirenPath + " " + ScriptPath + "/" + ScriptName + " " + ScriptPath, 1, False) Set fso = Nothing Set WshShell = Nothing End Sub
何がやりたいか? と言うと、単にこのファイルをダブルクリックすれば、
同一フォルダ内の "test.txt" と言うファイルをSirenScriptとして
実行させますよ ってだけです。
で、実際に実行される "test.txt" を、SirenScriptとして
作成します。 こんな感じです。
#SirenScript expFileName = ARGV[0] + "/pol.igs" pts=[] pts<<([0 , 0 , 0]) pts<<([2 , 0 , 0]) pts<<([2 , 2 , 0]) pts<<([0 , 2 , 0]) pol=Build.polygon pts , true IGES.save [pol] , expFileName puts "OK"
2行目のエクスポートするファイルを変更して、3行目以降を書き換えて
お勉強しよう と思ってます。
(スプリクトファイルと同一フォルダ内に、Igesファイルが出来るようにしました。)
上記のコードは、配列に突っ込んだ4点を頂点とする、同一平面状の
多角形を作ってみました。(確認はCATIAです)
polygonは
pts=[] pts<<([0 , 0 , 0]) pts<<([2 , 0 , 0]) pts<<([2 , 2 , 0]) pts<<([0 , 2 , 0]) pts<<([0 , 0 , 0]) #←これ無くてもOK ・・・
と、最後に始点と同一座標の作らなくても、勝手に終点-始点間の
境界を作成して面を作成してくれるようです。
試しに、自己交差するいい加減な座標値を突っ込ませると
pts=[] pts.push([0 , 0 , 0]) pts.push([2 , 0 , 0]) pts.push([0 , 2 , 0]) pts.push([2 , 2 , 0]) pts.push([-5 , 0 , 0]) pts.push([-4 , -3 , 0]) pts.push([-2 , 0 , 0]) pts.push([-1 , 3 , 0]) ・・・
こんな感じの、出来たらヤバイやつも出来てしまうので
この辺は何らかのチェックする処理入れないと、危なさそうです。