CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

有效使用曲线和曲面赋值器的技巧

2022-12-31 13:47| 发布者: admin| 查看: 260| 评论: 0|来自: AutoCAD

要从曲线和曲面赋值器中获得最大效率,在同一曲线或曲面上执行许多求值时,应尽可能重用 、 和对象。例如,假设 andand 两者都在同一图面上执行计算和调用。然后,用于评估的对象应传递给:AcGePointOnCurve2dAcGePointOnCurve3dAcGePointOnSurfacefunc1func2srffunc1func2AcGePointOnSurfacefunc1func2

void func1 (const AcGeSurface& srf)
{
    AcGePointOnSurface	  pntOnSrf (srf);
    .
    .  // Evaluate some points and derivatives.
    .
    func2 ( pntOnSrf );
    .
    .
    .
}
void func2 (AcGePointOnSurface& pntOnSrf)
{
    // Evaluate some points and derivatives using pntOnSrf
    // passed in from func1.
}

通过传递到,赋值器可以继续使用用于所有评估的相同数据区域。如果不将对象传递给,则必须声明一个新对象,这将创建一个新的数据区域并重新计算计算的数据。以下代码正确执行;但是,它的效率低于以前的代码:pntOnSrffunc2func1func1AcGePointOnSurfacefunc2func2AcGePointOnSurfacefunc1

void func1 (const AcGeSurface& srf)
{
    AcGePointOnSurface	  pntOnSrf (srf);
    ...
    func2 (srf);
    ...
}
void func2 (const AcGeSurface& srf)
{
    AcGePointOnSurface	   pntOnSrf (srf);
    .
    .   // Evaluate some points and derivatives, using new 
        // pntOnSrf declared above.
    .
}

重用相同对象对于评估器密集型应用非常重要,例如曲面-曲面扇区或有限元网格生成器。在曲面-曲面交叉的情况下,顶级函数应声明两个对象(每个曲面一个),并通过所有较低级别的例程向下传递这些对象。通过这种方式,应用程序可以最大限度地利用在评估之间保存的数据,并从其表面评估器获得最大效率。AcGePointOnSurfaceAcGePointOnSurface

为了充分利用 、 和类,对于同一曲线或曲面,不应同时在作用域中出现大量这些对象。在大多数情况下,这些对象中只有一个应位于特定曲线或曲面的范围内。AcGePointOnCurve2dAcGePointOnCurve3dAcGePointOnSurface


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 14:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部