555x
001811
2019-08-06

[ZH] 常见问题 003427 | 如何创建带有 COM 接口的 NURBS?

问题:
如何创建带有 COM 接口的 NURBS?

答案:
主要对象不是线,而是 NurbSpline 类型的对象。
下面是一个创建 NURBS(非均匀有理 B 样条)的简短示例:

'-------------------------------- ——————————————————————————————— ——
子 nurbs_test()
'-------------------------------- ——————————————————————————————— ——

    Dim model As RFEM5.model
    Set model = GetObject(, "RFEM5.Model")
    模型.获取应用程序.锁定许可证

    出错时转到 e

    将数据调暗为 IModelData
    设置数据 = 模型.GetModelData

    ' 定义节点数组
    Dim节点(0到2)作为RFEM5.Node

    节点(0).No = 1
    节点(0)。 类型 = 标准
    节点(0).CS =笛卡尔
    节点(0).X = 1
    节点(0).Y = 1
    节点(0).Z = 0

    节点数(1).No = 2
    节点(1).Type = 标准
    节点(1).CS =笛卡尔
    节点(1).X = 2
    节点(1).Y = 1
    节点(1).Z = -1

    节点(2).No = 3
    节点(2).Type = 标准
    节点(2).CS =笛卡尔
    节点(2).RefObjectNo = 2
    节点(2).X = 0
    节点(2).Y = 1
    节点(2).Z = 0

    调暗 darr1(0 到 5)
    darr1(0) = 0
    darr1(1) = 0
    darr1(2) = 0
    darr1(3) = 1
    darr1(4) = 1
    darr1(5) = 1

    调暗 darr2(0 到 2) 作为双
    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 = "第 2 行"
    ns.Knots = darr1
    ns.阶 = 3
    ns.Weights = darr2

    数据.准备修改
    data.SetNodes 节点
    data.SetNurbSpline ns
e:  数据.完成修改
    如果 Err.Number 0 那么 MsgBox Err.Description, , Err.Source

    设置数据 = 无
    模型.获取应用程序.解锁许可证
    设置模型 = 无

末端接头