为什么 addCylinder 函数不尊重给定坐标?

计算科学 网格生成 gmsh
2021-12-29 15:21:52

我尝试生成 3 个非常简单的圆柱体,彼此连接到末端,但是圆柱体连接到空间中不存在的点,如图所示:

在此处输入图像描述

假设每个段的倾斜度为 45º、90º 和 60º。

代码:

#include <gmsh.h>

int main(int argc, char **argv)
{

    gmsh::initialize();
    gmsh::option::setNumber("General.Terminal", 1);
    gmsh::model::add("t1");

    double lc = 1e-2;

    gmsh::model::occ::addPoint(0, 0, 0, lc, 0);
    gmsh::model::occ::addPoint(0.35, 0.35, 0, lc, 1);
    gmsh::model::occ::addPoint(0.35, 1.35, 0, lc, 2);
    gmsh::model::occ::addPoint(0.85, 2.21, 0, lc, 3);


    gmsh::model::occ::addCylinder(0, 0, 0, 0.35, 0.35, 0,       0.05f, -1);
    gmsh::model::occ::addCylinder(0.35, 0.35, 0, 0.35, 1.35, 0, 0.05f, -1);
    gmsh::model::occ::addCylinder(0.35, 1.35, 0, 0.85, 2.21, 0, 0.05f, -1);

    gmsh::model::occ::synchronize();
    gmsh::model::mesh::generate(3);
    gmsh::write("t1.msh");
    gmsh::finalize();


    return 0;
}
1个回答

我不知道 gmsh,但我有一个想法你可以检查一下。

如何解释坐标?如果坐标是,那么第二个圆柱体不应该是直向上的,长度为 1 吗?x y z

0,35 0,35 0    0,35, 1,35 0

那么第三个气缸是正确的。

所有角度都是绝对的原点。只看图像,看起来您与第一个圆柱体的值相同。