• IfcRationalBSplineCurveWithKnots


    带节有理B样条曲线是用控制点和基本函数描述的B样条曲线。它描述了除了在超类型ifcbsprinecurve中定义的控制点之外的权重。

    所有权重应为正,曲线由以下公式给出:

    where

    k+1 number of control points
    Pi control points
    wi weights
    d degree

    注:实体改编自ISO 10303-42中的有理曲线。

    IFC4中增加的新实体。

    Formal Propositions

    RuleDescription
    SameNumOfWeightsAndPoints There shall be the same number of weights as control points.
    WeightsGreaterZero All the weights shall have values greater than 0.0.
     

    #AttributeTypeCardinalityDescriptionC
    IfcRepresentationItem
      LayerAssignment IfcPresentationLayerAssignment
    @AssignedItems
    S[0:1] Assignment of the representation item to a single or multiple layer(s). The LayerAssignments can override a LayerAssignments of the IfcRepresentation it is used within the list of Items. X
      StyledByItem IfcStyledItem
    @Item
    S[0:1] Reference to the IfcStyledItem that provides presentation information to the representation, e.g. a curve style, including colour and thickness to a geometric curve. X
    IfcGeometricRepresentationItem
    IfcCurve
      Dim
    :=IfcCurveDim(SELF)
    IfcDimensionCount [1:1] The space dimensionality of this abstract class, defined differently for all subtypes, i.e. for IfcLine, IfcConic and IfcBoundedCurve. X
    IfcBoundedCurve
    IfcBSplineCurve
    1 Degree IfcInteger [1:1] The algebraic degree of the basis functions. X
    2 ControlPointsList IfcCartesianPoint L[2:?] The list of control points for the curve. X
    3 CurveForm IfcBSplineCurveForm [1:1] Used to identify particular types of curve; it is for information only. X
    4 ClosedCurve IfcLogical [1:1] Indication of whether the curve is closed; it is for information only. X
    5 SelfIntersect IfcLogical [1:1] Indication whether the curve self-intersects or not; it is for information only. X
      UpperIndexOnControlPoints
    :=(SIZEOF(ControlPointsList) - 1)
    IfcInteger [1:1] The upper index on the array of control points; the lower index is 0. This value is derived from the control points list. X
      ControlPoints
    :=IfcListToArray(ControlPointsList,0,UpperIndexOnControlPoints)
    IfcCartesianPoint A[0:UpperIndexOnControlPoints] The array of control points used to define the geometry of the curve. This is derived from the list of control points. X
    IfcBSplineCurveWithKnots
    6 KnotMultiplicities IfcInteger L[2:?] The multiplicities of the knots. This list defines the number of times each knot in the knots list is to be repeated in constructing the knot array. X
    7 Knots IfcParameterValue L[2:?] The list of distinct knots used to define the B-spline basis functions. X
    8 KnotSpec IfcKnotType [1:1] The description of the knot type. This is for information only. X
      UpperIndexOnKnots
    :=SIZEOF(Knots)
    IfcInteger [1:1] The upper index on the knot arrays; the lower index is 1. X
    IfcRationalBSplineCurveWithKnots
    9 WeightsData IfcReal L[2:?] The supplied values of the weights. X
      Weights
    :=IfcListToArray(WeightsData,0,SELFIfcBSplineCurve.UpperIndexOnControlPoints)
    IfcReal A[0:UpperIndexOnControlPoints] The array of weights associated with the control points. This is derived from the weights data. X
    EXPRESS Specification
    ENTITY IfcRationalBSplineCurveWithKnots
     SUBTYPE OF (IfcBSplineCurveWithKnots);
      WeightsData : LIST [2:?] OF IfcReal;
     DERIVE
      Weights : ARRAY [0:UpperIndexOnControlPoints] OF IfcReal := IfcListToArray(WeightsData,0,SELFIfcBSplineCurve.UpperIndexOnControlPoints);
     WHERE
      SameNumOfWeightsAndPoints : SIZEOF(WeightsData) = SIZEOF(SELFIfcBSplineCurve.ControlPointsList);
      WeightsGreaterZero : IfcCurveWeightsPositive(SELF);
    END_ENTITY;
  • 相关阅读:
    服务器上的vhost
    php解压缩文件方法汇总
    STM32新起航-TMP1
    实现
    如何协调项目与领导?
    《致加西亚的一封信》读后感
    致加西亚的信
    本周设计部分及作业
    对·作业提交项目作业模块需求的编写(赵刚,段超凡)
    (第三周)团队模式中对交响乐团模式的理解
  • 原文地址:https://www.cnblogs.com/herd/p/13217419.html
Copyright © 2020-2023  润新知