- MxDraw 云图
- 快速入门
- 前端 mxdraw 和 mxcad 库预览编辑图纸
- 后台使用 Node.js 调用梦想 API
- CAD 与 GIS 集成说明
- 梦想云图 Node.JS 服务
- iOS 开发
- 安卓开发
- 网页 CAD 开发
- 网页快速入门 aspaps.netphpjava
- 图形数据库
- 参数化绘图
- 交互绘图
- 选择集
- 扩展数据
- 自定义实体
- 自定义命令
- 光栅图处理
- 图面搜索
- 控件事件
- 打印控制
- 界面控制
- COM 开发
- 视频教程
- VB 快速入门
- Delphi 快速入门
- CSharp 快速入门
- java 快速入门
- QT 快速入门
- 易语言快速入门
- Powerbuilder 快速入门
- wpf 控件入门
- 图形数据库
- 参数化绘图
- 交互绘图
- 选择集
- 扩展数据
- 自定义命令
- 自定义实体
- 打印控制
- 控件事件
- 图面搜索
- 光栅图处理
- 界面控制
- C++ 开发
- C++ bulider 快速入门
- C++ 快速入门(VS2010)
- C++ 快速入门(com 接口)
- 图纸数据库
- 参数化绘图
- 交互绘图
- 选择集
- 扩展程序
- 扩展数据
- 自定义函数
- 自定义实体
- 光栅图处理
- 图面搜索
- 控件事件
- 界面控制
- 常见问题
- 试用技术服务申请
- 会员下载最新程序
- 备用下载
- 控件安装运行说明
- 控件最新更新
- 控件功能简介
- 控件图形数据库
- 控件界面控制
- 控件命令执行原理
- 控件系统变量说明
- 控件常见问题说明
- 修改对象属性
- 网页加载 CAD 图纸的两个方案
- MxDraw3D 控件
- 前端基础工程化知识
函数说明
函数名:ACRX_DECLARE_MEMBERS 宏
作用:使用MCRX_DECLARE_MEMBERS宏定义类的类型信息函数,宏的第一个参数是类的类名。
参数:
名称 | 说明 |
---|---|
第一个参数 | 宏的第一个参数是类的类名 |
参考例程:
ACRX_DECLARE_MEMBERS(MyCustomEntity);
ACRX_DXF_DEFINE_MEMBERS宏
作用:定义类的类型信息。
定义:
#define ACRX_DXF_DEFINE_MEMBERS MCRX_DXF_DEFINE_MEMBERS_EX
#define MCRX_DXF_DEFINE_MEMBERS_EX(CLASS_NAME,PARENT_CLASS,DWG_VERSION,
MAINTENANCE_VERSION,PROXY_FLAGS,DXF_NAME,APP)\
MCRX_DEFINE_MEMBERS(CLASS_NAME); \
参数:
名称 | 说明 |
---|---|
CLASS_NAME | 自定义实体的类名 |
PARENT_CLASS | 自定义实体的基类 |
DWG_VERSION | 当前文件版本 |
MAINTENANCE_VERSION | 当前控件版本 |
PROXY_FLAGS | 代理实体处理标志 |
DXF_NAME | Dfx0组码对应值 |
APP | 类说明 |
参考例程:
ACRX_DXF_DEFINE_MEMBERS( MyCustomEntity, //自定义实体的类名 McDbEntity,//自定义实体的基类 AcDb::kDHL_CURRENT,//当前文件版本 AcDb::kMReleaseCurrent,//当前控件版本 AcDbProxyEntity::kAllAllowedBits,//代理实体处理标志 MyCustomEntity,//Dfx0组码对应值 MxDrawObj Test Custom Entity//类说明 );
函数名:worldDraw function
作用:绘制自定义实体的显示效果。
接口:
参数:
名称 | 说明 |
---|---|
wd | 显示绘制的上下文对象 |
参考例程:
Adesk::Boolean MyCustomEntity::worldDraw(AcGiWorldDraw * wd) { assertReadEnabled(); AcDbVoidPtrArray entitySet; explode(entitySet); for (int i = 0; i < entitySet.length(); i++) { McDbEntity* pEnt = (McDbEntity*)entitySet[i]; wd->subEntityTraits().setLineWeight(pEnt->lineWeight()); wd->subEntityTraits().setColor(pEnt->colorIndex()); wd->subEntityTraits().setAlwaysShowLineWidth(TRUE); pEnt->worldDraw(wd); delete pEnt; } return Mdesk::kTrue; }
函数名:getGripPoints function
作用:返回自定义的编辑夹点。
接口:
virtual Acad::ErrorStatus getGripPoints AcGePoint3dArray & gripPoints, AcGeIntArray & osnapModes, AcGeIntArray & geomIds
)const;
参数:
名称 | 说明 |
---|---|
gripPoints | 返回夹点 |
osnapModes | 暂没有使用 |
geomIds | 暂没有使用 |
参考例程:
Acad::ErrorStatus MyCustomEntity::getGripPoints(AcGePoint3dArray & gripPoints, AcGeIntArray & osnapModes, AcGeIntArray & geomIds) const { assertReadEnabled(); gripPoints.append(m_vCenterPt); return Acad::eOk; }
函数名:moveGripPointsAt function
作用:处理夹点编辑结果。
接口:
Acad::ErrorStatus moveGripPointsAt( const AcGeIntArray & indices, const AcGeVector3d & offset
);
参数:
名称 | 说明 |
---|---|
indices | indices [0]参数是传入被编辑的夹点索引, 其它数组元素暂没有使用 |
Offset | 夹点编辑的偏移量 |
参考例程:
Acad::ErrorStatus MyCustomEntity::moveGripPointsAt(const AcGeIntArray & indices, const AcGeVector3d & offset) { assertWriteEnabled(); int iIndex = indices[0]; switch (iIndex) { case 0: m_vCenterPt += offset; break; } return Mcad::eOk; }
函数名:getGeomExtents function
作用:返回自定义实体的外包矩形框。
接口:
Acad::ErrorStatus getGeomExtents(
AcDbExtents & extents
) const;
参数:
名称 | 说明 |
---|---|
extents | 返回自定义实体外包矩形框 |
参考例程:
Acad::ErrorStatus MyCustomEntity::getGeomExtents(AcDbExtents & extents) const { assertReadEnabled(); auto vPos = GetFPS(); McGePoint3d vLeftBottom; McGePoint3d vRightTob; vLeftBottom = vPos[0]; vRightTob = vPos[0]; for (size_t i(1); i < vPos.size(); i++) { if (vLeftBottom.x > vPos[i].x) vLeftBottom.x = vPos[i].x; if (vLeftBottom.y > vPos[i].y) vLeftBottom.y = vPos[i].y; if (vRightTob.x < vPos[i].x) vRightTob.x = vPos[i].x; if (vRightTob.y < vPos[i].y) vRightTob.y = vPos[i].y; } extents.set(vLeftBottom, vRightTob); return Acad::eOk; }
函数名:getOsnapPoints function
作用:返回自定义实体的捕捉点。
接口:
Acad::ErrorStatus getOsnapPoints(
AcDb::OsnapMode osnapMode,
int gsSelectionMark,
const AcGePoint3d & pickPoint,
const AcGePoint3d & lastPoint,
const AcGeMatrix3d & viewXform,
AcGePoint3dArray & snapPoints,
AcDbIntArray & geomIds
) const;
参数:
名称 | 说明 |
---|---|
osnapMode | 捕捉点类型,通过该变量可以确定需要返回什么类型的捕捉点 |
GsSelectionMark | 暂没有使用 |
pickPoint | 当前输入点 |
LastPoint | 上一次的输入点 |
ViewXform | 暂没有使用 |
SnapPoints | 返回捕捉点 |
GeomIds | 暂没有使用 |
参考例程:
Acad::ErrorStatus MyCustomEntity::getOsnapPoints(AcDb::OsnapMode osnapMode, int gsSelectionMark, const AcGePoint3d & pickPoint, const AcGePoint3d & lastPoint, const AcGeMatrix3d & viewXform, AcGePoint3dArray & snapPoints, AcDbIntArray & geomIds) const { assertReadEnabled(); if (osnapMode == McDb::kOsModeEnd) { // 返回端点。 auto vPos = GetFPS(); for each (auto it in vPos) snapPoints.append(it); } else if (osnapMode == McDb::kOsModeMid) { // 返回的是中点。 snapPoints.append(m_vCenterPt); } return Mcad::eOk; }
函数名:Explode function
作用:重载该虚函数,返回自定义实体打碎后的实体,在控件中,自定义实体保存在到dwg图中时,使用是块引用来保存,控件使用该函数得到自定义实体在块引用中的实体数据。
接口:
Acad::ErrorStatus explode(
AcDbVoidPtrArray & entitySet
) const;
参数:
名称 | 说明 |
---|---|
entitySet | 返回打碎后的基本实体。实体指针内存控件释放 |
参考例程:
Acad::ErrorStatus MyCustomEntity::explode(AcDbVoidPtrArray & entitySet) const { assertReadEnabled(); auto vPos = GetFPS(); for (size_t i(0); i < vPos.size(); i++) { McDbLine* pLine = new McDbLine(vPos[i], vPos[(i + 2) % 5]); pLine->setLineWeight(McDb::kLnWt025); //设置一些属性 McCmColor mColor; mColor.setColor(RGB(0, 255, 0)); pLine->setColor(mColor); pLine->setAlwaysShowLineWeight(TRUE); entitySet.append(pLine); } return Acad::eOk; }
函数名:dwgInFields function
作用:重载该虚函数,响应控件系统,读取自定义实体数据,在从文件读取实体,复制实体等地方都会调用该函数。
接口:
Acad::ErrorStatus dwgInFields(
AcDbDwgFiler * pFiler
);
参数:
名称 | 说明 |
---|---|
pFiler | 数据归档对象,在这个函数,使用该对象写入数据 |
参考例程:
Acad::ErrorStatus MyCustomEntity::dwgInFields(AcDbDwgFiler * pFiler) { assertWriteEnabled(); int lVar = 1; pFiler->readInt(&lVar); pFiler->readDouble(&m_iLength); pFiler->readPoint3d(&m_vCenterPt); return Mcad::eOk; }
函数名:dwgOutFields function
作用:重载该虚函数,响应控件系统,读取自定义实体数据,在从文件读取实体,复制实体等地方都会调用该函数。
接口:
Acad::ErrorStatus dwgOutFields( AcDbDwgFiler * pFiler
) const;
参数:
名称 | 说明 |
---|---|
pFiler | 数据归档对象,在这个函数,使用该对象读取数据 |
参考例程:
Acad::ErrorStatus MyCustomEntity::dwgOutFields(AcDbDwgFiler * pFiler) const { assertReadEnabled(); pFiler->writeInt(MYCUSTOMENTITY_VERSION); pFiler->writeDouble(m_iLength); pFiler->writePoint3d(m_vCenterPt); return Mcad::eOk; }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论