/******************************************************************** created: 2006/05/10 created: 10:5:2006 10:18 filename: f:\tg_dev\telecdev\tapi\teldef.h file path: f:\tg_dev\telecdev\tapi file base: teldef file ext: h author: 沈睿 purpose: 电气公共函数,全局变量 *********************************************************************/ #ifndef __TELDEF_H__ #define __TELDEF_H__ class CBreakPtList { public: CBreakPtList(XPoint ptFirst, XPoint ptEnd){m_ptFirst = ptFirst; m_ptEnd = ptEnd;}; XPoint m_ptFirst, m_ptEnd; }; //********************************************************************** // 电气全局变量 //********************************************************************** extern TELAPI CString g_csDwbPath, g_csSysPath, g_csLineTypeStyle; extern TELAPI double g_nBusLineWidth, g_nEqBlkLength, g_nWireDimScale, g_nEq2WallDist, g_nPointDia, g_nTerminalDia; extern TELAPI int g_iLastBlkMaxNum, g_iWireBreak, g_iWireNumType, g_iPlanWireIndex, g_iWireTextType, g_iToolbarPos; extern TELAPI double g_nDimHeight, g_nScaleDim, g_nWireNumHeight; extern TELAPI CString g_csDimStyle, g_csDimChnShx, g_csDimEngShx; extern TELAPI BOOL g_bToolbar, g_bTgOsnap, g_bWireAskInfo, g_bJoin2Wire, g_bAskInsBlk, g_bThickEquip, g_bDimWireSimple, g_bCloseLnGrid, g_bDrawWireDiv, g_bRotateAttrib; extern TELAPI CString g_csInsBlkName; extern TELAPI double g_nInsBlkRotate; //********************************************************************** // 电气导线变量 //********************************************************************** #define g_nCurWireWidth g_nWireWidth[g_iPlanWireIndex]*DocGetPScale() > 0.01 ? g_nWireWidth[g_iPlanWireIndex]*DocGetPScale() : 0.5*DocGetPScale() extern TELAPI BOOL g_bLineTypeByLayer; extern TELAPI double g_nWireWidth[21]; extern TELAPI double g_dBlkThickWidth; //图块加粗线宽 2011-9-1 sr add extern TELAPI double g_dBusLineWidth, g_dSysLineWidth; //系统导线 线宽 extern TELAPI double g_dWireWidthGround, g_dWireWidthLighting; //避雷 接地 线宽 extern TELAPI int g_iGourdWireLineType, g_iLightingWireLineType; //避雷 接地 线型 extern TELAPI BOOL g_bNeedUser[15]; extern TELAPI CString g_csUserName[15]; extern TELAPI int g_iWireDimNorm[21]; extern TELAPI CString g_csWireDimMode[21], g_csWireDimPlace[21], g_csWireDimRadius[21], g_csWireDimType[21], g_csWireLoop[21], g_csWireDimArea[21]; extern TELAPI CString g_csLineType[21]; //线型 //************************************************************************ // 电气公共函数 //************************************************************************ TELAPI resbuf *GetWireMask(); TELAPI resbuf *GetThickWireMask(); TELAPI BOOL IsBlkSocket(Entity ent); TELAPI BOOL IsBlkSwitchBoard(Entity ent); TELAPI BOOL IsBlkLight(Entity ent); TELAPI BOOL IsBlkSwitch(Entity ent); TELAPI BOOL IsWireCable(Entity ent); TELAPI BOOL IsBlkPowerEquip(Entity ent); TELAPI BOOL IsBlkWeakEquip(Entity ent); TELAPI BOOL IsBlkFireEquip(Entity ent); TELAPI Entity DrawLineWire(XPoint pt1, XPoint pt2, const TCHAR* szLayer = _T("导线")); TELAPI void GetWire2Point(Entity ent, XPoint &ptStart, XPoint &ptEnd); TELAPI BOOL GetAllWireInEq(PickSet &ssSel, Entity entEq, BOOL bIsTouch = TRUE, RBList &rbMask = RBList(GetThickWireMask())); TELAPI BOOL GetAllWireInEq(PickSet &ssSel, Entity entEq, XPointList &lstPt, RBList &rbMask); TELAPI void GetAllEqByWire(Entity entwire, Entity &ent1, Entity &ent2); TELAPI BOOL IsWireInEnt(Entity ent, Entity entEq, XPoint &ptConnect = XPoint()); TELAPI BOOL GetEquipPoint(Entity entBlk, XPointList &lstPt, double &nRadius);//得到设备块上的接线点, 如果是圆设备,返回圆心和半径 TELAPI void GetEquipLinkPath(Entity &ent1, Entity &ent2, const XPoint &ptPick, DList &lstPts); TELAPI BOOL IsSameBlk(CString csBlk1, CString csBlk2); //判断2个图块是否是同一图块 TELAPI Entity GetPtOnWall(XPoint pt); TELAPI Entity GetPtOnWindow(XPoint pt);// 给定1点, 得到该点上的窗, 柱 TELAPI Entity GetWireByPoint(XPoint pt); TELAPI Entity GetPWireByPoint(XPoint pt); //得到图块和导线相连时, 导线的两打断点 TELAPI void GetBlkBreakPt(Entity entBlk, Entity entBreak, double nBreLen, XPoint &ptBr1, XPoint &ptBr2); TELAPI BOOL IsBraLine(Entity ent); //是否是干线? TELAPI BOOL IsBusLine(Entity ent); //是否是干线? TELAPI BOOL LstDemoDisplayPoint(XPointList &lstPtIn, XPointList &lstPtOut, double dAngle = -1); TELAPI void ThickBlkPLine(Entity entBlk, double dWidth = -1); TELAPI void ThickBlkPLine(const TCHAR* szBlkName); TELAPI CString GetAttrib(Entity entTemp, const TCHAR*szTag, BOOL bIsVisable = TRUE); TELAPI BOOL DrawPLineWireBy2Equip(Entity oldent, Entity ent1, Entity ent2); TELAPI CString GetWireRemarkByInfo(const TCHAR* szCaption, const TCHAR* szVal); TELAPI Entity GetNearestEnt(PickSet &ssSel, XPoint pt); TELAPI void GetBlkBreakPtByPoly(XCircle cir, Entity entBreak, XPoint &ptBr1, XPoint &ptBr2); TELAPI void DoBreakPLine(Entity ent, DList &lstPt); TELAPI double GetWireWidth(Entity ent); TELAPI Entity GetCulBreakPWire(PickSet &ssAllBreak, PickSet &ssff); TELAPI void BreakMWire(Entity entSel, XPoint ptPick, XPoint ptPick2); TELAPI XCurveSegment GetBlkSel(Entity entBlk, XPoint ptPick); //绘制导线 TELAPI void DrawPLineWire(XPoly2D &xpoly, int iLayerIndex, BOOL bJoin); TELAPI void DrawPLineWire(XPoint ptStart, XPoint ptEnd, int iLayerIndex, BOOL bJoin = g_bJoin2Wire); TELAPI void DrawPArcWire(XPoint ptStart, XPoint ptMid, XPoint ptEnd, int iLayerIndex, BOOL bJoin = g_bJoin2Wire); TELAPI void DrawPArcWire(XArc arc, int iLayerIndex); TELAPI void DrawDivWire(XPoint ptStart, XPoint ptEnd, BOOL bIsBusWire, BOOL bNeed = TRUE, BOOL bIsEmptyMWire = FALSE); // 0: LAY_WIRE_ILLUME 照明 // 1: LAY_WIRE_POWER 动力 // 2: LAY_WIRE_FIRE 消防 // 3: LAY_WIRE_WEAK 弱电 // 4: LAY_WIRE_EMERG 照明-应急 // 5: LAY_WIRE_TEL 消防-电话 // 6: LAY_WIRE_BROAD 消防-广播 // 7: LAY_WIRE_CTRL 消防-控制 // 8: LAY_WIRE_SOURCE 消防-电源 // 9: LAY_WIRE_USER1 弱电-电视 // 10: LAY_WIRE_USER2 弱电-网络 // 11: LAY_WIRE_USER3 动力-控制 // 12: LAY_WIRE_USER4 动力-母线 // 13: LAY_WIRE_USER5 弱电-信号 // 14: LAY_WIRE_USER6 弱电-安防 // 15: LAY_WIRE_USER7 弱电-广播 // 16: LAY_WIRE_USER8 消防-启泵 // 17: LAY_WIRE_SOCKET 插座 // 18: LAY_WIRE_USER9 弱电-控制 // 19: LAY_WIRE_USER10 弱电-电话 // 20: LAY_WIRE_USER11 弱电-综合布线 // 21: LAY_WIRE_USER12 备用 // 22: LAY_WIRE_OPTICAL_CABLE 光缆 axc add 2014-07-28 // 23: LAY_WIRE_THUNDER 避雷 axc add // 24: LAY_WIRE_GROUND 接地 axc add inline CString GetWireLayer(int Index=-1) { CString csLayer[] = {LAY_WIRE_ILLUME,LAY_WIRE_POWER,LAY_WIRE_FIRE,LAY_WIRE_WEAK, LAY_WIRE_EMERG,LAY_WIRE_TEL,LAY_WIRE_BROAD,LAY_WIRE_CTRL, LAY_WIRE_SOURCE,LAY_WIRE_USER1,LAY_WIRE_USER2,LAY_WIRE_USER3, LAY_WIRE_USER4, LAY_WIRE_USER5,LAY_WIRE_USER6,LAY_WIRE_USER7,LAY_WIRE_USER8, LAY_WIRE_SOCKET,LAY_WIRE_USER9,LAY_WIRE_USER10,LAY_WIRE_USER11,LAY_WIRE_USER12,LAY_WIRE_OPTICAL_CABLE ,LAY_WIRE_THUNDER,LAY_WIRE_GROUND}; if(Index == -1) return csLayer[0]; else return csLayer[Index]; } inline int GetWireLayerIndex(const TCHAR* szLayer) { CString Layer = szLayer; CString csLayer[] = {LAY_WIRE_ILLUME,LAY_WIRE_POWER,LAY_WIRE_FIRE,LAY_WIRE_WEAK, LAY_WIRE_EMERG,LAY_WIRE_TEL,LAY_WIRE_BROAD,LAY_WIRE_CTRL, LAY_WIRE_SOURCE,LAY_WIRE_USER1,LAY_WIRE_USER2,LAY_WIRE_USER3, LAY_WIRE_USER4, LAY_WIRE_USER5,LAY_WIRE_USER6,LAY_WIRE_USER7,LAY_WIRE_USER8, LAY_WIRE_SOCKET,LAY_WIRE_USER9,LAY_WIRE_USER10,LAY_WIRE_USER11,LAY_WIRE_USER12,LAY_WIRE_OPTICAL_CABLE ,LAY_WIRE_THUNDER,LAY_WIRE_GROUND}; //for(int i=0;i<22;i++) for(int i=0;i<25;i++){ if(Layer == csLayer[i]) return i; } return -1; } inline CString GetWireDimLayer(LPCTSTR strLayer) { if (strLayer == NULL) { return LAY_DIM_SYSTEM; } //bsl 2011.10.20 增加导线标注图层(与导线图层一一对应) CString strRet = _T(""); int nIndex = GetWireLayerIndex(strLayer); CString sDimLayer[] = {LAY_DIM_ILLUME,LAY_DIM_POWER,LAY_DIM_FIRE,LAY_DIM_WEAK, LAY_DIM_EMERG, LAY_DIM_TEL, LAY_DIM_BROAD, LAY_DIM_CTRL, LAY_DIM_SOURCE,LAY_WIRE_DIM_USER1, LAY_WIRE_DIM_USER2, LAY_WIRE_DIM_USER3, LAY_WIRE_DIM_USER4, LAY_WIRE_DIM_USER5,LAY_WIRE_DIM_USER6,LAY_WIRE_DIM_USER7,LAY_WIRE_DIM_USER8, LAY_DIM_SOCKET,LAY_WIRE_DIM_USER9,LAY_WIRE_DIM_USER10,LAY_WIRE_DIM_USER11,LAY_WIRE_DIM_USER12,LAY_DIM_OPTICAL_CABLE ,LAY_DIM_THUNDER,LAY_DIM_GROUND}; if (nIndex != -1) { strRet = sDimLayer[nIndex]; } else strRet = LAY_DIM_SYSTEM; return strRet; } #define XD_BRADATA _T("bradata") // sr add app reg #define XD_BUSDATA _T("busdata") // sr add app reg #define XD_LINENUM _T("linenum") // sr add app reg #define XD_ELEMENT _T("Element") // sr add app reg #define g_nBlkLength 1500 #define DIV_DIST g_nBlkLength/2 #endif // __TELDEF_H__