561x
001811
2019-08-06

[PL] FAQ 003427 | Jak mogę tworzyć NURBS za pomocą interfejsu COM?

Pytanie:
Jak mogę tworzyć NURBS za pomocą interfejsu COM?

Odpowiedź:
Głównym obiektem nie jest obiekt liniowy, lecz obiekt typu NurbSpline.
Oto krótki przykład tworzenia NURBS (Non-Uniform Rational B‑Spline):

' ------------------------------------------------ -------------------------------------------------- -
Sub nurbs_test ()
' ------------------------------------------------ -------------------------------------------------- -

    Dim model As RFEM5.model
    Set model = GetObject(, "RFEM5.Model")
    model.GetApplication.LockLicense

    On Error GoTo e

    Dane Dim As IModelData
    Ustaw dane = model.GetModelData

    ' zdefiniuj tablicę węzłów
    Dim węzły (0 do 2) As RFEM5.Node

    węzły (0) .Nie = 1
    węzły (0). Typ = Standardowy
    węzły (0) .CS = kartezjański
    węzły (0) .X = 1
    węzły (0) .Y = 1
    węzły (0) .Z = 0

    węzły (1) .Nie = 2
    węzły (1).Typ = Standardowy
    węzły (1) .CS = Kartezjański
    węzły (1) .X = 2
    węzły (1) .Y = 1
    węzły (1) .Z = -1

    węzły (2).Nie = 3
    węzły (2). Typ = Standardowy
    węzły (2). CS = Kartezjański
    węzły (2).RefObjectNo = 2
    węzły (2) .X = 0
    węzły (2) .Y = 1
    węzły (2) .Z = 0

    Dim darr1 (0 do 5) As Double
    darr1 (0) = 0
    darr1 (1) = 0
    darr1(2) = 0
    darr1(3) = 1
    darr1(4) = 1
    darr1(5) = 1

    Dim darr2 (0 do 2) As Double
    darr2 (0) = 1
    darr2 (1) = 1
    darr2(2) = 1

    Wymiary As NurbSpline
    ns.General.No = 2
    ns.General.Type = NurbSplineType
    ns.General.NodeList = "1,2,3"
    ns.General.Comment = "linia 2"
    ns.Węzły = darr1
    ns.Rząd = 3
    ns.Wagi = darr2

    data.PrepareModification
    data.SetNodes nodes
    data.SetNurbSpline ns
e:  data.FinishModification
    Jeżeli Err.Number 0 to MsgBox Err.Description, , Err.Source

    Ustaw dane = Nic
    model.GetApplication.UnlockLicense
    Ustaw model = Nic

End Sub