zoukankan      html  css  js  c++  java
  • IfcVectorSum

    注:定义符合ISO/CD 10303-42:1992

    此函数返回输入参数之和(Arg1-Arg2)。函数返回两个输入向量的向量差作为向量。输入参数应具有相同的维数,但可以是方向或向量。如果两个输入参数都是向量,则它们必须用相同的单位表示,如果两个输入参数都是方向,则生成无单位结果。零和向量产生零大小的向量。如果两个输入参数都是方向,则结果是无单位的。

    注:函数改编自ISO 10303-42中定义的向量和。

    IFC2x中的新函数

    EXPRESS Specification

    FUNCTION IfcVectorSum
      (Arg1, Arg2 : IfcVectorOrDirection)
        : IfcVector;
    LOCAL
      Result : IfcVector;
      Res, Vec1, Vec2 : IfcDirection;
      Mag, Mag1, Mag2 : REAL;
      Ndim : INTEGER;
    END_LOCAL;
    
      IF ((NOT EXISTS (Arg1)) OR (NOT EXISTS (Arg2))) OR (Arg1.Dim <> Arg2.Dim) THEN
        RETURN (?) ;
      ELSE
        BEGIN
          IF 'IFCGEOMETRYRESOURCE.IFCVECTOR' IN TYPEOF(Arg1) THEN
            Mag1 := Arg1IfcVector.Magnitude;
            Vec1 := Arg1IfcVector.Orientation;
          ELSE
            Mag1 := 1.0;
            Vec1 := Arg1;
          END_IF;
          IF 'IFCGEOMETRYRESOURCE.IFCVECTOR' IN TYPEOF(Arg2) THEN
            Mag2 := Arg2IfcVector.Magnitude;
            Vec2 := Arg2IfcVector.Orientation;
          ELSE
            Mag2 := 1.0;
            Vec2 := Arg2;
          END_IF;
          Vec1 := IfcNormalise (Vec1);
          Vec2 := IfcNormalise (Vec2);
          Ndim := SIZEOF(Vec1.DirectionRatios);
          Mag  := 0.0;
          Res  := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0:Ndim]);
    
          REPEAT i := 1 TO Ndim;
            Res.DirectionRatios[i] := Mag1*Vec1.DirectionRatios[i] + Mag2*Vec2.DirectionRatios[i];
            Mag := Mag + (Res.DirectionRatios[i]*Res.DirectionRatios[i]);
          END_REPEAT;
    
          IF (Mag > 0.0 ) THEN
            Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector( Res, SQRT(Mag));
          ELSE
            Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector( Vec1, 0.0);
          END_IF;
        END;
      END_IF;
      RETURN (Result);
    END_FUNCTION;
    QQ 3087438119
  • 相关阅读:
    SQL函数介绍,SDE函数
    [API]Google的语音识别API,支持各种语言
    (C#)Windows Shell 外壳编程系列8 同后缀名不同图标?
    (C#)Windows Shell 外壳编程系列8 同后缀名不同图标?
    获取某路径下,最后被修改的文件
    centos7下关闭防火墙
    linux下常用命令
    unittest断言
    **目录找出最后一次修改的文件(html结果),发送报告到指定qq邮箱
    unittest,requests,assertEqual实战演练
  • 原文地址:https://www.cnblogs.com/herd/p/14459875.html
Copyright © 2011-2022 走看看