gzxl 发表于 2025-8-12 22:57:09

不再计较-创建螺旋体

本帖最后由 gzxl 于 2025-8-14 03:17 编辑

// ==========创建螺旋体========
// 螺旋轴的起点      axisPoint
// 螺旋的起点      startPoint
// 螺旋轴的矢量      axisVector
// 螺旋的基础半径    dBaseRadius
// 螺旋的顶部半径    dTopRadius
// 螺旋的高度      dHeight
// 设置转弯高度      dTurnHeight
// 设置转数(转数)    dTurns
// 螺旋的约束属性    constrain
// 螺旋的扭曲(顺时针或逆时针) bTwist
AcDbObjectId CHelixUtil::Add(const AcGePoint3d& axisPoint, const AcGePoint3d& startPoint, const AcGeVector3d& axisVector, double dBaseRadius, double dTopRadius, double dHeight, double dTurnHeight, double dTurns /*,
    AcDbHelix::ConstrainType constrain, Adesk::Boolean bTwist */)
{
    AcDbObjectPointer<AcDbHelix> aHelix;
    aHelix.create();
    aHelix->setAxisPoint(axisPoint);
    aHelix->setAxisVector(axisVector);
    aHelix->setStartPoint(startPoint);
    aHelix->setBaseRadius(dBaseRadius);
    aHelix->setTopRadius(dTopRadius);
    aHelix->setTwist(Adesk::kTrue);

    // case
    aHelix->setConstrain(AcDbHelix::kTurnHeight);
    aHelix->setTurnHeight(dTurnHeight);
    aHelix->setHeight(dHeight);

    // case
    aHelix->setConstrain(AcDbHelix::kTurnHeight);
    aHelix->setTurnHeight(dTurnHeight);
    aHelix->setTurns(dTurns); // Height = TurnHeight * Turns

    // case
    aHelix->setConstrain(AcDbHelix::kTurns);
    aHelix->setTurns(dTurns);
    aHelix->setHeight(dHeight); // TurnHeight = Height / Turns

    aHelix->setConstrain(AcDbHelix::kTurns);
    aHelix->setTurns(dTurns);
    aHelix->setTurnHeight(dTurnHeight); // Height = TurnHeight * Turns

    // case
    aHelix->setConstrain(AcDbHelix::kHeight);
    aHelix->setHeight(dHeight);
    aHelix->setTurns(dTurns); // TurnHeight = Height / Turns

    // case
    aHelix->setConstrain(AcDbHelix::kHeight);
    aHelix->setHeight(dHeight);
    aHelix->setTurnHeight(dTurnHeight); // Turns = Height / TurnHeight

    aHelix->createHelix();

    AcDbObjectPointer<AcDbLine> xAxis;
    AcDbObjectPointer<AcDbLine> yAxis;
    AcDbObjectPointer<AcDbLine> zAxis;
    xAxis.create();
    yAxis.create();
    zAxis.create();
    AcCmColor color;
    color.setRGB(255, 0, 0);
    xAxis->setColor(color);
    color.setRGB(0, 255, 0);
    yAxis->setColor(color);
    color.setRGB(0, 0, 255);
    zAxis->setColor(color);
    xAxis->setStartPoint(AcGePoint3d::kOrigin + AcGeVector3d(0, 0, 10));
    yAxis->setStartPoint(AcGePoint3d::kOrigin + AcGeVector3d(0, 0, 10));
    zAxis->setStartPoint(AcGePoint3d::kOrigin + AcGeVector3d(0, 0, 10));
    xAxis->setEndPoint(xAxis->startPoint() + AcGeVector3d(20, 0, 0));
    yAxis->setEndPoint(yAxis->startPoint() + AcGeVector3d(0, 20, 0));
    zAxis->setEndPoint(zAxis->startPoint() + AcGeVector3d(0, 0, 100));

    AcDbObjectId helixId = CDwgDatabaseUtil::PostToModelSpace(aHelix);

    return helixId;
}

yonjay 发表于 2025-8-13 09:53:34

大佬遇见过,断线连接,求交时线段延长正确,不延迟时求的交点不对的情况吗?

biya 发表于 2025-8-14 11:16:03

对,干正事要紧,这才是大佬该有的格局,计较太多就不像大佬了

bskidtf 发表于 2025-8-14 11:20:54

biya 发表于 2025-8-14 11:16
对,干正事要紧,这才是大佬该有的格局,计较太多就不像大佬了

跟你学学?

biya 发表于 2025-8-14 11:44:49

bskidtf 发表于 2025-8-14 11:20
跟你学学?

:D-互相学习进步

bskidtf 发表于 2025-8-14 12:50:59

biya 发表于 2025-8-14 11:44
互相学习进步

跟你学习能当版主不?:victory:

gzxl 发表于 2025-8-14 14:08:45

本帖最后由 gzxl 于 2025-8-14 14:16 编辑

biya 发表于 2025-8-14 11:16
对,干正事要紧,这才是大佬该有的格局,计较太多就不像大佬了
干啥嘛,我本来就不是大佬,所以可以随便扯皮。
当大佬什么话都要掂量下才发表,没意思。

gzxl 发表于 2025-8-14 14:19:57

本帖最后由 gzxl 于 2025-8-14 14:23 编辑

biya 发表于 2025-8-14 11:16
对,干正事要紧,这才是大佬该有的格局,计较太多就不像大佬了
怎么才能默默在编程方面赚钱,比亚大佬收徒吗
从我编程开始二十几年,就20年加起来收入就没超过一万。
页: [1]
查看完整版本: 不再计较-创建螺旋体