ObjectARX学习笔记2acdb类杂记.docx
- 文档编号:29786901
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:28
- 大小:23.40KB
ObjectARX学习笔记2acdb类杂记.docx
《ObjectARX学习笔记2acdb类杂记.docx》由会员分享,可在线阅读,更多相关《ObjectARX学习笔记2acdb类杂记.docx(28页珍藏版)》请在冰豆网上搜索。
ObjectARX学习笔记2acdb类杂记
acdb类杂记
从今天起我陆续贴给大家:
AcApLayoutManager类
处理和访问AcDbLayout对象的应用程序特定程序的接口类。
这个类也控制着与GUI属性相关的Layout(布局)。
继承自
AcDbLayoutManager
包含文件
acaplmgr.h
参见
AcDbLayout,AcDbLayoutManager
成员
AcApLayoutManagerApplicationMethods(应用程序方法)
AcApLayoutManager:
:
CreateViewports函数
virtualAdesk:
:
Boolean
createViewports()=0;
当在图纸空间布局里能默认建立一个视口时,这个函数返回kTrue,否则返回kFalse。
AcApLayoutManager:
:
findActiveTab函数
virtualconstchar*
findActiveTab()=0;
这个函数返回一个指向当前选定布局标签的名称的指针常量,这个名称就是当前AcDbLayout对象的名称。
AcApLayoutManager:
:
getClipBoundaryElaboration函数
virtualAcad:
:
ErrorStatus
getClipBoundaryElaboration(
AcDbObjectIdclipId,
AcGePoint2dArray*&clipBoundary)=0;
clipId
传递非矩形裁剪实体视口的AcDbObjectId
clipBoundary
返回指向裁剪实体视口的AcGePoint2dArray边界点的指针
这个函数取得一个非矩形裁剪实体视口的AcDbObjectId并在一个AcGePoint2dArray对象数组中返回屏幕上的边界点。
边界点在图纸空间图形坐标中。
如果在显示列表中找到一个边界且成功返回,则返回值为eOK,调用者必须在使用后删除已返回的clipBoundary。
如果找不到实体的边界,则返回错误状态。
如果应用程序打开的要求有边界的AcDbViewport,则clipId参数将传递给视口的AcDbViewport:
:
nonRectClipEntityId()方法,这个方法将返回视口裁剪实体的AcDbObjectId。
AcApLayoutManager:
:
getNextNewLayoutName函数
virtualchar*
getNextNewLayoutName(
AcDbDatabase*useDb=NULL)=0;
useDb
输入指向AcDbDatabase的指针,可选的;默认使用当前数据库
这个函数扫描名称与"Layout#"类型相匹配的已有的布局(包含已删除的布局),其中“#”是一个从1开始的数。
这个函数从“Layout1”开始,试图找出未在这个格式中使用的布局类型,并返回该布局类型。
AcApLayoutManager:
:
pageSetup函数
virtualint
pageSetup(
AcDbObjectIdlayoutBTRId=AcDbObjectId:
:
kNull,
void*pParent=NULL,
Adesk:
:
BooleanisPageSetupDlg=TRUE)=0;
layoutBTRId
输入AcDbLayout块表记录用于初始化对话框的AcDbObjectId,可选的;默认值AcDbObjectId:
:
kNull表示使用活动的AcDbLayout对象。
pParent
输入指向父窗口调用对话框的指针,可选的;默认值NULL表示使用AutoCAD的主窗口。
isPageSetupDlg
输入布尔值,在页面设置和绘图对话框之间进行切换。
在默认情况下,这个函数使用当前的AcDbLayout对象加载“页面设置”对话框。
另外可选的,这个函数使用一个不同的AcDbLayout对象、一个指向父窗口的指针以及表示是否使用共享的绘图对话框代替“页面设置”对话框的布尔值作为参数进行初始化。
如果“页面设置”对话框被取消,则这个函数返回0;如果“页面设置”对话框成功,则这个函数返回1;在任何错误的情况下,返回-1。
AcApLayoutManager:
:
pointInViewports函数
virtualAcad:
:
ErrorStatus
pointInViewports(
constAcGePoint3d&pickPt,
AcDbObjectIdArray&viewports)=0;
pickPt
传递在世界坐标系下图纸空间的选择点。
viewports
返回指向要返回的AcDbViewport实体的Ids的AcDbObjectIdArray的指针。
这个函数传递在图纸空间的选择点,并返回一个表,表是以覆盖每个选取点的AcDbViewport,包括非矩形视口的AcDbObjectId实体的AcDbObjectIdArray的形式返回。
如果每个视口在该点重迭,那么将返回所有的视口,但是如果用户双击该点,则将选中在阵列中的第一个AcDbViewport的ID的视口。
图纸空间视口将不会包含在阵列中。
如果没有视口含有该点,则返回ePointNotOnEntity,且不会建立AcDbObjectIdArray。
如果至少有一个视口包含该点,则返回eOK。
用户必须在完成后删除返回的AcDbObjectIdArray。
这个函数使应用程序可简易地判断一个给定点是否在非矩形(裁剪的)视口内。
AcApLayoutManager:
:
setCreateViewports函数
virtualvoid
setCreateViewports(
Adesk:
:
BooleancreateViewports)=0;
createViewports
输入的布尔值;表示视口是否默认地在初始入口创建至图纸空间中
这个函数确定一个视口是否默认地在初始入口创建至图纸空间布局中。
AcApLayoutManager:
:
setDefaultPlotConfig函数
virtualvoid
setDefaultPlotConfig(
AcDbObjectIdlayoutBTRId)=0;
layoutBTRId
输入用于初始化的AcDbLayout对象的AcDbobjectId。
这个函数用适当的默认值初始化给定的AcDbLayout对象。
AcApLayoutManager:
:
setShowPageSetup函数
virtualvoid
setShowPageSetup(
Adesk:
:
BooleanshowPageSetupDlg)=0;
showPageSetupDlg
输入布尔值,“页面设置”对话框是否在默认的入口加载至图纸空间布局标签中。
这个函数设置“页面设置”对话框是否在默认的入口加载至图纸空间布局标签中。
AcApLayoutManager:
:
setShowPaperBackground函数
virtualvoid
setShowPaperBackground(
Adesk:
:
BooleanshowPaperBackground)=0;
showPaperBackground
输入布尔值,表示是否显示图纸背景。
这个函数设置是否显示当前或活动的AcDbLayout对象的图纸背景。
kTrue值设定显示图纸背景;kFalse值设定不显示图纸背景。
AcApLayoutManager:
:
setShowPaperMargins函数
virtualvoid
setShowPaperMargins(
Adesk:
:
BooleanshowPaperMargins)=0;
showPaperMargins
输入的布尔值;表示是否显示图纸边缘。
这个函数设置是否显示当前或活动的AcDbLayout对象的可打印区域或图纸边缘(虚线围成的矩形)。
kTrue值表示显示图纸边缘;kFalse值表示不显示图纸边缘。
AcApLayoutManager:
:
setShowPrintBorder函数
virtualvoid
setShowPrintBorder(
Adesk:
:
BooleanshowPrintBorder)=0;
showPrintBorder
输入的布尔值;表示是否显示打印边界线。
这个函数设置是否显示当前或活动的AcDbLayout对象的打印边界线(图纸边界线)。
kTrue值表示显示打印边界线;kFalse值表示不显示打印边界线。
AcApLayoutManager:
:
setShowTabs函数
virtualvoid
setShowTabs(
Adesk:
:
BooleanshowTabs)=0;
showTabs
输入的布尔值;表示是否显示布局标签。
这个函数设置是否显示布局标签。
kTrue值表示显示布局标签;kFalse值表示不显示布局标签。
AcApLayoutManager:
:
showPageSetup函数
virtualAdesk:
:
Boolean
showPageSetup()=0;
这个函数返回是否“页面设置”对话框自动地在初始入口加载至一个图纸空间布局中。
返回1表示加载;返回0表示不加载。
AcApLayoutManager:
:
showPaperBackground函数
virtualAdesk:
:
Boolean
showPaperBackground()=0;
这个函数返回当前的AcDbLayout对象的图纸背景是否可见。
返回1表示可见;返回0表示不可见。
AcApLayoutManager:
:
showPaperMargins函数
virtualAdesk:
:
Boolean
showPaperMargins()=0;
这个函数返回当前的AcDbLayout对象的图纸标签是否可见。
返回1表示可见;返回0表示不可见。
AcApLayoutManager:
:
showPrintBorder函数
virtualAdesk:
:
Boolean
showPrintBorder()=0;
这个函数返回当前的AcDbLayout对象的打印边界线是否可见。
返回1表示可见;返回0表示不可见。
AcApLayoutManager:
:
showTabs函数
virtualAdesk:
:
Boolean
showTabs()=0;
这个函数返回布局标签是否可见。
返回1表示可见;返回0表示不可见。
AcApLayoutManager:
:
updateCurrentPaper函数
virtualvoid
updateCurrentPaper(
Adesk:
:
BooleanzoomToPaper=FALSE)=0;
zoomToPaper
输入布尔值,可选的;决定是否在重生视图后zoom(缩放)至当前图纸图像的边界。
这个函数更新图纸空间的图纸图像以反映活动的AcDbLayout对象的当前状态。
可选地,传递kTrue值将表示将传入执行zoom(缩放)命令来改变视点以扩展图纸映象的边界。
AcApLayoutManager:
:
updateLayoutTabs函数
virtualvoid
updateLayoutTabs()=0;
这个函数重生布局标签来将它们更新至它们表示的AcDbLayout对象的当前状态。
AcDbArc类
AcDbArc类表示AutoCAD中的弧实体。
继承自
AcDbCurve
包含文件
dbents.h
参见
AcDbObject,AcDbEntity,AcGePoint3d,AcGeVector3d
成员
AcDbArc建构器和析构器
AcDbArc:
:
~AcDbArc函数
~AcDbArc();
析构器。
AcDbArc:
:
AcDbArc函数
AcDbArc(
constAcGePoint3d¢er,
doubleradius,
doublestartAngle,
doubleendAngle);
center
输入弧的中点
radius
输入弧的半径
startAngle
输入弧的开始角
endAngle
输入弧的终止角个建构器使用传递的值创建一个弧。
center必须在WCS坐标中。
弧使用(0,0,1)作为法向矢量和0.0作为厚度初始化。
--------------------------------------------------------------------------------
AcDbArc(
constAcGePoint3d¢er,
constAcGeVector3d&normal,
doubleradius,
doublestartAngle,
doubleendAngle);
center
输入弧的中点
normal
输入包含弧的平面的法向矢量
radius
输入弧的半径
startAngle
输入弧的开始角
endAngle
输入弧的终止角
这个建构器使用传递的值创建一个弧。
center必须在WCS坐标中。
弧使用0.0作为厚度初始化。
--------------------------------------------------------------------------------
AcDbArc();
默认建构器。
初始化将法向矢量初始化为(0,0,1),中点初始化为(0,0,0),
半径、开始角、终止角初始化为0.0。
在第一次关闭弧之间,半径需要改变为一个非零值。
中点和法向矢量必须在WCS坐标中。
AcDbArc编辑函数
AcDbArc:
:
setCenter函数
Acad:
:
ErrorStatus
setCenter(
constAcGePoint3d¢er);
center
输入弧的中点
此函数设置center为弧的中心。
Center必须在WCS坐标中。
中点值对应于DXF群组码10的WCS值。
如果成功返回Acad:
:
eOk,如果传递的数据非法则返回Acad:
:
eInvalidInput。
AcDbArc:
:
setEndAngle函数
Acad:
:
ErrorStatus
setEndAngle(
doubleendAngle);
endAngle
输入弧的终止角(弧度)
此函数设置endAngle为弧的终止角。
endAngle必须为弧度。
角度相对于弧的OCS的X轴,
如视线沿Z轴指向原点则正角度方向为逆时针。
OCS的X轴使用弧的法向矢量、WCS的Z轴,以及任意的轴运算法则确定。
如果角度为负值,则弧仍以逆时针绘出,但从相反的方向度量。
例如,4.7124弧度(270度)的弧与-1.5708弧度(-90度)相等。
终止角对应DXF群组码51。
如果成功返回Acad:
:
eOk,如果传递的数据非法则返回Acad:
:
eInvalidInput。
AcDbArc:
:
setNormal函数
Acad:
:
ErrorStatus
setNormal(
constAcGeVector3d&normal);
normal
输入弧的法向矢量
此函数设置normal指向包含弧的平面的法向矢量。
normal必须在WCS坐标中且必须为非零长度。
法向矢量值对应DXF群组码210。
如果成功返回Acad:
:
eOk,如果传递的数据非法则返回Acad:
:
eInvalidInput。
AcDbArc:
:
setRadius函数
Acad:
:
ErrorStatus
setRadius(
doubleradius);
radius
输入弧的半径
此函数设置radius为弧的半径。
Radius必须大于0。
半径值对应DXF群组码40。
如果成功返回Acad:
:
eOk,如果传递的数据非法则返回Acad:
:
eInvalidInput。
AcDbArc:
:
setStartAngle函数
Acad:
:
ErrorStatus
setStartAngle(
doublestartAngle);
startAngle
输入弧的开始角(弧度)
此函数设置startAngle为弧的终止角。
startAngle必须为弧度。
角度相对于弧的OCS的X轴,如视线沿Z轴指向原点则正角度方向为逆时针。
OCS的X轴使用弧的法向矢量、WCS的Z轴,以及任意的轴运算法则确定。
如果角度为负值,则弧仍以逆时针绘出,但从相反的方向度量。
例如,4.7124弧度(270度)的弧与-1.5708弧度(-90度)相等。
开始角对应DXF群组码50。
如果成功返回Acad:
:
eOk,如果传递的数据非法则返回Acad:
:
eInvalidInput。
AcDbArc:
:
setThickness函数
Acad:
:
ErrorStatus
setThickness(
doublethickness);
thickness
输入弧的厚度
此函数设置thickness为弧的厚度。
厚度是弧沿它法向矢量方向(有些称为拉伸方向)的标注。
厚度值对应DXF群组码39。
如果成功返回Acad:
:
eOk,如果传递的数据非法则返回Acad:
:
eInvalidInput。
AcDbArc杂项函数
AcDbArc:
:
getClassID函数
virtualAcad:
:
ErrorStatus
getClassID(
CLSID*pClsid)const;
pClsid
未说明
Descriptiontocome。
AcDbArc:
:
getTransformedCopy函数
DBCURVE_METHODSAcad:
:
ErrorStatus
getTransformedCopy(
constAcGeMatrix3d&xform,
AcDbEntity*&ent)const;
xform
未说明
ent
未说明
Descriptiontocome。
AcDbArc查询函数
AcDbArc:
:
center函数
AcGePoint3d
center()const;
此函数返回弧在WCS坐标中的中点。
中点值对应于DXF群组码10的WCS值。
AcDbArc:
:
endAngle函数
double
endAngle()const;
此函数返回弧的终止角的弧度。
角度相对于弧的OCS的X轴,
如视线沿Z轴指向原点则正角度方向为逆时针。
OCS的X轴使用弧的法向矢量、
WCS的Z轴,以及任意的轴运算法则确定。
终止角对应DXF群组码51。
AcDbArc:
:
normal函数
AcGeVector3d
normal()const;
此函数在WCS坐标中返回弧的单位法向矢量。
normal必须在WCS坐标中且必须为非零长度。
法向矢量值对应DXF群组码210。
AcDbArc:
:
radius函数
double
radius()const;
此函数返回弧的半径。
半径值对应DXF群组码40。
AcDbArc:
:
startAngle函数
double
startAngle()const;
此函数以弧度返回弧的终止角。
角度相对于弧的OCS的X轴,如视线沿Z轴指向原点则正角度方向为逆时针
。
OCS的X轴使用弧的法向矢量、WCS的Z轴,以及任意的轴运算法则确定。
开始角对应DXF群组码50。
AcDbArc:
:
thickness函数
double
thickness()const;
此函数返回弧的厚度。
厚度是弧沿它法向矢量方向(有些称为拉伸方向)的标注。
厚度值对应DXF群组码39。
AcDbFilter类
此类定义了一个“查询”。
这提供了AcDbCompositeFilteredBlockIterator的关键字,与AcDbCompositeFilteredBlockIterator相关的索引通过
indexClass()方法取得。
AcDbSpatialFilter:
:
indexClass()方法将返回AcDbSpatialIndex:
:
desc()。
需要提供它们自己的索引方式的应用程序需要提供以下三个类的版本:
AcDbIndex
AcDbFilter
AcDbFilteredBlockIterator
继承自
AcDbObject
包含文件
dbfilter.h
参见
AcDbIndexFilterManager,AcDbIndex
成员
AcDbFilter建构器和析构器
AcDbFilter:
:
~AcDbFilter函数
virtual
~AcDbFilter();
析构器。
AcDbFilter:
:
AcDbFilter函数
AcDbFilter();
默认建构器。
AcDbFilter函数
AcDbFilter:
:
indexClass函数
virtualAcRxClass*
indexClass()const;
此函数用于AcDbCompositeFilteredBlockIterator的init()方法中。
例如,如果过滤在裁剪的xref的图形的重生以建立索引遍历
器定义过程中过滤生效,则此函数于内部使用。
返回此过滤器的AcDbIndex的类描述符。
AcDbRasterImage类
AcDbRasterImage实体(或“图像实体”)与AcDbRasterImageDef对象(或“图像定义对象”)一起使用,
以处理AutoCAD中的光栅图像。
这两个类之间的关系就象一个AutoCAD块定义对象和一个块插入实体之间的关系。
以下的OMT图表示了图像对象模型的结构。
AutoCAD图像对象模型
图像实体是一个可绘的、可选择的AutoCAD实体,以一个特定点和方向将一个光栅图像放置在模型或图纸空间中。
图像实体链接至一个图像定义对象,并将显示和绘出图像的需要的图像处理操作的请求送至这个对象。
因为图像定义对象管理所有图像信息,所有图像实体相对较小。
除了图像位置和方向外,它还包括一个裁剪区域、图像淡出、对比度和亮度参数以其他的典型的AcDbEntity属性如层和颜色。
两个或更多的图像实体可被链接至一个图像定义实体。
因为每个图像实体都有自己的裁剪区域,
所以这是一个在图形中不同的位置显示一个光栅图像的不同区域的有效的方法。
AcDbRasterImage实体有时必须在两个坐标系统之间转换:
AcDbEntities的3D模型坐标和
AcDbR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ObjectARX 学习 笔记 acdb 杂记