昨日ちょっと良い事を思いついたので、1年半ぶりぐらいにsirenに
再挑戦する事にしました。
以前利用させてもらった時は "v0.11" だったのですが、
最新版は "v0.13" です。
こちらで作ったsirenスプリクト実行用vbsを参照先パスだけ
変更したのですが、ダメでした。
Sirenテスト-polygon - C#ATIA
sirenの実行ファイル名やファイル位置等がv0.12 → v0.13で
大きく変更されたりしたようです。
ついでにD&Dで実行するように修正してみました。
'vbs SirenTestStart013.vbs 'D&DによるSirenスプリクト実行 Siren v0.13用 Language = "VBSCRIPT" '*** setting *** 'mruby.exe(Siren)ファイルのフルパス SirenPath="C:\siren\siren_0.13_mingw32\bin\mruby.exe" '****** Main() WScript.Quit 0 Sub Main() If wscript.Arguments.Count < 1 Then MsgBox "SirenスプリクトファイルをD&Dして下さい" Exit Sub End If Dim Args : Args = wscript.Arguments(0) Dim fso : set fso = createObject("Scripting.FileSystemObject") Dim ScriptPath : ScriptPath = Replace(fso.getParentFolderName(Args), "\", "/") Dim ScriptName : ScriptName = fso.GetFileName(Args) Dim WshShell : Set WshShell = CreateObject("WScript.Shell") Call WshShell.Run(SirenPath + " " + ScriptPath + "/" + ScriptName + " " + ScriptPath, 1, False) End Sub
D&Dは1ファイルだけにしています。(他にもイマイチな部分多数)
こちらのサンプルをお借りし、エクスポートフォーマットを変更したりし
テストしてみました。
mruby-siren/tree.rb at master · dyama/mruby-siren · GitHub
#!/usr/bin/siren # coding: utf-8 # # fractal tree # include Siren expFileName = ARGV[0] + "/tree" $start_len = 100.0 def tree(cur_pt, dir, len) nxt_pt = cur_pt + dir * len edges = [ line(cur_pt, nxt_pt) ] len *= 0.75 if len > $start_len / 10.0 edges.concat tree(nxt_pt, dir.rotate(Vec.ydir, 30.0.to_rad), len) edges.concat tree(nxt_pt, dir.rotate(Vec.ydir, -30.0.to_rad), len) end return edges end lines = tree([0, 0, 0].to_v, Vec.zdir, $start_len) comp = lines.to_comp Siren.save_iges comp, expFileName + ".igs" Siren.save_step comp, expFileName + ".stp" puts "done."
スプリクトの書式も少し変更されたような・・・。
Stepフォーマットのエクスポートがサポートされてるんですよ。
無事出来ました。
StepファイルがIgesファイルの10倍ぐらいのサイズなんですが、
こんなもんなんですかね?