天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 133|回复: 0

修改多段线的凸度

[复制链接]
  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    115

    主题

    11

    回帖

    1393

    积分

    管理员

    积分
    1393
    QQ
    发表于 2024-5-4 18:44:07 | 显示全部楼层 |阅读模式
    1. static void zffObjectARX采用MyCommand5(void)
    2. {
    3. ads采用point pick;
    4. ads采用name name;
    5. if (acedEntSel(NULL,name,pick)!=RTNORM)
    6. {
    7. return;
    8. }
    9. AcGePoint3d ptClosest;
    10. AcDbObjectId polyId;
    11. double param;
    12. AcDbPolyline* pPoly=NULL;
    13. acdbGetObjectId(polyId,name);
    14. acdbOpenObject(pPoly,polyId,AcDb::kForWrite);
    15. pPoly->getClosestPointTo(asPnt3d(pick),ptClosest);
    16. pPoly->getParamAtPoint(ptClosest,param);
    17. int vernum=int(param);
    18. int vernumEnd=int(param+1);
    19. AcGePoint3d ptS,ptE;
    20. pPoly->getPointAt(vernum,ptS);
    21. pPoly->getPointAt(vernumEnd,ptE);
    22. pPoly->close();
    23. AcGePoint2d ptCur;
    24. int track=1,type;
    25. struct resbuf result;
    26. while (track>0)
    27. {
    28. acedGrRead(track,&type,&result);
    29. ptCur.x=result.resval.rpoint[X];
    30. ptCur.y=result.resval.rpoint[Y];
    31. AcGeCircArc2d arc(CPointUtil::ToPoint2d(ptS),ptCur,CPointUtil::ToPoint2d(ptE));
    32. AcGePoint2d ptCenter=arc.center();
    33. AcGeVector2d verS(ptS.x-ptCenter.x,ptS.y-ptCenter.y);
    34. double angleS=verS.angle();
    35. AcGeVector2d verE(ptE.x-ptCenter.x,ptE.y-ptCenter.y);
    36. double angleE=verE.angle();
    37. double bulge=(angleE-angleS)/pi();
    38. acdbOpenObject(pPoly,polyId,AcDb::kForWrite);
    39. pPoly->setBulgeAt(vernum,bulge);
    40. pPoly->close();
    41. if (type==3)
    42. {
    43. track=0;
    44. }
    45. }
    46. }
    复制代码

     

     

     

     

    修改多段线的凸度
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-11-5 12:25 , Processed in 0.176583 second(s), 28 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表