こちらの続きです。
siren v0.13 NURBS曲線・Bスプライン曲線 - C#ATIA
通過点を指定するスプラインを試したところ出来たので、
NURBS曲線・Bスプライン曲線はちょっと諦める事にしました。
次に線が "直線" "円弧" "曲線" を判断出来るようにしたい
所なんです。
こんなデータをIgesで吐き出し
それを試しに読み込んで調べてみました。
試していくうちに、直線・円弧・曲線・面・点となってしまい
変数名等がおかしいですが・・・
# include Siren fName = "/curves" $inPath = ARGV[0] + fName + ".igs" $exPath = ARGV[0] + fName + "-res.igs" $dpPath = ARGV[0] + fName + "_dump.txt" def wDump(i) if i.kind_of?(String) open($dpPath, "a") {|f| f.write "\r\n" + i} end end def Pause() print "押して!" str = gets end open($dpPath, "w") {|f| f.write "start"} ########### crvs = Siren.load_model $inPath p "total : " + crvs.subshapes.size.to_s shps = crvs.to_a begin shps.each{|shp| p "***" p "to_s : " + shp.to_s p "shapetype : " + shp.shapetype.to_s #p shp.shapetype.to_sname -ng #p shp.curvetype -ng #p shp.geomtype -ng #p shp.siren_curve_type -ng } rescue p $@ end ########### wDump("end") puts "done." Pause()
読み込んだIgesをバラシ、ループさせて1個づつ調べているのですが
やっと見つけたshapetypeで、線の種類を判断できると思ったの
ですが、直線・円弧・曲線 全て "6" が返って来ており
判断できません・・・。(恐らくSiren::Edgeが返って来ているのでしょう)
こちらにあったテストコードの最後の方に
mruby-siren/mruby-siren.rb at ae31b439725ec39b5c998239a547f0ca15ce6385 · dyama/mruby-siren · GitHub
".shapetype.to_sname" を見つけたのですが、エラーになります。
(コード的にv0.13のものでは無いので・・・)
他にも "curvetype" "geomtype" "siren_curve_type" 等、それっぽい
ものも試したのですが全てダメでした。
ん~諦めようかな・・・。