【问题标题】:Get unitVector X Y Z values获取 unitVector X Y Z 值
【发布时间】:2021-08-12 02:36:55
【问题描述】:

我想使用一堆点在曲面上创建线,这些线必须以 5 度增量 (在 Catia 中使用 VBA)

步骤如下

步骤:1 - 首先我将使用 normal to surface 选项创建线条

步骤:2 - 然后我测量 normaltosurface 线和 xyPlane 之间的角度,如果角度接近 5deg 倍数 数字,例如如果角度为81.23度

Step:3 - 然后我应该使用 80degpoint-direction option 创建一条线,如果角度大于 82.5 且小于 87.5,那么我应该创建一条使用与 XYPlane

成 85 度的点方向选项的线

我需要获取 X Y Z 方向分量(catia 中的单位向量),它使点方向线和 xyplane 之间的角度为 5 度的倍数,例如 80、85、90、95、100 度

图像中的表面不是实际表面

x y z 分量是我需要创建的线的单位向量 我知道角度,对于那个角度,我需要使用 3D 空间公式中的矢量旋转找出 X Y Z 单位向量值

这是该公式的图像

这里我们知道 theta 的值,使用我们需要计算 X Y Z 单位向量值

我需要在 VBA 中这样做

【问题讨论】:

    标签: vba catia


    【解决方案1】:

    我不想听起来粗鲁,但您是在寻求代码方面的帮助,还是在分配任务以希望有人免费为您提供解决方案?

    无论如何要获得方向向量,您可以使用类似的东西

    Dim TempVariant As Variant
    Dim aOrigin(2) As Variant
    Dim aDirection(2) As Variant
    Dim NewLine As HybridShapeLineNormal
    
    Set NewLine = ShapeFactory.AddNewLineNormal(RefSurface, PointReference, 0, 1, VectorOrient)
    
    Set TempVariant = NewLine
    
    Call TempVariant.GetOrigin(aOrigin) 'get starting point x y z
    Call TempVariant.GetDirection(aDirection) 'get vectors x y z
    

    编辑

    如果你想处理 3D 旋转,你可以看看这个 excel。 我自己花了一段时间(大约一周),我在几年前的某个地方发现了这个 excel,这对我有帮助......因此我无法为此给予学分。

    Excel Euler angles

    【讨论】:

    • 我了解 DJakub,我没有给任何人分配任务,我已经完成了 50% 的 vba 编码,我唯一需要的部分是如何实现矢量旋转方程以获得特定角度的 X Y Z 值(Theta 值)
    • 我看到这是一个棘手的部分 :) 也许我编辑的答案可以帮助你。我无法为你发布我的代码。
    • 感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 2019-05-04
    • 1970-01-01
    • 2017-11-18
    相关资源
    最近更新 更多