C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

siren v0.14 NURBS曲線

どちらかと言うと、こちらの続き。
siren v0.13 NURBS曲線・Bスプライン曲線 - C#ATIA

githubにUpされていた数値をそのままお借りして再挑戦しました。

#!siren
# coding: utf-8
include Siren

fName = "/nurbu3"
$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()
	str = gets
end

wDump("start")
###########

degree = 2
wDump(degree.to_s)

knots = [0.0, 1.0, 2.0]
wDump(knots.to_s)

mults = [3, 1, 3]
wDump(mults.to_s)

poles = [[10, 0, 7], [7, 0, 7], [3, 0, 8], [0, 0, 7]]
wDump(poles.to_s)

weights = [1.0, 1.2, 1.0, 1.0]
wDump(weights.to_s)

shp = Siren.bscurve degree, knots, mults, poles, weights, 0.1, 1.2
puts shp.class.name

Siren.save_model shp , $exPath
###########
wDump("end")
puts "done."
Pause()

ずっとエラーで、NURBS曲線が作れなかったのですがやっと出来ました。
Reference manualを見ながらやっていたのですが、

shp = Siren.bscurve [degree, knots, mults, poles, weights, 0.1, 1.2]

これ(角括弧付き)ではNGでした。 Rubyの括弧の扱いがわからない・・・。