Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

157 lines
4.8 KiB
C++

#include "stdafx.h"
#include "AecDbEquBaseDraw2d.h"
#include "YMJCDlg.h"
#include "CoreTools.h"
namespace
{
AcGePoint3d MidPoint(const AcGePoint3d& pt1, const AcGePoint3d& pt2)
{
return AcGePoint3d((pt1.x + pt2.x) / 2.0,
(pt1.y + pt2.y) / 2.0,
(pt1.z + pt2.z) / 2.0);
}
}
ACRX_CONS_DEFINE_MEMBERS(AecDbEquBaseDraw2d, AecDbXDraw, 0);
AecDbEquBaseDraw2d::AecDbEquBaseDraw2d(void)
{
}
AecDbEquBaseDraw2d::~AecDbEquBaseDraw2d(void)
{
}
Acad::ErrorStatus AecDbEquBaseDraw2d::Edit()
{
AcDbObjectId idSBJC;
GetAttach(idSBJC);
AcDbEntity* pEnt(NULL);
if (Acad::eOk == acdbOpenAcDbEntity(pEnt, idSBJC, AcDb::kForWrite))
{
double dEntL = 0.0, dEntW = 0.0;
AcDbExtents ext;
AcGePoint3d ptIns;
AcGeVector3d vtDir;
AecDbEwEquipment* pEqu = AecDbEwEquipment::cast(pEnt);
if (!pEqu)
{
return Acad::eOk;
}
pEqu->getGeomExtents(ext);
dEntL = ext.maxPoint().x - ext.minPoint().x;
dEntL += 60;
dEntW = ext.maxPoint().y - ext.minPoint().y;
dEntW += 60;
pEqu->GetInsert(ptIns, vtDir);
double dL, dW, dt, dHZ, dHZ2, dGL, dGW, dGt, dGd
, dYP, dXP, dBomEl, dMR, dMPOD, dMPt, dSideSp;
CString sBMat, sGMat, sDMat, sRem, sNo, sMMat
, sMRem, sMType, sMSize, sMPMat;
int nRow, nCol, nArray, nSteel, nMNumber, nNumber;
BOOL bHasSteelSlab, bHasBolt, bBoltType, bBoltPipe;
pEqu->GetSpecialtyData()->GetAt(_T("_m_dL_"), dL);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dW_"), dW);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dt_"), dt);
pEqu->GetSpecialtyData()->GetAt(_T("_m_sBMat_"), sBMat);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dHZ_"), dHZ);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dHZ2_"), dHZ2);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dGL_"), dGL);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dGW_"), dGW);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dGt_"), dGt);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dGd_"), dGd);
pEqu->GetSpecialtyData()->GetAt(_T("_m_sGMat_"), sGMat);
pEqu->GetSpecialtyData()->GetAt(_T("_m_nRow_"), nRow);
pEqu->GetSpecialtyData()->GetAt(_T("_m_nCol_"), nCol);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dYP_"), dYP);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dXP_"), dXP);
pEqu->GetSpecialtyData()->GetAt(_T("_m_sDMat_"), sDMat);
pEqu->GetSpecialtyData()->GetAt(_T("_m_sRem_"), sRem);
pEqu->GetSpecialtyData()->GetAt(_T("_m_bHasSteelSlab_"), bHasSteelSlab);
pEqu->GetSpecialtyData()->GetAt(_T("_m_bHasBolt_"), bHasBolt);
pEqu->GetSpecialtyData()->GetAt(_T("_m_bBoltType_"), bBoltType);
pEqu->GetSpecialtyData()->GetAt(_T("_m_bBoltPipe_"), bBoltPipe);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dBomEl_"), dBomEl);
pEqu->GetSpecialtyData()->GetAt(_T("_m_sNo_"), sNo);
pEqu->GetSpecialtyData()->GetAt(_T("_m_nArray_"), nArray);
pEqu->GetSpecialtyData()->GetAt(_T("_m_nSteel_"), nSteel);
pEqu->GetSpecialtyData()->GetAt(_T("_m_nMNumber_"), nMNumber);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dMR_"), dMR);
pEqu->GetSpecialtyData()->GetAt(_T("_m_sMMat_"), sMMat);
pEqu->GetSpecialtyData()->GetAt(_T("_m_sMRem_"), sMRem);
pEqu->GetSpecialtyData()->GetAt(_T("_m_sMType_"), sMType);
pEqu->GetSpecialtyData()->GetAt(_T("_m_sMSize_"), sMSize);
pEqu->GetSpecialtyData()->GetAt(_T("_m_sMPMat_"), sMPMat);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dMPOD_"), dMPOD);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dMPt_"), dMPt);
pEqu->GetSpecialtyData()->GetAt(_T("_m_nNumber_"), nNumber);
pEqu->GetSpecialtyData()->GetAt(_T("_m_dSideSp_"), dSideSp);
CAcModuleResourceOverride myResources;
CYMJCDlg dlg;
dlg.m_dL = dL;
dlg.m_dW = dW;
dlg.m_dt = dt;
dlg.m_sBMat = sBMat;
dlg.m_dHZ = dHZ;
dlg.m_dHZ2 = dHZ2;
dlg.m_dGL = dGL;
dlg.m_dGW = dGW;
dlg.m_dGt = dGt;
dlg.m_dGd = dGd;
dlg.m_sGMat = sGMat;
dlg.m_nRow = nRow;
dlg.m_nCol = nCol;
dlg.m_dYP = dYP;
dlg.m_dXP = dXP;
dlg.m_sDMat = sDMat;
dlg.m_sRem = sRem;
dlg.m_bHasSteelSlab = bHasSteelSlab;
dlg.m_bHasBolt = bHasBolt;
dlg.m_bBoltType = bBoltType;
dlg.m_bBoltPipe = bBoltPipe;
dlg.m_dBomEl = dBomEl;
dlg.m_sNo = sNo;
dlg.m_nArray = nArray;
dlg.m_nSteel = nSteel;
dlg.m_nMNumber = nMNumber;
dlg.m_dMR = dMR;
dlg.m_sMMat = sMMat;
dlg.m_sMRem = sMRem;
dlg.m_sMType = sMType;
dlg.m_sMSize = sMSize;
dlg.m_sMPMat = sMPMat;
dlg.m_dMPOD = dMPOD;
dlg.m_dMPt = dMPt;
dlg.m_nNumber = nNumber;
dlg.m_dSideSp = dSideSp;
if (dlg.DoModal() == IDOK)
{
AcGePoint3d ptBomMid = MidPoint(ext.minPoint(), ext.maxPoint());
ptBomMid.z = dlg.m_dBomEl;
double dAngle = AcGeVector3d::kXAxis.angleTo(vtDir, AcGeVector3d::kZAxis);
AcGeMatrix3d xforR;
xforR.setToRotation(dAngle, AcGeVector3d::kZAxis, ptBomMid);
AecDbEwEquipment* pNewEqu = dlg.GetBaseStruPart(ptBomMid);
if (pNewEqu)
{
pNewEqu->transformBy(xforR);
pNewEqu->GetSpecialtyData()->SetAt(KEY_DRAW2D, _T("AecDbEquBaseDraw2d"));
pEqu->erase();
CoreTools::AddToModelSpace(pNewEqu);
}
}
}
return Acad::eOk;
}