1098x
003427
2019-08-06

Pregunta

¿Cómo puedo crear NURBS con la interfaz COM?


Respuesta:
El objeto principal no es un objeto de línea, sino un objeto del tipo NurbSpline.
Aquí hay un ejemplo corto para crear un 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

Dim data As IModelData
Set data = model.GetModelData

' definir matriz de nodos
Atenuar nudos (0 a 2) como RFEM5.Node
    
nudos (0) .No = 1
nudos (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
nudos (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 = "línea 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

Autor

El Sr. Günthel proporciona soporte técnico para los clientes de Dlubal Software y se ocupa de sus solicitudes.