ObjectARX_多重引線MLeader

(1)getLeaderIndexes 函數:獲得引線的索引函數

getLeaderIndexes 函數的定義形式爲:3d

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

第一個參數:leaderIndexes:引線索引code

(2)getLeaderLineIndexes 函數:獲得引線的箭頭線的索引索引

getLeaderLineIndexes 函數的定義形式爲:get

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

第一個參數: leaderLineIndexes:引線的箭頭線的索引io

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

第一個參數:leaderIndex:引線索引ast

第二個參數:leaderLineIndexes:引線的箭頭線的索引class

(3)getFirstVertex :函數:獲取引線的箭頭線的箭頭起點poi

getFirstVertex 函數的定義形式爲:co

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;
        }
    }
相關文章
相關標籤/搜索