(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;
}
}