印刷例の紹介 (7/8: 直方体なみなみ側面①)
k1 = k2 = KnotVector(-12:12)
k3 = UniformKnotVector(0:12)
P1 = BSplineSpace{3}(k1)
P2 = BSplineSpace{3}(k2)
P3 = BSplineSpace{3}(k3)
a = [SVector(x,y,z) for x in -10:10, y in -10:10, z in 0:8] / 300
w = fill(1, dim(P1), dim(P2), dim(P3))
M = RationalBSplineManifold(a,w,P1,P2,P3)
M = BasicBSpline.clamp(M)
a = controlpoints(M)
a[begin, begin+1:end-1, begin+1:end-1] .-= [SVector(ifelse(iseven(i+j), 0.0, 0.005), 0.0, 0.0) for i in 1:19, j in 1:7]
a[end, begin+1:end-1, begin+1:end-1] .+= [SVector(ifelse(iseven(i+j), 0.0, 0.005), 0.0, 0.0) for i in 1:19, j in 1:7]
a[begin+1:end-1, begin, begin+1:end-1] .-= [SVector(0.0, ifelse(iseven(i+j), 0.0, 0.005), 0.0) for i in 1:19, j in 1:7]
a[begin+1:end-1, end, begin+1:end-1] .+= [SVector(0.0, ifelse(iseven(i+j), 0.0, 0.005), 0.0) for i in 1:19, j in 1:7]
M = RationalBSplineManifold(a,w,bsplinespaces(M))
plotlyjs()
plot(M)
script = generate_step_script(M)
write("naminami.step", script)