- UID
- 127364
- 积分
- 19
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2004-4-19
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
***************************************************************************************
是中国铁道出版社最新出版的AutoCAD ARX库函数查询辞典(中文)的光盘版。
实质上就是ARX for 2000 帮助文档的第二篇ObjectARX Reference的完整翻译。
希望能对大家的开发有所帮助。这里仅仅上传arx的,我还有VBA属性和Vilsp函数,有谁想要仍然提供免费下载!
感觉不错就RE一下,让更多的人注意到他...
**************************************************************************************
因为文件太大,我只能在后面的回复中压缩成7个文件上传。大家都下载完毕后,只要解压缩第一个文件就可以自动全部解压成一个ObjectARX.chm的中文帮助文件。
-----------------------------------------------------------------------------------------------------------------------
大家可以先睹为快:
AcDb2dPolyline类
AcDb2dPolyline类表示AutoCAD中的2D多段线实体。
注意:控制应用程序(controlling application)应显示地删除非数据库驻留的复合实体的子实体。否则将导致小部分的内存泄漏。
注意:不要派生此类。试图派生此类将使应用程序终止AutoCAD。
继承自
AcDbCurve
包含文件
dbents.h
参见
AcDbObject, AcDbEntity, AcDb2dVertex
成员
AcDb2dPolyline建构器和析构器
AcDb2dPolyline::~AcDb2dPolyline 函数
~AcDb2dPolyline();
析构器。
AcDb2dPolyline::AcDb2dPolyline 函数
AcDb2dPolyline();
默认建构器。创建一个开放的多段线并关闭其线型生成,初始化起点和终点线宽为0.0,凸度为0.0,高度为0.0,类型为AcDb::k2dSimplePoly,法向矢量为 (0,0,1),且厚度为0.0。
--------------------------------------------------------------------------------
AcDb2dPolyline(
AcDb::Poly2dType type,
AcGePoint3dArray& vertices,
double elevation = 0,
Adesk::Boolean closed = Adesk::kFalse,
double defStartWidth = 0,
double defEndWidth = 0,
AcGeDoubleArray* bulges = NULL);
type
输入多段线类型
vertices
输入多段线顶点的数组
elevation
输入高度,默认为0
closed
输入布尔值,表示多段线是否闭合
defStartWidth
输入默认的起点宽度值
defEndWidth
输入默认的终点宽度值
bulges
输入表示所有顶点的凸度的一个双精度数组
bulges中的记录数与vertices中的记录数相等,即使bulges中存在为0的记录。
defStartWidth和defEndWidth值不能使用在从vertices数组中产生的任何顶点上。如果任何这些顶点需要起点和终点宽度,则必须显式地使用它们的成员函数进行设置。
可能值如下表:
值
说明
k2dSimplePoly
没有进行曲线/样条曲线拟合的标准多段线
k2dFitCurvePoly
进行曲线拟合的多段线。这对应DXF群组码70的第二位被设置。
k2dQuadSplinePoly
具有二次B样条路径的进行样条曲线拟合的多段线。这对应DXF群组码70的第三位被设置且DXF群组码75设为5。
k2dCubicSplinePoly
具有三次B样条路径的进行样条曲线拟合的多段线。这对应DXF群组码70的第三位被设置且DXF群组码75设为6。
AcDb2dPolyline编辑函数
AcDb2dPolyline::appendVertex 函数
Acad::ErrorStatus
appendVertex(
AcDbObjectId& objId,
AcDb2dVertex* pNewVert);
objId
输出增加的顶点的对象ID
pNewVert
输入指向要增加至多段线的顶点的指针
此函数将pNewVert指向的AcDb2dVertex对象增加至多段线的顶点列表中,将多段线设为顶点的拥有者,并将顶点增加至包含多段线的AcDbDatabase中(对于此函数,多段线必须为数据库驻留)。
增加的顶点必须在appendVertex()返回后由调用的应用程序显示地关闭。
如果成功返回Acad::eOk。如果多段线不是数据库驻留,则返回Acad::eNoDatabase。
--------------------------------------------------------------------------------
Acad::ErrorStatus
appendVertex(
AcDb2dVertex* pNewVert);
pNewVert
输入指向增加至多段线的顶点
此函数将pNewVert指向的AcDb2dVertex对象增加至多段线的顶点列表中,并将多段线设为顶点拥有者。另外,如果多段线驻留在AcDbDatabase中,则顶点将被增加至相同的数据库中。如果多段线不是数据库驻留,则在此多段线被增加至一个数据库中时,顶点也将被增加。
如果多段线是数据库驻留,则增加的顶点必须在appendVertex()返回后由调用的应用程序显示地关闭。如果多段线不是数据库驻留,则不需要关闭顶点,因为它还没有被增加至数据库中(对这样的顶点调用closd()将返回Acad::eNoDatabase)。
如果成功返回Acad::eOk。
AcDb2dPolyline::convertToPolyType 函数
Acad::ErrorStatus
convertToPolyType(
AcDb::Poly2dType newVal);
newVal
输入多段线要转换的类型
使用splineFit()和/或curveFit()方法转换多段线至newType指定的类型。
可能值如下表:
值
说明
k2dSimplePoly
没有进行曲线/样条曲线拟合的标准多段线
k2dFitCurvePoly
进行曲线拟合的多段线。这对应DXF群组码70的第二位被设置。
k2dQuadSplinePoly
具有二次B样条路径的进行样条曲线拟合的多段线。这对应DXF群组码70的第三位被设置且DXF群组码75设为5。
k2dCubicSplinePoly
具有三次B样条路径的进行样条曲线拟合的多段线。这对应DXF群组码70的第三位被设置且DXF群组码75设为6。
如果成功返回Acad::eOk,如果传递的数据非法则返回Acad::eInvalidInput。
AcDb2dPolyline::curveFit 函数
Acad::ErrorStatus
curveFit();
此函数创建一个光滑的曲线,包含连接每个顶点对的弧线对。此曲线穿过多段线的所有顶点并使用由每个顶点确定的切线方向。这个操作与PEDIT命令的"Fit"选项执行相同的操作。
返回Acad::eOk。
AcDb2dPolyline::insertVertexAt 函数
Acad::ErrorStatus
insertVertexAt(
AcDbObjectId& newVertId,
const AcDbObjectId& indexVertId,
AcDb2dVertex* pNewVertex);
newVertId
输出pNewVertex的对象ID
indexVertId
输入一个多段线中的顶点ID,新顶点将在其后插入
pNewVertex
输出指向被插入顶点的指针
此函数在对象为indexVertId的AcDb2dVertex对象后将pNewVertex指向的AcDb2dVertex对象插入至多段线的顶点列表中,将多段线设为顶点的拥有者,并将顶点增加至包含多段的数据库中(对于此函数,多段线必须为数据库驻留)。
要在多段线的开始处插入一个顶点,可将AcDbObjectId::kNull传递给indexVertId参数。
插入的顶点必须在insertVertexAt()返回后由调用的应用程序显示地关闭。
如果成功返回Acad::eOk。如果多段线不是数据库驻留,则返回Acad::eNoDatabase。
--------------------------------------------------------------------------------
Acad::ErrorStatus
insertVertexAt(
const AcDb2dVertex* pIndexVert,
AcDb2dVertex* pNewVertex);
pIndexVert
输入指向一个多段线中的顶点的指针,新顶点将在其后插入
pNewVertex
输入要被插入的顶点的指针
此函数在pIndexVert指向的AcDb2dVertex对象后将pNewVertex指向的AcDb2dVertex对象插入至多段线的顶点列表中,将多段线设为顶点的拥有者。另外,如果多段线驻留在AcDbDatabase中,则顶点将被增加至相同的数据库中。如果多段线不是数据库驻留,则在此多段线被增加至一个数据库中时,顶点也将被增加。
要在多段线的开始处插入一个顶点,将NULL值传递至pIndexVert参数。
如果多段线是数据库驻留,则增加的顶点必须在appendVertex()返回后由调用的应用程序显示地关闭。如果多段线不是数据库驻留,则不需要关闭顶点,因为它还没有被增加至数据库中(对这样的顶点调用close()将返回Acad::eNoDatabase)。
如果成功返回Acad::eOk。
AcDb2dPolyline::makeClosed 函数
Acad::ErrorStatus
makeClosed();
此函数将多段线设为闭合(在多段线的起点和中点间将绘出一条线段,使多段线成为一多边形)。
这将设置DXF群组码的第一位。
如果成功返回Acad::eOk。
AcDb2dPolyline::makeOpen 函数
Acad::ErrorStatus
makeOpen();
此函数将多段线设为开放。在多段线的起点和中点间没有一条线段,因此多段线不会形成一多边形。
这将清除DXF群组码的第一位。
如果成功返回Acad::eOk。
AcDb2dPolyline::setDefaultEndWidth 函数
Acad::ErrorStatus
setDefaultEndWidth(
double newVal);
newVal
输入默认的终点宽度值
将newVal设为多段线的默认的终点宽度值。这个值作为多段线中所有顶点的默认的终点宽度值。因此,对于DXFOUT,具有此宽度值的顶点将不被写出。对于DXFIN,没有设置DXF群组码41的值的顶点将使用多段线默认的终点宽度。
如果为非零,则默认的终点宽度值将作为DXF群组码41的值。
如果成功返回Acad::eOk,如果传递的数据非法,则返回Acad::eInvalidInput。
AcDb2dPolyline::setDefaultStartWidth 函数
Acad::ErrorStatus
setDefaultStartWidth(
double newVal);
newVal
输入默认的起点宽度值
将newVal设为多段线的默认的起点宽度值。这个值作为多段线中所有顶点的默认的起点宽度值。因此,对于DXFOUT,具有此宽度值的顶点将不被写出。对于DXFIN,没有设置DXF群组码40的值的顶点将使用多段线默认的起点宽度。
如果为非零,则默认的终点宽度值将作为DXF群组码40的值。
如果成功返回Acad::eOk,如果传递的数据非法,则返回Acad::eInvalidInput。
AcDb2dPolyline::setElevation 函数
Acad::ErrorStatus
setElevation(
double newVal);
newVal
输入高度值
将newVal设为多段线的高度。这个高度值是多段线的OCS中Z轴的高度(即,从WCS原点至包含多段线的平面的最小值)。
高度值作为DXF群组码10的Z坐标值(DXF文件中则为群组码30)
如果成功返回Acad::eOk,如果传递的数据非法,则返回Acad::eInvalidInput。
AcDb2dPolyline::setLinetypeGenerationOff 函数
Acad::ErrorStatus
setLinetypeGenerationOff();
此函数将关闭线型生成。这将导致多段线使用的线型将跳过每个顶点而不是连续地穿过顶点。
这将清除DXF群组码70的位8。
如果成功返回Acad::eOk,如果传递的数据非法,则返回Acad::eInvalidInput。
AcDb2dPolyline::setLinetypeGenerationOn 函数
Acad::ErrorStatus
setLinetypeGenerationOn();
此函数将打开线型生成。这将导致多段线使用的线型将连续地穿过顶点而不是跳过每个顶点。
这将设置DXF群组码70的位8。
如果成功返回Acad::eOk,如果传递的数据非法,则返回Acad::eInvalidInput。
AcDb2dPolyline::setNormal 函数
Acad::ErrorStatus
setNormal(
const AcGeVector3d& normal);
normal
输入包含多段线的平面的法向矢量
此函数将normal设为包含多段线的平面的法向矢量。normal必须为非零长度值。
normal值将用于DXF群组码210。
如果成功返回Acad::eOk,如果传递的数据非法,则返回Acad::eInvalidInput。
AcDb2dPolyline::setPolyType 函数
Acad::ErrorStatus
setPolyType(
AcDb::Poly2dType type);
AcDb2dPolyline::setThickness 函数
Acad::ErrorStatus
setThickness(
double thickness);
thickness
输入多段线的厚度
此函数将thickness设为多段线的厚度。厚度是多段线沿其法向矢量方向的尺寸。法向矢量方向也称为拉伸方向。
厚度值用于DXF群组码39。
AcDb2dPolyline::splineFit 函数
Acad::ErrorStatus
splineFit();
此函数删除所有已有的任何样条曲线或曲线拟合顶点,将所有剩余的顶点转换至样条曲线控制顶点,并生成一个新的样条曲线拟合顶点集。结果多段线为穿过新的顶点集的样条曲拟合。此函数与PEDIT命令的"Spline fit"选项执行相同的操作。
如果成功返回Acad::eOk。
--------------------------------------------------------------------------------
Acad::ErrorStatus
splineFit(
AcDb::Poly2dType splineType,
Adesk::Int16 splineSegs);
splineType
输入在多段线上进行splineFit操作所使用的splineType值
splineSegs
输入在多段线上进行splineFit 操作所使用的splineSegs值
此函数删除所有已有的任何样条曲线或曲线拟合顶点,将所有剩余的顶点转换至样条曲线控制顶点,并生成一个新的样条曲线拟合顶点集。结果多段线为穿过新的顶点集的样条曲拟合。此函数与PEDIT命令的"Spline fit"选项执行相同的操作,除了此函数使用splineType和splineSegs作为splineFit操作的控制参数,而不是使用splinetype和splinesegs数据库/系统变量
如果成功返回Acad::eOk。
AcDb2dPolyline::straighten 函数
Acad::ErrorStatus
straighten();
此函数从多段线中删除所有任何样条曲线或曲线拟合顶点,并将所有剩余的顶点设为简单顶点。此函数与PEDIT命令的"Decurve"选项执行相同的操作。
如果成功返回Acad::eOk。
AcDb2dPolyline杂项函数
AcDb2dPolyline::getClassID 函数
virtual Acad::ErrorStatus
getClassID(
CLSID* pClsid) const;
pClsid
未说明
Description to come。
AcDb2dPolyline::worldDraw 函数
virtual Adesk::Boolean
worldDraw(
AcGiWorldDraw* pWd);
pWd
未说明
Description to come。
AcDb2dPolyline查询函数
AcDb2dPolyline::defaultEndWidth 函数
double
defaultEndWidth() const;
返回多段线的默认的多段线的段终止宽度值。这个值用于多段线中的所有顶点的默认的终点宽度。因此,对于DXFOUT,具有此宽度值的顶点将不被写出。对于DXFIN,没有设置DXF群组码41的值的顶点将使用多段线默认的终点宽度。
如果为非零,则默认的终点宽度值将作为DXF群组码41的值。
AcDb2dPolyline::defaultStartWidth 函数
double
defaultStartWidth() const;
返回多段线的默认的多段线的段开始宽度值。这个值用于多段线中的所有顶点的默认的起点宽度。因此,对于DXFOUT,具有此宽度值的顶点将不被写出。对于DXFIN,没有设置DXF群组码40的值的顶点将使用多段线默认的起点宽度。
如果为非零,则默认的起点宽度值将作为DXF群组码40的值。
AcDb2dPolyline::elevation 函数
double
elevation() const;
返回多段线的高度。这个高度值是多段线的OCS中Z轴的高度(即,从WCS原点至包含多段线的平面的最小值)。
高度值作为DXF群组码10的Z坐标值(DXF文件中则为群组码30)
AcDb2dPolyline::isLinetypeGenerationOn 函数
Adesk::Boolean
isLinetypeGenerationOn() const;
如果多段线的线型生成打开,则返回Adesk::kTrue,否则返回Adesk::kFalse。当线型生成打开,则多段线使用的线型模式将连续生成且穿过所有顶点,而不是跳过每个顶点。
线型生成对应DXF群组码70中的位8(即,如果线型生成打开,则设置此位)。
AcDb2dPolyline::normal 函数
AcGeVector3d
normal() const;
此函数返回包含多段线的平面的法向矢量。这个法向矢量用WCS坐标表示。
法向矢量对应DXF群组码210。
AcDb2dPolyline::polyType 函数
AcDb::Poly2dType
polyType() const;
返回AcDb::Poly2dType,表示此多段线曲线/样条曲线拟合的类型。
AcDb::Poly2dType的可能值为:
值
说明
k2dSimplePoly
没有进行曲线/样条曲线拟合的标准多段线
k2dFitCurvePoly
进行曲线拟合的多段线。这对应DXF群组码70的第二位被设置。
k2dQuadSplinePoly
具有二次B样条路径的进行样条曲线拟合的多段线。这对应DXF群组码70的第三位被设置且DXF群组码75设为5。
k2dCubicSplinePoly
具有三次B样条路径的进行样条曲线拟合的多段线。这对应DXF群组码70的第三位被设置且DXF群组码75设为6。
AcDb2dPolyline::thickness 函数
double
thickness() const;
此函数返回多段线的厚度。厚度是多段线沿其法向矢量方向的尺寸。法向矢量方向也称为拉伸方向。
厚度值用于DXF群组码39。
AcDb2dPolyline::vertexPosition 函数
AcGePoint3d
vertexPosition(
const AcDb2dVertex& vert) const;
vert
输入顶点对象,用于取得WCS坐标
此函数返回vert的WCS坐标位置值。此函数使用顶点中的X和Y坐标,以多段线中的Z坐标,并应用多段线的OCS至WCS变换得到WCS位置值。此函数可对不属于多段线的顶点对象进行操作。返回的位置就象多段线拥有的顶点。
AcDb2dPolyline子实体访问函数
AcDb2dPolyline::openSequenceEnd 函数
Acad::ErrorStatus
openSequenceEnd(
AcDbSequenceEnd*& pSeqend,
AcDb::OpenMode openMode);
pSeqend
输出指向Seqend对象的指针
openMode
输出打开Seqend的模式
此函数提供对多段线的AcDbSequenceEnd实体的访问,以取得或设置xdata。此函数将试图在openMode指定的模式下打开多段线的Seqend。
openMode参数为以下之一:
AcDb::kForRead
AcDb::kForWrite
AcDb::kForNotify
如果打开操作成功,则pSeqend将设为AcDbSequenceEnd对象的地址并返回Adesk::eOk。
如果试图以AcDb::kForRead模式打开,Seqend已打开且读取了最大的次数(256次),则打开众所周知且此函数返回Acad::eAtMaxReaders。
如果Seqend当前以AcDb::kForNotify模式打开,则打开将失败且返回Acad::eWasNotifying。
如果Seqend当前包含在一个Undo操作中,则打开将失败且返回Acad::eWasOpenForUndo。
如果Seqend当前以AcDb::kForWrite模式打开,则打开将失败且返回Acad::eWasOpenForWrite.
注意:这个功能只与已有的,使用AcDbSequenceEnd对象进行xdata储存的AutoLISP应用程序兼容。
不建议在AcDbSequenceEnd对象上储存xdata。xdata可以贴附在AcDb3dPolyline对象或任何顶点上,或使用扩展词典。
AcDb2dPolyline::openVertex 函数
Acad::ErrorStatus
openVertex(
AcDb2dVertex*& pVertex,
AcDbObjectId vertId,
AcDb::OpenMode openMode,
bool openErasedOne = false);
pVertex
输出指向顶点对象的指针
vertId
输出要打开的顶点的对象ID
openMode
输入打开顶点的模式
openErasedOne
输入布尔值,表示是否打开已删除的顶点
此函数提供对多段线顶点的访问。此函数使用一个空的指针进行传递。要打开的顶点的对象ID为vertId。打开的模式为openMode。openErasedOne是一个布尔值,表示是否打开已删除的顶点.
openMode参数为以下之一:
AcDb::kForRead
AcDb::kForWrite
AcDb::kForNotify
如果打开操作成功,则pVertex将设为访问的顶点对象的地址并返回Adesk::eOk。
如果openErasedEntity为Adesk::kFalse,则打开一个已删除的顶点将失败且此函数将返回Acad::eWasErased。
如果试图以AcDb::kForRead模式打开,Seqend已打开且读取了最大的次数(256次),则打开众所周知且此函数返回Acad::eAtMaxReaders。
如果顶点当前以AcDb::kForNotify模式打开,则打开将失败且返回Acad::eWasNotifying。
如果顶点当前包含在一个Undo操作中,则打开将失败且返回Acad::eWasOpenForUndo。
如果顶点当前以AcDb::kForWrite模式打开,则打开将失败且返回Acad::eWasOpenForWrite.
如果objId为AcDbObjectId::kNull,则打开将失败且此函数返回Acad::eNullObjectId。
注意:如果需要,acdbOpenObject()和acdbOpenAcDbEntity()都可以直接在顶点上使用。
AcDb2dPolyline::vertexIterator 函数
AcDbObjectIterator *
vertexIterator() const;
此函数创建一个新的AcDbObjectIterator集,用于遍历多段线的顶点,并返回一个指象刚创建的遍历器对象的指针。调用此函数的程序程序负责使用C++的delete操作符释放遍历器对象。 |
|