返回介绍

初始化自定义

发布于 2023-08-09 23:10:33 字数 2258 浏览 0 评论 0 收藏 0

写自定义实体类CMcdbFivePointStar继承自McDbEntity类

#define FPS_VERSION 1  //版本号
 
class CMcdbFivePointStar : public McDbEntity
{
public:
ACRX_DECLARE_MEMBERS(CMcdbFivePointStar);
CMcdbFivePointStar(int iLenth = 50, McGePoint3d vPos = McGePoint3d (0, 0, 0));
~CMcdbFivePointStar(void);
 
//重载该虚函数,绘制自定义实体的显示效果a
Adesk::Boolean worldDraw(
AcGiWorldDraw * wd//显示绘制的上下文对象
);
 
//重载该虚函数,返回自定义的编辑夹点
virtual Acad::ErrorStatus   getGripPoints(
AcGePoint3dArray&  gripPoints,//返回夹点
AcGeIntArray&  osnapModes,// 暂没有使用
AcGeIntArray&  geomIds//暂没有使用
) const;
 
//重载该虚函数,处理夹点编辑结果。
virtual Acad::ErrorStatus moveGripPointsAt(
const AcGeIntArray& indices,//indices [0]参数是传入被编辑的夹点索引, 其  它数组元素暂没有使用。
const AcGeVector3d& offset//夹点编辑的偏移量
);
 
//重载该虚函数,返回自定义实体的外包矩形框
virtual Acad::ErrorStatus   getGeomExtents(
AcDbExtents& extents//返回自定义实体外包矩形框。
) const;
 
//重载该虚函数,返回自定义实体的捕捉点
virtual Acad::ErrorStatus   getOsnapPoints(
AcDb::OsnapMode     osnapMode,//捕捉点类型,通过该变量可以确  定需要返回什  么类型的捕捉点
int                 gsSelectionMark,//暂没有使用
const AcGePoint3d&  pickPoint,//当前输入点
const AcGePoint3d&  lastPoint,//上一次的输入点
const AcGeMatrix3d& viewXform,// 暂没有使用
AcGePoint3dArray&   snapPoints,//返回捕捉点
AcDbIntArray&       geomIds//暂没有使用
) const;
 
//重载该虚函数,返回自定义实体打碎后的实体,在控件中,
//自定义实体保存在到dwg图中时,使用是块引用来保存,
//控件使用该函数得到自定义实体在块引用中的实体数据。
virtual Acad::ErrorStatus   explode(
AcDbVoidPtrArray& entitySet//返回打碎后的基本实体。实体指针 内存控件释放。
) const;
 
//重载该虚函数,响应控件系统,读取自定义实体数据,
//在从文件读取实体,复制实体等地方都会调用该函数。
virtual Acad::ErrorStatus dwgInFields(
AcDbDwgFiler* pFiler//数据归档对象,在这个函数,使用该对象读   取数据。
);
 
//重载该虚函数,响应控件系统,写入自定义实体数据,
//在把实体写入文件时,复制实体等地方都会调用该函数。
virtual Acad::ErrorStatus dwgOutFields(
AcDbDwgFiler* pFiler//数据归档对象,在这个函数,使用该对象写   入数据。
) const;
 
void SetCenter(McGePoint3d vCenter);
const McGePoint3d & GetCenter();
void SetLenth(int dLength);
const int & GetLenth();
private:
std::vector<McGePoint3d> GetFPS() const;
int m_iLength;//五角星半径
McGePoint3d m_vPos; //五角星中心
/* int m_Rdius;*/
};

双击“画五角星产生事件”,添加代码如下:

CMcdbFivePointStar * pFPS = new CMcdbFivePointStar(100, McGePoint3d(100, 100, 0));
MrxDbgUtils::addToCurrentSpaceAndClose(pFPS);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文