天气与日历 切换到窄版

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

ObjectArx OsnapMode捕捉方式说明

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
enum OsnapMode { kOsModeEnd = 1,// 端点
kOsModeMid = 2,// 中点
kOsModeCen = 3,// 圆心
kOsModeNode = 4,// 节点
kOsModeQuad = 5,// 象限点
kOsModeIns = 7,// 插入点
kOsModePerp = 8,// 垂足
kOsModeTan = 9,
kOsModeNear = 10,// 最近点
kOsModeCentroid = 11, };

//设置捕捉点
Acad::ErrorStatus GeFloor::subGetOsnapPoints(AcDb::OsnapMode osnapMode, Adesk::GsMarker gsSelectionMark, const AcGePoint3d & pickPoint, const AcGePoint3d & lastPoint, const
    AcGeMatrix3d & viewXform, AcGePoint3dArray & snapPoints, AcDbIntArray & geomIds) const
{
    assertReadEnabled();
    for (size_t i = 0; i < BoundaryPoints.size()-1; i++)
    {
        auto p0 = BoundaryPoints[i];
        auto p1 = BoundaryPoints[i + 1];
        AcGeLine3d line(p0, p1);
        AcGePointOnCurve3d pt2;
        AcGePoint3d pt;
        switch (osnapMode)
        {
            case OsnapMode::kOsModeEnd:// 端点
                if (i == 0)
                    snapPoints.append(p0);
                snapPoints.append(p1);
                break;
            case OsnapMode::kOsModeMid:// 中点
                snapPoints.append(AcGePoint3d((p0.x + p1.x) / 2, (p0.y + p1.y) / 2, 0));
                break;
            case OsnapMode::kOsModePerp:// 垂足
                pt = line.closestPointTo(lastPoint);
                snapPoints.append(pt);
                break;
            case OsnapMode::kOsModeNear:// 最近点
                line.getClosestPointTo(pickPoint, pt2);
                snapPoints.append(pt2.point3d());
                break;
            default:
                break;
        }        
    }
    if (osnapMode == OsnapMode::kOsModeCentroid)// 几何中心
        snapPoints.append(AcGePoint3d((LeftTopPoint.x + RightBottomPoint.x) / 2, (LeftTopPoint.y + RightBottomPoint.y) / 2, this->GetTopZ()));
    return Acad::eOk;
}

 

 

 

 

ObjectArx OsnapMode捕捉方式说明
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-1 11:27 , Processed in 0.147453 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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