• 大小: 6KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-26
  • 语言: 其他
  • 标签: ObjectArx  cad  c++  

资源简介

这个自己做的一个自定义实体,形状是一个矩形,拥有三个夹点,分别是移动夹点、向上拉伸夹点和向右拉伸夹点。

资源截图

代码片段和文件信息

#include “StdAfx.h“
#include “CCustombase.h“
#include 

double CCustombase::s_gripSize = 2.8;
std::map CCustombase::s_mapGripPtr;

CCustombase::CCustombase()
{
}


CCustombase::~CCustombase()
{
}

Adesk::Boolean CCustombase::worldDraw(AcGiWorldDraw* pWd)
{
assertReadEnabled();
for (int i = 0; i < m_arrEntPtr.length(); ++i)
{
m_arrEntPtr[i]->worldDraw(pWd);
}
return Adesk::kTrue;
}

Acad::ErrorStatus CCustombase::dwgInFields(AcDbDwgFiler* pFiler)
{
//读取数据
assertWriteEnabled();
AcDbEntity::dwgInFields(pFiler);
for (int i = 0; i < m_arrEntPtr.length(); ++i)
{
m_arrEntPtr[i]->dwgInFields(pFiler);
}
return pFiler->filerStatus();
}

Acad::ErrorStatus CCustombase::dwgOutFields(AcDbDwgFiler* pFiler) const
{
//存入数据
assertReadEnabled();
AcDbEntity::dwgOutFields(pFiler);
for (int i = 0; i < m_arrEntPtr.length(); ++i)
{
m_arrEntPtr[i]->dwgOutFields(pFiler);
}
return pFiler->filerStatus();
}

Acad::ErrorStatus CCustombase::dxfInFields(AcDbDxfFiler* pFiler)
{
return Acad::eNotImplementedYet;
}

Acad::ErrorStatus CCustombase::dxfOutFields(AcDbDxfFiler* pFiler) const
{
return Acad::eNotImplementedYet;
}

Acad::ErrorStatus CCustombase::getOsnapPoints(AcDb::OsnapMode osnapMode Adesk::GsMarker gsSelectionMark const AcGePoint3d& pickPoint const AcGePoint3d& lastPoint const AcGeMatrix3d& viewXform AcGePoint3dArray& snapPoints AcDbIntArray & geomIds) const
{
assertReadEnabled();
for (int i = 0; i < m_arrEntPtr.length(); ++i)
{
m_arrEntPtr[i]->getOsnapPoints(osnapMode gsSelectionMark pickPoint lastPoint viewXform snapPoints geomIds);
}
return Acad::eOk;
}

Acad::ErrorStatus CCustombase::getGeomExtents(AcDbExtents& extents) const
{
assertReadEnabled();
for (int i = 0; i < m_arrEntPtr.length(); ++i)
{
AcDbExtents ext;
m_arrEntPtr[i]->getGeomExtents(ext);
extents.addExt(ext);
}
return Acad::eOk;
}

Acad::ErrorStatus CCustombase::transformBy(const AcGeMatrix3d& xform)
{
assertWriteEnabled();

for (int i = 0; i < m_arrEntPtr.length(); ++i)
{
m_arrEntPtr[i]->transformBy(xform);
}
return AcDbEntity::transformBy(xform);
}

Acad::ErrorStatus CCustombase::getTransformedCopy(const AcGeMatrix3d& xform AcDbEntity*& ent) const
{
assertReadEnabled();
for (int i = 0; i < m_arrEntPtr.length(); ++i)
{
m_arrEntPtr[i]->getTransformedCopy(xform ent);
}
return AcDbEntity::getTransformedCopy(xform ent);
}

Acad::ErrorStatus CCustombase::erase(Adesk::Boolean erasing /*= true*/)
{
assertWriteEnabled();
for (int i = 0; i < m_arrEntPtr.length(); ++i)
{
m_arrEntPtr[i]->erase(erasing);
}
return Acad::eOk;
}

std::vector::const_iterator CCustombase::GetGripName() const
{
return m_vecGripName.begin();
}

AcGePoint3d CCustombase::GetOffsetPt(const AcGePoint3d& ptbase double dX double dY)
{
AcGePoint3d ptTemp = ptbase;
ptTemp.x += dX;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4461  2019-05-13 15:53  Arx自定义实体代码\CCustombase.cpp

     文件       2761  2019-05-13 15:53  Arx自定义实体代码\CCustombase.h

     文件      12603  2019-05-13 15:53  Arx自定义实体代码\CDiBanCsm.cpp

     文件       2986  2019-05-14 16:27  Arx自定义实体代码\CDiBanCsm.h

     目录          0  2019-06-13 10:40  Arx自定义实体代码

----------- ---------  ---------- -----  ----

                22811                    5


评论

共有 条评论