(1)getLeaderIndexes 函数:得到引线的索引

getLeaderIndexes 函数的定义形式为:

Acad::ErrorStatus getLeaderIndexes( AcArray<int>& leaderIndexes) const;

第一个参数:leaderIndexes:引线索引

(2)getLeaderLineIndexes 函数:得到引线的箭头线的索引

getLeaderLineIndexes 函数的定义形式为:

Acad::ErrorStatus getLeaderLineIndexes( AcArray<int>& leaderLineIndexes) const;

第一个参数: leaderLineIndexes:引线的箭头线的索引

Acad::ErrorStatus getLeaderLineIndexes(int leaderIndex, AcArray<int>& leaderLineIndexes) const;

第一个参数:leaderIndex:引线索引

第二个参数:leaderLineIndexes:引线的箭头线的索引

(3)getFirstVertex :函数:获取引线的箭头线的箭头起点

getFirstVertex 函数的定义形式为:

Acad::ErrorStatus getFirstVertex( int leaderLineIndex,  AcGePoint3d& point) const;

第一个参数:leaderLineIndex:引线的箭头线索引

第二个参数:point:箭头起点

(4)getLastVertex :函数:获取引线的箭头线的箭头的尾点

getLastVertex 函数的定义形式为:

Acad::ErrorStatus getLastVertex( int leaderLineIndex,  AcGePoint3d& point) const;

第一个参数:leaderLineIndex:引线的箭头线索引

第二个参数:point:箭头尾点

(5)numVertices :函数:获取引线的箭头线上顶点数

numVertices 函数的定义形式为:

Acad::ErrorStatus numVertices(int leaderLineIndex, int& num) const;

第一个参数:leaderLineIndex:引线的箭头线索引

第二个参数:num:箭头线的顶点数

(6)getVertex :函数:获取引线的箭头线上顶点的位置

getVertex  函数的定义形式为:

Acad::ErrorStatus getVertex(int leaderLineIndex, int index,  AcGePoint3d& point) const;

第一个参数:leaderLineIndex:引线的箭头线索引

第二个参数: index:顶点的索引

第三个参数:point:顶点位置

(7)getTextLocation: 函数:获取多行文本的位置

getTextLocation 函数的定义形式为:

Acad::ErrorStatus getTextLocation(AcGePoint3d& location) const;

第一个参数: location:多行文本的位置

(8)enableDogleg : 函数:是否启用基线

enableDogleg   函数的定义形式为:

bool enableDogleg() const;

返回值:true:启用基线,flase:没有基线

(9)getDoglegDirection  函数:基线的方向

getDoglegDirection  函数的定义形式为:

Acad::ErrorStatus getDoglegDirection( int leaderIndex,  AcGeVector3d& vector) const;

第一个参数:leaderIndex:引线索引

第二个参数:vector:基线方向的单位向量

(10)doglegLength :函数:基线的长度

doglegLength 函数的定义形式为:

Acad::ErrorStatus doglegLength(int leaderIndex,  double& doglegLength) const;

第一个参数:leaderIndex:引线索引

第二个参数:doglegLength:基线长度

具体用法如例:

    OdDbMLeader* pMLeader ;
    OdGePoint3d textPoint;
    pMLeader->getTextLocation(textPoint);

    OdIntArray leaderIndexes;
    pMLeader->getLeaderIndexes(leaderIndexes);
    for (int nLeaderIndex = 0; nLeaderIndex < leaderIndexes.size(); ++nLeaderIndex)
    {
        OdGePoint3d firstPoint,lastPoint;
        OdIntArray leaderLineIndexes;
        pMLeader->getLeaderLineIndexes(nLeaderIndex, leaderLineIndexes);
        for (int nLeaderLineIndex = 0; nLeaderLineIndex < (int)leaderLineIndexes.size(); ++nLeaderLineIndex)
        {
            pMLeader->getFirstVertex(nLeaderLineIndex,firstPoint);
            pMLeader->getLastVertex(nLeaderLineIndex,lastPoint);

            int num = 0;
            OdGePoint3d ptTemp;
            pMLeader->numVertices(nLeaderLineIndex,num);
            for (int nVertex = 1; nVertex < num - 1; ++nVertex)
            {
                pMLeader->getVertex(nLeaderLineIndex, num, ptTemp);
            }
        }

        //基线
        if (pMLeader->enableDogleg())
        {
            OdGeVector3d vecDogleg;
            pMLeader->getDoglegDirection(nLeaderIndex,vecDogleg);
            double dDogleg = pMLeader->doglegLength();
            OdGePoint3d doglegPoint = lastPoint + vecDogleg * dDogleg;
            OdGePoint3d doglegMidPoint = (lastPoint + doglegPoint.asVector())/2.0;
        }
    }
03-06 22:58