void CDepartmentEstimationDialog::DrawSensors(CPaintDC &dc) { std::map<int /*SensorID*/, SPosition>::iterator Iter = m_SensorsLocation.begin(); std::map<int /*SensorID*/, SPosition>::iterator End = m_SensorsLocation.end(); for(;Iter != End; ++Iter) { int SensorID = Iter->first; SPosition Position = Iter->second; DrawSensor(dc, SensorID, Position); } }
void DrawCmd::DrawTempeSensor() { AcGePoint3d pt; double angle; AcDbObjectId objId; CString GEName = _T("温度传感器"); DrawSensor(objId,GEName,pt,angle); TempeSensorGE* pTempeSensorGE = new TempeSensorGE( pt, angle ); // 关联到瓦斯管路上 pTempeSensorGE->setRelatedGE( objId ); CheakLayerExit( GEName, 3, AcDb::kLnWt025); pTempeSensorGE->setLayer(GEName); pTempeSensorGE->setLineWeight(AcDb::kLnWt025); // 初始化并提交到数据库 if( !ArxUtilHelper::PostToModelSpace( pTempeSensorGE ) ) delete pTempeSensorGE; }
void DrawCmd::DrawGasSensor() { //AcDbObjectId objId = ArxUtilHelper::SelectObject( _T( "请选择一条管路:" ) ); //if( objId.isNull() ) return; //if( !ArxUtilHelper::IsEqualType( _T( "GasTube" ), objId ) ) return; //CString GEName = _T("瓦斯传感器"); //AcGePoint3d pt; //if( !PromptInsertPt( objId, pt ) ) return; //double angle; //if( !GetClosePtAndAngle( objId, pt, angle ) ) return; //AcGeVector3d v( AcGeVector3d::kXAxis ); //v.rotateBy( angle, AcGeVector3d::kZAxis ); //if( v.x < 0 ) v.negate(); //angle = v.angleTo( AcGeVector3d::kXAxis, -AcGeVector3d::kZAxis ); //v.normalize(); //v.rotateBy( PI / 2, AcGeVector3d::kZAxis ); // 始终与文字反向 //pt = pt + 6 * v; AcGePoint3d pt; double angle; AcDbObjectId objId; CString GEName = _T("瓦斯传感器"); DrawSensor(objId,GEName,pt,angle); GasSensorGE* pGasSensorGE = new GasSensorGE( pt, angle ); // 关联到瓦斯管路上 pGasSensorGE->setRelatedGE( objId ); CheakLayerExit( GEName, 3,AcDb::kLnWt025 ); pGasSensorGE->setLayer(GEName); pGasSensorGE->setLineWeight(AcDb::kLnWt025); // 初始化并提交到数据库 if( !ArxUtilHelper::PostToModelSpace( pGasSensorGE ) ) delete pGasSensorGE; }