#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; }