MSCE C++ CurveVector::Create 的问题

老师好:

        我这里有一个问题,就是当我们使用profile 和导向线 ,配合SolidUtil::Create::BodyFromLoft的时候,我们都需要创建 截面的CurveVectorPtr 和 导向线的 CurveVectorPtr,然后调用  SolidUtil::Create::BodyFromLoft

那么我想问的是 :

1、在创建截面 的CurveVectorPtr  的时候,我们采用的是CurveVector::Create(CurveVector::BOUNDARY_TYPE_Outer); 而创建导向线的时候用的是 CurveVector::Create(CurveVector::BOUNDARY_TYPE_Open); 如果只是根据  BOUNDARY_TYPE_Outer就表示一个封闭的面,因而构成的就是体(它可以创建一个闭合轮廓,从而进一步生成实体而不是图纸),
BOUNDARY_TYPE_Open,生成的就是一个面。这个解释去理解的话,好像还不是很清楚,所以老师 能不能 再解释一下,因为在导向线的创建中,我也测试了 BOUNDARY_TYPE_Outer,没有发现变化。

2、SolidUtil::Create::BodyFromLoft (solid, profileVec, 3, NULL, 0, *pActiveModel, false, true),第四个参数 是代表导向线的 CurveVector,那么什么情况下可以在调用该函数的时候,将其设置为空?如果设置为空那么导向线是否可以不用了呢?类似于 SolidUtil::Create::BodyFromLoft(solid, profileVec, 2, &guideVec, 1, *pActiveModel, false, true),这个调用中的 导向线 是不是也可以为空呢?那么如果是的话 ,导向线的作用不就没有了吗?

Parents
  • CurveVector是ICurvePrimitive的一个集合,ICurvePrimitive顾名思义就是各种基本曲线的代表,例如直线、线串、弧、B样条曲线等等。如果CurveVector里边的ICurvePrimitive刚好闭合的话,那么CurveVector::Create(CurveVector::BOUNDARY_TYPE_Outer); 创建的就是一个Shape,CurveVector::Create(CurveVector::BOUNDARY_TYPE_Open); 就是个复杂的链,不是一个面,没有面积,只不过这个链的头尾刚好相连了。

    Loft的话,其实您可以用一下Mstn里边的Loft工具,GuideLine的话必须满足高数上的连续性,即这条曲线上的每一点都存在导数,且经过轮廓的对应点,如下所示,1,2是Guide Line,3,4,5是Profile,1和2是两条B样条曲线,具有连续性,且经过3,4,5轮廓的对应点,Loft后的结果就是图中您看到的曲面。

  • 感谢老师 耐心  细致的 回复!!!

    但是 对 第2 个问题, 我还是没有 太明白!!! 能不能再说明一下!!!

    Bentley 二次开发小白一枚

  • 图中1,2就是函数中的guideVec,3,4,5就是函数中的profileVec参数,这个函数对应下图所示的工具,guideVec是否需要是根据具体需求而定的,guideVec限定了loft后surface的两条边,但是这条曲线不是随便一条曲线就可以,要满足我上边说的连续性以及经过每个profileVec的对应点,在Mstn中多几种不同情况的profileVec和guideVec,用loft工具试一下就明白了。

Reply
  • 图中1,2就是函数中的guideVec,3,4,5就是函数中的profileVec参数,这个函数对应下图所示的工具,guideVec是否需要是根据具体需求而定的,guideVec限定了loft后surface的两条边,但是这条曲线不是随便一条曲线就可以,要满足我上边说的连续性以及经过每个profileVec的对应点,在Mstn中多几种不同情况的profileVec和guideVec,用loft工具试一下就明白了。

Children
No Data