fix 修正自定义设备拖拽时的效率问题 #53

Merged
gjm merged 1 commits from home-lenovo-legion-r9000/修正自定义设备拖拽效率 AGit into main 2026-10-25 11:43:24 +08:00
@@ -3030,32 +3030,30 @@ Acad::ErrorStatus AecDbEwEquipment::Draw3d(AcGiDraw &dc) const
DrawInfArrow(dc); DrawInfArrow(dc);
if (!dc.IsDragging())//解开后崩溃 if (Has3DBuffer())
{ {
if (Has3DBuffer()) AcDbEntity *pEnt = NULL;
{ const AcDbVoidPtrArray &ar3D = Get3DBuffer();
AcDbEntity* pEnt = NULL; for (int i = 0; i < ar3D.length(); i++)
const AcDbVoidPtrArray &ar3D = Get3DBuffer(); {
for (int i = 0;i < ar3D.length();i++) pEnt = (AcDbEntity *)ar3D.at(i);
if (IsActive())
{ {
pEnt = (AcDbEntity*)ar3D.at(i); BackupColorIndex(pEnt);
if ( IsActive() ) pEnt->setColorIndex(nColor);
{
BackupColorIndex(pEnt);
pEnt->setColorIndex(nColor);
}
else
{
SetBackupColorIndex(pEnt);
}
dc.DrawEntity(*pEnt);
} }
else
{
SetBackupColorIndex(pEnt);
}
dc.DrawEntity(*pEnt);
}
dc.SetLayer(idLay); dc.SetLayer(idLay);
dc.SetColor(nCrBk); dc.SetColor(nCrBk);
return Acad::eOk; return Acad::eOk;
}
} }
Draw3dSolid(&dc, nColor); Draw3dSolid(&dc, nColor);
dc.SetColor(nColor); dc.SetColor(nColor);