519x
001811
2019-08-06

[ES] FAQ 003427 | ¿Cómo puedo crear NURBS usando la interfaz COM?

Pregunta:
¿Cómo puedo crear NURBS usando la interfaz COM?

Respuesta:
El objeto principal no es un objeto de línea, sino un objeto del tipo NurbSpline.
A continuación, se muestra un breve ejemplo para la creación de un NURBS (Non-Uniform Rational B-Spline):

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

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

    On Error GoTo e

    Dim data As IModelData
    Set data = model.GetModelData

    'definir matriz de nodos
    Atenuar nodos (0 a 2) como RFEM5.Node

    nudos (0) .No = 1
    nodos (0) .Tipo = Estándar
    nudos (0) .CS = cartesiano
    nudos (0) .X = 1
    nudos (0) .Y = 1
    nudos (0) .Z = 0

    nudos (1) .No = 2
    nudos (1) .Tipo = Estándar
    nudos (1) .CS = cartesiano
    nudos (1) .X = 2
    nudos (1) .Y = 1
    nudos (1) .Z = -1

    nudos (2) .No = 3
    nudos (2) .Tipo = Estándar
    nudos (2) .CS = cartesiano
    nodos (2) .RefObjectNo = 2
    nudos (2) .X = 0
    nudos (2) .Y = 1
    nudos (2) .Z = 0

    Atenuar darr1 (0 a 5) como doble
    darr1 (0) = 0
    darr1 (1) = 0
    darr1 (2) = 0
    darr1 (3) = 1
    darr1 (4) = 1
    darr1 (5) = 1

    Atenuar darr2 (0 a 2) como doble
    darr2 (0) = 1
    darr2 (1) = 1
    darr2 (2) = 1

    Dim ns As NurbSpline
    ns.General.No = 2
    ns.General.Type = NurbSplineType
    ns.General.NodeList = "1,2,3"
    ns.General.Comment = "line 2"
    ns.Knots = darr1
    ns.Order = 3
    ns.Weights = darr2

    data.PrepareModification
    data.SetNodes nodes
    data.SetNurbSpline ns
e:  data.FinishModification
    Si Err.Number 0 Entonces MsgBox Err.Description`` Err.Source

    Set data = Nothing
    model.GetApplication.UnlockLicense
    Set model = Nothing

End Sub