'-------------------------------------------------------------------------------------------------- Sub SetNURBS() '-------------------------------------------------------------------------------------------------- Dim model As RFEM5.model Dim data As IModelData Dim nurbs(0) As RFEM5.NurbsSurface Dim i, j As Integer Dim nodes(0 To 8) As RFEM5.Node Dim ns(0 To 3) As NurbSpline Set model = GetObject(, "RFEM5.Model") model.GetApplication.LockLicense On Error GoTo e Set data = model.GetModelData nodes(0).No = 1 nodes(0).Type = Standard nodes(0).CS = Cartesian nodes(0).X = 0 nodes(0).Y = 0 nodes(0).Z = 0 nodes(1).No = 2 nodes(1).Type = Standard nodes(1).CS = Cartesian nodes(1).X = 0 nodes(1).Y = -2 nodes(1).Z = -1 nodes(2).No = 3 nodes(2).Type = Standard nodes(2).CS = Cartesian nodes(2).X = 0 nodes(2).Y = -4 nodes(2).Z = 0 nodes(3).No = 4 nodes(3).Type = Standard nodes(3).CS = Cartesian nodes(3).X = 6 nodes(3).Y = 0 nodes(3).Z = 0 nodes(4).No = 5 nodes(4).Type = Standard nodes(4).CS = Cartesian nodes(4).X = 6 nodes(4).Y = -2 nodes(4).Z = -1 nodes(5).No = 6 nodes(5).Type = Standard nodes(5).CS = Cartesian nodes(5).X = 6 nodes(5).Y = -4 nodes(5).Z = 0 nodes(6).No = 7 nodes(6).Type = Standard nodes(6).CS = Cartesian nodes(6).X = 3 nodes(6).Y = 0 nodes(6).Z = -1 nodes(7).No = 8 nodes(7).Type = Standard nodes(7).CS = Cartesian nodes(7).X = 3 nodes(7).Y = -2 nodes(7).Z = -2 nodes(8).No = 9 nodes(8).Type = Standard nodes(8).CS = Cartesian nodes(8).X = 3 nodes(8).Y = -4 nodes(8).Z = -1 Dim darr1(0 To 5) As Double darr1(0) = 0 darr1(1) = 0 darr1(2) = 0 darr1(3) = 1 darr1(4) = 1 darr1(5) = 1 Dim darr2(0 To 2) As Double darr2(0) = 1 darr2(1) = 1 darr2(2) = 1 ns(0).General.No = 1 ns(0).General.Type = NurbSplineType ns(0).General.NodeList = "1-3" ns(0).General.Comment = "line 1" ns(0).Knots = darr1 ns(0).Order = 3 ns(0).Weights = darr2 ns(1).General.No = 2 ns(1).General.Type = NurbSplineType ns(1).General.NodeList = "4-6" ns(1).General.Comment = "line 2" ns(1).Knots = darr1 ns(1).Order = 3 ns(1).Weights = darr2 ns(2).General.No = 3 ns(2).General.Type = NurbSplineType ns(2).General.NodeList = "1,7,4" ns(2).General.Comment = "line 3" ns(2).Knots = darr1 ns(2).Order = 3 ns(2).Weights = darr2 ns(3).General.No = 4 ns(3).General.Type = NurbSplineType ns(3).General.NodeList = "3,9,6" ns(3).General.Comment = "line 4" ns(3).Knots = darr1 ns(3).Order = 3 ns(3).Weights = darr2 nurbs(0).General.No = 1 nurbs(0).General.GeometryType = RFEM5.SurfaceGeometryType.NurbsSurfaceType nurbs(0).General.MaterialNo = 1 nurbs(0).General.BoundaryLineList = "1-4" nurbs(0).General.Thickness.Type = RFEM5.SurfaceThicknessType.ConstantThicknessType nurbs(0).General.Thickness.Constant = 0.2 nurbs(0).OrderX = 3 nurbs(0).OrderY = 3 ' X, Y ReDim nurbs(0).nodes(2, 2) nurbs(0).nodes(0, 0) = 1 nurbs(0).nodes(0, 1) = 2 nurbs(0).nodes(0, 2) = 3 nurbs(0).nodes(1, 0) = 7 nurbs(0).nodes(1, 1) = 8 nurbs(0).nodes(1, 2) = 9 nurbs(0).nodes(2, 0) = 4 nurbs(0).nodes(2, 1) = 5 nurbs(0).nodes(2, 2) = 6 ' X, Y ReDim nurbs(0).Weights(2, 2) For i = 0 To 2 For j = 0 To 2 nurbs(0).Weights(i, j) = 1 Next j Next i ReDim nurbs(0).KnotsX(5) nurbs(0).KnotsX(0) = 0 nurbs(0).KnotsX(1) = 0 nurbs(0).KnotsX(2) = 0 nurbs(0).KnotsX(3) = 1 nurbs(0).KnotsX(4) = 1 nurbs(0).KnotsX(5) = 1 ReDim nurbs(0).KnotsY(5) nurbs(0).KnotsY(0) = 0 nurbs(0).KnotsY(1) = 0 nurbs(0).KnotsY(2) = 0 nurbs(0).KnotsY(3) = 1 nurbs(0).KnotsY(4) = 1 nurbs(0).KnotsY(5) = 1 data.PrepareModification data.SetNodes nodes data.SetNurbSplines ns data.SetNurbsSurface nurbs(0) e: data.FinishModification If Err.Number <> 0 Then MsgBox Err.Description, , Err.Source Set data = Nothing model.GetApplication.UnlockLicense Set model = Nothing End Sub