Files
envi-code/SourceCode/Code2026/CoreLibrary/AecDbBaseStair.cpp
T
2026-09-28 15:28:50 +08:00

552 lines
17 KiB
C++

#include "stdafx.h"
#include "AecDbBaseStair.h"
#include "AcGiViewDraw.h"
#include "acdbx3dsolid.h"
#include "ImpMD5.h"
extern void DLLIMPEXP OrthoProjected3DSolid(AcDb3dSolid* pSolidClone,const AcGePlane& plan,AcGeMatrix3d& xformPlanToWorld,AcDbVoidPtrArray& arEntPtrs);
static const Adesk::UInt16 kColorByLayer = 256;
const CString AecDbBaseStair::KEY_REST_PTL = _T("KEY_REST_PTL");
const CString AecDbBaseStair::KEY_REST_PTW = _T("KEY_REST_PTW");
const CString AecDbBaseStair::KEY_REST_PTML = _T("KEY_REST_PTML");
const CString AecDbBaseStair::KEY_REST_PTMW = _T("KEY_REST_PTMW");
const CString AecDbBaseStair::KEY_STEEPMS = _T("KEY_STEEPMS");
const CString AecDbBaseStair::KEY_STEEP2S = _T("KEY_STEEP2S");
const CString AecDbBaseStair::KEY_SYMMETRY = _T("SYMTRY");
const CString AecDbBaseStair::KEY_1STEPS = _T("1STEPS");
const CString AecDbBaseStair::KEY_1STEPW = _T("1STEPW");
//const CString AecDbBaseStair::KEY_STEP2S = _T("STEP2S");
const CString AecDbBaseStair::KEY_2STEPW = _T("2STEPW");
const CString AecDbBaseStair::KEY_STEP3S = _T("STEP3S");
const CString AecDbBaseStair::KEY_STEP3W = _T("STEP3W");
const CString AecDbBaseStair::KEY_STEP4S = _T("STEP4S");
const CString AecDbBaseStair::KEY_STEP4W = _T("STEP4W");
ACRX_DXF_DEFINE_MEMBERS (AecDbBaseStair, AecDbEwPipeBase,
AcDb::kDHL_CURRENT, AcDb::kMReleaseCurrent,
AcDbProxyEntity::kNoOperation | AcDbProxyEntity::kDisableProxyWarning,
AEC_BASESTAIR,
"AecDbBaseStair"
"|Product Desc: shanghua earthworm app obj"
"|Company: shanghua inc"
"|WEB Address: www.shanghuasoft.com")
AecDbBaseStair::AecDbBaseStair(void)
{
m_mapSpecXData.SetAt(KEY_NAME,_T("梯"));
}
AecDbBaseStair::~AecDbBaseStair(void)
{
deleteContainerOfStd(m_pipes);
deleteContainerOfStd(m_solids);
}
void AecDbBaseStair::SetLineStairData(const LineStair& data)
{
AssertWriteEnabled();
//set section; 底层设置section,用于绘制管子
//路径单独设置
//bar数据key方式保存
SetSection(data.bar.dD,data.bar.dt);
//bar
m_mapSpecXData.SetAt(PIPE_D,data.bar.dD);
m_mapSpecXData.SetAt(PIPE_THICK,data.bar.dt);
m_mapSpecXData.SetAt(KEY_HEIGHT1,data.bar.dH1);
m_mapSpecXData.SetAt(KEY_HEIGHT2,data.bar.dH);
m_mapSpecXData.SetAt(KEY_SP,data.bar.dP);
//底板
m_mapSpecXData.SetAt(KEY_STEEPH,data.dSteepH);
m_mapSpecXData.SetAt(KEY_STEEPT,data.dSteept);
m_mapSpecXData.SetAt(KEY_STEEPW,data.dSteepW);
m_mapSpecXData.SetAt(KEY_STEEPS1,data.nSteepS);
m_mapSpecXData.SetAt(KEY_SIDET,data.dSidet);
m_mapSpecXData.SetAt(KEY_SIDEW,data.dSideW);
m_mapSpecXData.SetAt(KEY_Width,data.dW);
m_mapSpecXData.SetAt(KEY_HEIGHT,data.dH);
m_mapSpecXData.SetAt(KEY_SYMBOL,data.nSymbol);
m_mapSpecXData.SetAt(KEY_LBEAM,data.bLBeam);
m_mapSpecXData.SetAt(KEY_RBEAM,data.bRBeam);
m_mapSpecXData.SetAt(KEY_SLOPE,data.bSlope);
m_mapSpecXData.SetAt(KEY_NONSLIP,data.bNonslip);
m_mapSpecXData.SetAt(KEY_SLOPEBASE,data.bSlopeBase);
m_mapSpecXData.SetAt(KEY_SINSLAB,data.bShowInSlab3d);
m_mapSpecXData.SetAt(KEY_GUARDBAR,data.bGuardBar);
m_mapSpecXData.SetAt(KEY_BOMEL,data.dBomEl);
m_mapSpecXData.SetAt(KEY_START,data.bBomSta);
m_mapSpecXData.SetAt(KEY_TOPEL,data.dTopEl);
m_mapSpecXData.SetAt(KEY_MATERIAL,data.m_sMaterial);
m_mapSpecXData.SetAt(KEY_FACTORY,data.m_sFactory);
m_mapSpecXData.SetAt(KEY_NO,data.m_sNo);
}
void AecDbBaseStair::GetLineStairData(LineStair& data) const
{
assertReadEnabled();
//bar
m_mapSpecXData.GetAt(PIPE_D,data.bar.dD);
m_mapSpecXData.GetAt(PIPE_THICK,data.bar.dt);
m_mapSpecXData.GetAt(KEY_HEIGHT1,data.bar.dH1);
data.bar.dH = 900;//补错
m_mapSpecXData.GetAt(KEY_HEIGHT2,data.bar.dH);
m_mapSpecXData.GetAt(KEY_SP,data.bar.dP);
//底板
m_mapSpecXData.GetAt(KEY_STEEPH,data.dSteepH);
m_mapSpecXData.GetAt(KEY_STEEPT,data.dSteept);
m_mapSpecXData.GetAt(KEY_STEEPW,data.dSteepW);
m_mapSpecXData.GetAt(KEY_STEEPS1,data.nSteepS);
m_mapSpecXData.GetAt(KEY_SIDET,data.dSidet);
m_mapSpecXData.GetAt(KEY_SIDEW,data.dSideW);
m_mapSpecXData.GetAt(KEY_Width,data.dW);
m_mapSpecXData.GetAt(KEY_HEIGHT,data.dH);
m_mapSpecXData.GetAt(KEY_SYMBOL,data.nSymbol);
m_mapSpecXData.GetAt(KEY_LBEAM,data.bLBeam);
m_mapSpecXData.GetAt(KEY_RBEAM,data.bRBeam);
m_mapSpecXData.GetAt(KEY_SLOPE,data.bSlope);
m_mapSpecXData.GetAt(KEY_NONSLIP,data.bNonslip);
m_mapSpecXData.GetAt(KEY_SLOPEBASE,data.bSlopeBase);
m_mapSpecXData.GetAt(KEY_SINSLAB,data.bShowInSlab3d);
m_mapSpecXData.GetAt(KEY_GUARDBAR,data.bGuardBar);
m_mapSpecXData.GetAt(KEY_BOMEL,data.dBomEl);
m_mapSpecXData.GetAt(KEY_START,data.bBomSta);
m_mapSpecXData.GetAt(KEY_TOPEL,data.dTopEl);
CString sTemp;
m_mapSpecXData.GetAt(KEY_MATERIAL,sTemp);
_tcscpy(data.m_sMaterial,sTemp);
m_mapSpecXData.GetAt(KEY_FACTORY,sTemp);
_tcscpy(data.m_sFactory,sTemp);
m_mapSpecXData.GetAt(KEY_NO,sTemp);
_tcscpy(data.m_sNo,sTemp);
}
void AecDbBaseStair::SetSFPXStair(const SFPXStair &data)
{
AssertWriteEnabled();
//路径单独设置
//bar数据key方式保存
SetSection(data.dGarSize[0], data.dGarSize[1], 0);
m_mapSpecXData.SetAt(KEY_H, data.dH);
m_mapSpecXData.SetAt(KEY_STEEPS1, data.nSteepS);
m_mapSpecXData.SetAt(KEY_STEEPH, data.dSteepH);
m_mapSpecXData.SetAt(KEY_STEEPW, data.dSteepW);
m_mapSpecXData.SetAt(KEY_STEEPS2, data.nSteepsS);
m_mapSpecXData.SetAt(AecDbBaseStair::KEY_STEEPMS, data.nSteepMs);
m_mapSpecXData.SetAt(AecDbBaseStair::KEY_STEEP2S, data.nSteep2s);
m_mapSpecXData.SetAt(KEY_SSTEEPS, data.nSSteeps);
m_mapSpecXData.SetAt(KEY_STAIRTW, data.dStairTW);
m_mapSpecXData.SetAt(KEY_STAIRSW, data.dStairSW);
m_mapSpecXData.SetAt(KEY_STAIRMW, data.dStairMW);
//矩形转角
m_mapSpecXData.SetAt(KEY_SYMMETRY, data.bSymmetry); //是否对称
m_mapSpecXData.SetAt(KEY_1STEPS, data.n1SteepS); //一跑步数
m_mapSpecXData.SetAt(KEY_1STEPW, data.d1SteepW); //一跑段宽
//m_mapSpecXData.SetAt(KEY_STEP2S,data.nSteep2s); //二跑步数
m_mapSpecXData.SetAt(KEY_2STEPW,data.d2SteepW); //二跑段宽
m_mapSpecXData.SetAt(KEY_STEP3S,data.nSteep3s); //三跑步数
m_mapSpecXData.SetAt(KEY_STEP3W,data.d3SteepW); //三跑段宽
m_mapSpecXData.SetAt(KEY_STEP4S,data.nSteep4s); //四跑步数
m_mapSpecXData.SetAt(KEY_STEP4W,data.d4SteepW); //四跑段宽
m_mapSpecXData.SetAt(KEY_WELLW, data.dWell);
m_mapSpecXData.SetAt(KEY_LBEAM, data.bLBeam);
m_mapSpecXData.SetAt(KEY_RBEAM, data.bRBeam);
m_mapSpecXData.SetAt(KEY_UPSIDE, data.nUpSide);
m_mapSpecXData.SetAt(KEY_STEEPAGN, data.nSteepAlign);
m_mapSpecXData.SetAt(KEY_FLOORSHOW, data.nFloorShow);
m_mapSpecXData.SetAt(KEY_DimUpFlag, data.bDimUpstair);
m_mapSpecXData.SetAt(KEY_RSTSHAPE, data.nRestShape);
m_mapSpecXData.SetAt(KEY_RESTSHOW, data.bShowRestPtw);
m_mapSpecXData.SetAt(KEY_RESTPTW, data.dRestPtW);
m_mapSpecXData.SetAt(KEY_STIFFNW, data.dStiffnW);
m_mapSpecXData.SetAt(KEY_STIFFNH, data.dStiffnH);
m_mapSpecXData.SetAt(KEY_SLABT, data.dSbThick);
m_mapSpecXData.SetAt(KEY_OUTSHR, data.bOutSideHRail);
m_mapSpecXData.SetAt(KEY_OUTSRL, data.bOutSideRail);
m_mapSpecXData.SetAt(KEY_INSRAIL, data.bInsideRail);
m_mapSpecXData.SetAt(KEY_BOMEL, data.dBomEl);
m_mapSpecXData.SetAt(KEY_BARH, data.dBarH);
m_mapSpecXData.SetAt(KEY_GARSIZE0, data.dGarSize[0]);
m_mapSpecXData.SetAt(KEY_GARSIZE1, data.dGarSize[1]);
m_mapSpecXData.SetAt(KEY_GAREXT, data.dGarExt);
m_mapSpecXData.SetAt(KEY_ZGAREXT, data.dZGarExt);
m_mapSpecXData.SetAt(KEY_GSHAPE, data.nGShape);
m_mapSpecXData.SetAt(KEY_GARMAT, data.szGarMat);
m_mapSpecXData.SetAt(KEY_BARSP, data.dBarSp);
m_mapSpecXData.SetAt(KEY_BARSIZE0, data.dBarSize[0]);
m_mapSpecXData.SetAt(KEY_BARSIZE1, data.dBarSize[1]);
m_mapSpecXData.SetAt(KEY_BARSIDE, data.dBarSide);
m_mapSpecXData.SetAt(KEY_BSHAPE, data.nBShape);
m_mapSpecXData.SetAt(KEY_BARMAT, data.szBarMat);
m_mapSpecXData.SetAt(AecDbBaseStair::KEY_REST_PTL, data.dRestPtL);
m_mapSpecXData.SetAt(AecDbBaseStair::KEY_REST_PTW, data.dRestPtW);
m_mapSpecXData.SetAt(AecDbBaseStair::KEY_REST_PTML, data.dRestPtML);
m_mapSpecXData.SetAt(AecDbBaseStair::KEY_REST_PTMW, data.dRestPtMW);
}
void AecDbBaseStair::GetSFPXStair(SFPXStair &data) const
{
assertReadEnabled();
m_mapSpecXData.GetAt(KEY_H, data.dH);
m_mapSpecXData.GetAt(KEY_STEEPS1, data.nSteepS);
m_mapSpecXData.GetAt(KEY_STEEPH, data.dSteepH);
m_mapSpecXData.GetAt(KEY_STEEPW, data.dSteepW);
m_mapSpecXData.GetAt(KEY_STEEPS2, data.nSteepsS);
m_mapSpecXData.GetAt(KEY_SSTEEPS, data.nSSteeps);
m_mapSpecXData.GetAt(AecDbBaseStair::KEY_STEEPMS, data.nSteepMs);
m_mapSpecXData.GetAt(AecDbBaseStair::KEY_STEEP2S, data.nSteep2s);
m_mapSpecXData.GetAt(KEY_STAIRTW, data.dStairTW);
m_mapSpecXData.GetAt(KEY_STAIRSW, data.dStairSW);
m_mapSpecXData.GetAt(KEY_STAIRMW, data.dStairMW);
m_mapSpecXData.GetAt(KEY_WELLW, data.dWell);
m_mapSpecXData.GetAt(KEY_LBEAM, data.bLBeam);
m_mapSpecXData.GetAt(KEY_RBEAM, data.bRBeam);
m_mapSpecXData.GetAt(KEY_UPSIDE, data.nUpSide);
m_mapSpecXData.GetAt(KEY_STEEPAGN, data.nSteepAlign);
m_mapSpecXData.GetAt(KEY_FLOORSHOW, data.nFloorShow);
m_mapSpecXData.GetAt(KEY_DimUpFlag, data.bDimUpstair);
m_mapSpecXData.GetAt(KEY_RSTSHAPE, data.nRestShape);
//矩形转角
m_mapSpecXData.GetAt(KEY_SYMMETRY, data.bSymmetry); //是否对称
m_mapSpecXData.GetAt(KEY_1STEPS, data.n1SteepS); //一跑步数
m_mapSpecXData.GetAt(KEY_1STEPW, data.d1SteepW); //一跑段宽
//m_mapSpecXData.GetAt(KEY_STEP2S, data.nSteep2s); //二跑步数
m_mapSpecXData.GetAt(KEY_2STEPW, data.d2SteepW); //二跑段宽
m_mapSpecXData.GetAt(KEY_STEP3S, data.nSteep3s); //三跑步数
m_mapSpecXData.GetAt(KEY_STEP3W, data.d3SteepW); //三跑段宽
m_mapSpecXData.GetAt(KEY_STEP4S, data.nSteep4s); //四跑步数
m_mapSpecXData.GetAt(KEY_STEP4W, data.d4SteepW); //四跑段宽
m_mapSpecXData.GetAt(KEY_STIFFNW, data.dStiffnW);
m_mapSpecXData.GetAt(KEY_STIFFNH, data.dStiffnH);
m_mapSpecXData.GetAt(KEY_SLABT, data.dSbThick);
m_mapSpecXData.GetAt(KEY_OUTSHR, data.bOutSideHRail);
m_mapSpecXData.GetAt(KEY_OUTSRL, data.bOutSideRail);
m_mapSpecXData.GetAt(KEY_INSRAIL, data.bInsideRail);
m_mapSpecXData.GetAt(KEY_BOMEL, data.dBomEl);
m_mapSpecXData.GetAt(KEY_BARH, data.dBarH);
m_mapSpecXData.GetAt(KEY_GARSIZE0, data.dGarSize[0]);
m_mapSpecXData.GetAt(KEY_GARSIZE1, data.dGarSize[1]);
m_mapSpecXData.GetAt(KEY_GAREXT, data.dGarExt);
m_mapSpecXData.GetAt(KEY_ZGAREXT, data.dZGarExt);
m_mapSpecXData.GetAt(KEY_GSHAPE, data.nGShape);
m_mapSpecXData.GetAt(KEY_GARMAT, data.szGarMat);
m_mapSpecXData.GetAt(KEY_BARSP, data.dBarSp);
m_mapSpecXData.GetAt(KEY_BARSIZE0, data.dBarSize[0]);
m_mapSpecXData.GetAt(KEY_BARSIZE1, data.dBarSize[1]);
m_mapSpecXData.GetAt(KEY_BARSIDE, data.dBarSide);
m_mapSpecXData.GetAt(KEY_BSHAPE, data.nBShape);
m_mapSpecXData.GetAt(KEY_BARMAT, data.szBarMat);
m_mapSpecXData.GetAt(AecDbBaseStair::KEY_REST_PTL, data.dRestPtL);
m_mapSpecXData.GetAt(AecDbBaseStair::KEY_REST_PTW, data.dRestPtW);
m_mapSpecXData.GetAt(AecDbBaseStair::KEY_REST_PTML, data.dRestPtML);
m_mapSpecXData.GetAt(AecDbBaseStair::KEY_REST_PTMW, data.dRestPtMW);
}
Acad::ErrorStatus AecDbBaseStair::dwgInFields(AcDbDwgFiler* pFiler)
{
AssertWriteEnabled();
//----- Read parent class information first.
Acad::ErrorStatus es = AecDbEwPipeBase::dwgInFields (pFiler) ;
if ( es != Acad::eOk )
return (es) ;
return pFiler->filerStatus();
}
Acad::ErrorStatus AecDbBaseStair::dwgOutFields(AcDbDwgFiler* pFiler) const
{
assertReadEnabled();
//----- Save parent class information first.
Acad::ErrorStatus es = AecDbEwPipeBase::dwgOutFields (pFiler) ;
if ( es != Acad::eOk )
return (es) ;
return pFiler->filerStatus();
}
Acad::ErrorStatus AecDbBaseStair::dxfInFields(AcDbDxfFiler* pFiler)
{
return Acad::eOk;
}
Acad::ErrorStatus AecDbBaseStair::dxfOutFields(AcDbDxfFiler* pFiler) const
{
return Acad::eOk;
}
void AecDbBaseStair::subList() const
{
assertReadEnabled();
acutPrintf(_T("\n直段楼梯"));
AecDbEwPipeBase::subList();
}
Acad::ErrorStatus AecDbBaseStair::subTransformBy(const AcGeMatrix3d& xform)
{
AecDbEwPipeBase::subTransformBy(xform);
double dBomEl = 0;
m_mapSpecXData.GetAt(KEY_BOMEL,dBomEl);
AcGePoint3d pt(0,0,dBomEl);
pt.transformBy(xform);
m_mapSpecXData.SetAt(KEY_BOMEL,pt.z);
dBomEl = 0;
m_mapSpecXData.GetAt(KEY_TOPEL,dBomEl);
pt.set(0,0,dBomEl);
pt.transformBy(xform);
m_mapSpecXData.SetAt(KEY_TOPEL,pt.z);
return Acad::eOk;
}
Acad::ErrorStatus AecDbBaseStair::subGetGripPoints(AcDbGripDataPtrArray &grips,
const double curViewUnitSize,
const int gripSize,
const AcGeVector3d &curViewDir,
const int bitflags) const
{
Acad::ErrorStatus es = AecDbEwPipeBase::subGetGripPoints(grips, curViewUnitSize, gripSize, curViewDir, bitflags);
//调用基类加入单击修改
SubAddHitEditGrip(grips);
return es;
}
Acad::ErrorStatus AecDbBaseStair::subMoveGripPointsAt(const AcDbVoidPtrArray &appData, const AcGeVector3d &offset, const int bitflags)
{
Acad::ErrorStatus es = AecDbEwPipeBase::subMoveGripPointsAt(appData, offset, bitflags);
if (HitOnGripEdit(appData))
{
return Acad::eOk;
}
return es;
}
Acad::ErrorStatus AecDbBaseStair::Draw2d(AcGiDraw &dc) const
{
assertReadEnabled();
return Acad::eOk;
}
Acad::ErrorStatus AecDbBaseStair::Draw3d(AcGiDraw &dc) const
{
assertReadEnabled();
return Acad::eOk;
}
int AecDbBaseStair::GetSectionDraw(const AcGePoint3d& ptFr,const AcGePoint3d& ptTo,const AcGeVector3d& vtViewDir,const AcGeVector3d& vtTo, AcDbVoidPtrArray& arRegPtrs) const
{
AcGeVector3d vtLn = ptTo - ptFr;
AcGeVector3d vtNorm = vtLn.crossProduct(vtViewDir);
AcGePlane plan;
plan.set(ptFr,vtNorm);
AcGeMatrix3d xform;
xform.setToPlaneToWorld(plan);
xform.invert();
if (Get3DBuffer().length() == 0)
{
AcGiViewDraw dc(NULL,NULL);
Draw3d(dc);
}
AcDbEntity* pEnt = NULL;
AcDb3dSolid* pSolid = NULL;
AcDbVoidPtrArray arRegPtrsT;
const AcDbVoidPtrArray &ar3D = Get3DBuffer();
for (int i = 0;i < ar3D.length();i++)
{
pEnt = (AcDbEntity*)ar3D.at(i);
pSolid = AcDb3dSolid::cast(pEnt);
if (pSolid != NULL)
{
//投影法
OrthoProjected3DSolid(pSolid,plan,xform,arRegPtrsT);
}
}
for (int i = 0;i < arRegPtrsT.length();i++)
{
pEnt = (AcDbEntity*)arRegPtrsT.at(i);
pEnt->setLayer(layerId());
pEnt->setColorIndex(kColorByLayer);
arRegPtrs.append(pEnt);
}
return arRegPtrs.length();
}
SHJson::WValue& AecDbBaseStair::ToJson(bool bExprotGeo) const
{
using namespace SHJson;
assertReadEnabled();
WValue &v = AecDbEwPipeBase::ToJson(bExprotGeo);
if (bExprotGeo)
{
AecDbBaseStair *pNew = (AecDbBaseStair*)clone();
AcDbCurve *pCurve = pNew->GetNativeCurve();
if (pCurve)
{
AcGePoint3d ptS(AcGePoint3d::kOrigin);
pCurve->getStartPoint(ptS);
AcGeMatrix3d mat;
mat.setToTranslation(-ptS.asVector());
pCurve->transformBy(mat);
pNew->GetSpecialtyData(AcDb::kForWrite)->SetAt(KEY_MAJBR, AcGeVector3d::kXAxis);
}
pNew->Clean3DBuffer();
AcGiViewDraw dc;
pNew->Draw3d(dc);
WValue ar;
ar.SetArray();
for (size_t i(0); i < pNew->m_solids.size(); ++i)
{
AcDbX3dSolid *pSolid(pNew->m_solids[i]);
if (!pSolid) continue;
WValue &x = pSolid->ToJson();
pushBack(ar, x);
}
if (!pNew->m_solids.empty())
addMember(v, _T("__solids__"), ar);
ar.SetArray();
for (size_t i(0); i < pNew->m_pipes.size(); ++i)
{
AecDbEwPipeBase *pPipe(pNew->m_pipes[i]);
if (!pPipe) continue;
WValue &x = pPipe->ToJson();
pushBack(ar, x);
}
if (!pNew->m_pipes.empty())
addMember(v, _T("__pipes__"), ar);
DELETE_PTR(pNew);
}
return v;
}
bool AecDbBaseStair::ByJson(const SHJson::WValue &v)
{
return false;
}
CString AecDbBaseStair::getUniqueNameBySFPXData() const
{
SFPXStair data;
::memset(&data, 0, sizeof(SFPXStair));
GetSFPXStair(data);
::memset(&data.nSSteeps, 0, sizeof(int));
::memset(&data.nFloorShow, 0, sizeof(int)); //层显示类型
::memset(&data.bDimUpstair, 0, sizeof(int)); //标注上楼方向
::memset(&data.dBomEl, 0, sizeof(double)); //楼梯底部标高
::memset(data.szGarMat, 0, sizeof(TCHAR) * 256);//材质
::memset(data.szBarMat, 0, sizeof(TCHAR) * 256);//材质
return ImpMD5(&data, sizeof(SFPXStair)).toString16W().c_str();
}
CString AecDbBaseStair::getUniqueNameByLineStairData() const
{
LineStair data;
::memset(&data, 0, sizeof(LineStair));
GetLineStairData(data);
::memset(data.bar.m_sFactory, 0, sizeof(TCHAR) * 256);
::memset(data.bar.m_sMaterial, 0, sizeof(TCHAR) * 256);
::memset(data.bar.m_sNo, 0, sizeof(TCHAR) * 256);
::memset(&data.bar.dBomEl, 0, sizeof(double));
::memset(&data.bar.bVerDraw, 0, sizeof(int));
::memset(&data.dTopEl, 0, sizeof(double));
::memset(&data.dBomEl, 0, sizeof(double));
::memset(&data.nSymbol, 0, sizeof(int));
::memset(data.m_sFactory, 0, sizeof(TCHAR) * 256);
::memset(data.m_sMaterial, 0, sizeof(TCHAR) * 256);
::memset(data.m_sNo, 0, sizeof(TCHAR) * 256);
return ImpMD5(&data, sizeof(LineStair)).toString16W().c_str();
}
#include "HlrCutOption.h"
void AecDbBaseStair::ProcessHlrResult(const AcArray<AcDbEntity *> &ar
, const std::map<AcDbEntity *, AcArray<AcDbEntity *>> &preAr
, AcArray<AcDbEntity *> &output) const
{
HlrCutOption::ProcessHlrResult(this
, FALSE
, .0
, HlrCutOption::getHlrBLK_STAIR()
, ar
, preAr
, output);
}