#ifndef __SYMDEF_H #define __SYMDEF_H // global //#include "DocReactor.h" #define CFG_PScale DocGetPScale() #define CFG_LHeight DocGetLHeight() #define CFG_WCrude DocGetWCrude() #define CFG_DrawMode DocGetDrawMode() #define g_idWallMaterial DocGetWallMaterial() #define g_bSolidFill DocGetIsSolidFill() #define g_nSpaceDispMode DocGetSpaceDispMode() #define g_nInsulateThickness DocGetInsulateThickness() #define g_bDimAreaUnit DocGetIsDimAreaUnit() #define g_nMinLenWall DocGetMinLenWall() #define g_lWallWidth DocGetLWallWidth() #define g_rWallWidth DocGetRWallWidth() #define g_bDwgBegin DocGetIsDwgBegin() #define g_bAcadIdle DocGetIsAcadIdle() #define g_ssPickFirst DocGetPickFirst() #define g_bIntWall3DVisible DocGetInt3DWallVisible() #define g_nDetailScale DocGetDetailScale() #define g_nDrawWall DocGetDrawMode() #define g_szLastCommand DocGetLastCommand() #define g_bUpdateDisp DocGetIsUpdateDisp() #define g_nOsnapType DocGetWallOsnapType() #define g_bShowBase DocGetShowBase() #define g_bLispCommand DocGetIsLispCommand() #define g_sCurCommand DocGetCurCommand() //extern TARCH_IMPEXP BOOL g_bSaveProxyGraph; extern TARCH_IMPEXP BOOL g_bModelNumber; extern TARCH_IMPEXP double g_nWinStep; extern TARCH_IMPEXP double g_nWallStep; extern TARCH_IMPEXP BOOL g_bDynamicCoord; extern TARCH_IMPEXP BOOL g_bABCoord; extern TARCH_IMPEXP int g_nDimAdjust; extern TARCH_IMPEXP int g_nSpeedMenu; extern TARCH_IMPEXP int g_nDimNumGripTip; extern TARCH_IMPEXP BOOL g_nLineDimArrow; extern TARCH_IMPEXP BOOL g_nAngleDimArrow; // sg add 120412,根据9.0需求,增加设置弧长标注样式的设置 extern TARCH_IMPEXP int g_nArcLenDimType; // sg add 090609,带形窗幕墙样式,比例改变后不改样式 extern TARCH_IMPEXP BOOL g_bCurtainWallFixStyle; // sg add 090609,带形窗幕墙样式,不改样式时的设定类型 extern TARCH_IMPEXP int g_nCurtainWallStyle; extern TARCH_IMPEXP double g_nCurtainWall3Scale; extern TARCH_IMPEXP int g_nWallBaseColor; extern TARCH_IMPEXP double g_nDistPrec; extern TARCH_IMPEXP BOOL g_bDimAngle; extern TARCH_IMPEXP BOOL g_bDynDim; //extern TARCH_IMPEXP TCHAR g_sDwbPath[]; extern TARCH_IMPEXP HINSTANCE g_hTchDll; // sg add 100125,是否显示楼层框对象 extern TARCH_IMPEXP BOOL g_bShowFloorRect; // sg add 100601 extern TARCH_IMPEXP BOOL g_bIgnoreAttach; // 一轴多号时,是否忽略附加轴号 extern TARCH_IMPEXP int g_nAfterYAxisStyle; // 字母Y后面采用的注脚形式 // sg add 100714 extern TARCH_IMPEXP BOOL g_bWallHasInsulateCap; // 墙体保温是否封口 // sg delete 101209,根据讨论,暂时去掉高级选项中的该设置 // sg add 101105 // extern TARCH_IMPEXP BOOL g_bUniformSpaceDim; // 房间面积标注方式是否统一控制 // TArch9.0 extern TARCH_IMPEXP int g_bNorthThumbTextDir; // sg add 111221,增加指北针文字方向的的全局变量 //extern TARCH_IMPEXP int g_nProtectCode; //extern TARCH_IMPEXP int g_nArchType; extern TARCH_IMPEXP int g_nLicenseMode; //extern TARCH_IMPEXP BOOL g_bLayoutRotate; //布图旋转 //extern TARCH_IMPEXP int g_nSaveTArchVer; extern TARCH_IMPEXP const TCHAR *xgAppname; extern TARCH_IMPEXP BOOL g_bAxisWall; extern TARCH_IMPEXP int g_nProductId; #define EXP_NONE 0 #define EXP_TCH 1 // OEM定制方式 #define CUSTOM_NO_STATUS 0x01 //比例状态 #define CUSTOM_NO_TIPS 0x02 //日积月累 #define CUSTOM_NO_OPTIONS 0x04 //选项,obsolete #define CUSTOM_NO_DMLOAD 0x08 //按需加载 #define CUSTOM_NO_DRAGVP 0x10 //视口拖动 #define CUSTOM_NO_STATBUT 0x20 //状态按钮 ////////////////////////////////////////////////////////// // Symbol // 系统图块定义 #define SYS_DOOR2D _T("TCHSYS(DOOR2D)") //DORLIB2D(00000001) 二维门 #define SYS_WIN2D _T("TCHSYS(WIN2D)") // WINLIB2D(00000001) 二维窗 #define SYS_DOOR3D _T("TCHSYS(DOOR3D)") // WDLIB3D(00000046) 三维门 #define SYS_WIN3D _T("TCHSYS(WIN3D)") // WDLIB3D(00000162) 三维窗 #define SYS_TWODOOR _T("TCHSYS(TWODOOR)") // WDLIB3D(00000093) 子母门 #define SYS_DWIN3D _T("TCHSYS(DWIN3D)") //WDLIB3D(00000023) 门联窗-三维窗 #define SYS_WDOOR3D _T("TCHSYS(WDOOR3D)") // WDLIB3D(00000068) 门联窗-三维门 #define SYS_LDOR12D _T("TCHSYS(LDOR12D)") // WINLIB2D(00000012) 旁开电梯门 #define SYS_LDOR22D _T("TCHSYS(LDOR22D)") //WINLIB2D(00000013) 中分电梯门 #define SYS_LDOOR3D _T("TCHSYS(LDOOR3D)") //WDLIB3D(00000150) 三维电梯门 #define SYS_EWIN _T("TCHSYS(EWIN)") // EWDLib(00000002) 立面窗 #define SYS_EDOOR _T("TCHSYS(EDOOR)") //EWDLib(00000120) 立面门 #define SYS_EBAL _T("TCHSYS(EBAL)") //EBalLib(00000015) 立面阳台 #define LAY_KEY _T("_TCH_KEY") #define LAY_BOUNDARY _T("_TCH_BOUNDARY") typedef TCHAR * PSTRING; extern TARCH_IMPEXP PSTRING LAY_STD, //当前绘图图层标准 LAY_TEMP, //临时 LAY_BALCONY, //阳台 LAY_AXIS, //轴线 LAY_AXIS_TEXT, //轴号的文字 LAY_BORDER, //图框 LAY_COLU, //柱子 LAY_DOOR, //门 LAY_DIM, //标注 LAY_ELEV_DIM,//标高 LAY_INDEX_DIM,//索引标注 LAY_LEADER_DIM,//引出标注 LAY_COORD_DIM,//坐标 LAY_COORD_GRID,//坐标网格 LAY_LSCP_ROAD,//景观路 LAY_BUILD_OUTLINE,//建筑轮廓 LAY_OTHER_DIM,//其它 LAY_NORTHTHUMB_DIM,//指北针 LAY_DIMAX, //轴号 LAY_ENVELOP, LAY_ERRORMSG, //错误信息 LAY_GROUND, //地面 LAY_RAMP, //jsx add 160621, 地形 LAY_ROAD, // sg add 100323,道路 LAY_ROADDOTE, // sg add 100323,道路中心线 LAY_TREE, // sg add 100323,树 LAY_PKNG_TSRP, // sg add 111209,停车位 LAY_PKNG_SING, // jsx add 160621,停车位编号 LAY_HATCH, //填充 LAY_ROOF, //屋顶 LAY_HANDRAIL, LAY_TEXT, //文字 LAY_SHEET, //表格 LAY_CURTWALL, //幕墙 LAY_BEAM,//梁 LAY_SLAB,//板 LAY_WALL, //双线墙 LAY_WIN, //窗 LAY_HOLE2D, //洞 LAY_FIRE_DOOR, // sg add 110120,防火门 LAY_FIRE_WIN, // sg add 110120,防火窗 LAY_FIRE_JL, // sg add 110120,防火卷帘 LAY_RAIL, LAY_STAIR, LAY_ELEVATOR, // sg add 100323,电梯 LAY_SANIWARE,//洁具 LAY_LATRINE,//卫生隔断 LAY_SPACE, //使用面积和面积标注 LAY_HOUSE_SPACE, //套内面积 LAY_BUILDING_SPACE,//建筑面积 LAY_SHARE_SPACE, //公摊面积 LAY_HOLE_SPACE, //洞口面积 LAY_BALCONY_SPACE, // sg add 090527,套内阳台面积 LAY_SPACE_HATCH, // sg add 090527,房间面积填充 LAY_SURFACE, //墙体面层 LAY_OPENING_DIM, //门窗标注 LAY_FILEOPENING_DIM, // sg add 110120,防火门窗标注 LAY_VIEWPORT, LAY_VIEW, LAY_ARCH_STRM, // sg add 100115,平面雨水管线 LAY_FLOOR_RECT, // sg add 100120,楼层框 LAY_CLNG_GRID, // sg add 100120,分格线 LAY_DRAWINGNAME_DIM, // sg add 111116,图名标注,临时放到这里,稍后9.0的时候,还是应该转移到Symdef.h文件中 LAY_MODI_DIM, // sg add 120319,云线图层 LAY_THICK_LINE;//TArch3墙柱加粗 extern TARCH_IMPEXP PSTRING LAY_S_WIN, // SectWindow 4 剖面窗户 LAY_S_DOOR, // SectDoor 4 剖面门 LAY_S_COMP, // SectComp 7 剖面构件 LAY_S_LINE, LAY_S_STAIR, //剖面楼梯 LAY_S_SURFACE, // sg add 110401,剖面面层 LAY_S_BLOCK; extern TARCH_IMPEXP PSTRING LAY_E_ROOF, // ElevRoof 2 立面屋顶 LAY_E_FLOOR, // ElevFloor 2 层间线 LAY_E_WIN, //ElevWindow 4 立面窗户 LAY_E_DOOR, // ElevSectDoor 4 立面门 LAY_E_COMP, // ElevComp 7 立面构件 LAY_E_BLOCK, LAY_E_STAIR, //立面楼梯 LAY_E_STRM, // sg add 100115,立面雨水管线 LAY_E_LINE; extern TARCH_IMPEXP PSTRING LAY_3DGLASS, //窗玻璃 LAY_3DFRAME; //窗框 extern TARCH_IMPEXP PSTRING LAY_SUN_BUILD, LAY_SUN_WINDOW, LAY_SUN_SHADOW; extern TARCH_IMPEXP PSTRING LAY_WALL_DIVIDER, LAY_WALL_FILL, LAY_WALL_BRICK, LAY_WALL_ROCKET, LAY_WALL_CONCRETE, LAY_WALL_PARAPET, LAY_COLU_BRICK, LAY_COLU_ROCKET, LAY_COLU_CONCRETE, LAY_REDLINE, LAY_COLU_STEEL; extern TARCH_IMPEXP PSTRING LAY_FURN; #define BLK_AXISNOS _T("_AXNO?_") #define TEXTSIZE 3.5 // TextStyle enum TDimStyle { DS_STANDARD=0, //默认 DS_LINEAR=1, //线性 DS_ANGLE=2, //角度 DS_RADIUS=3, //半径 }; enum TTextStyle { TS_NULL=9, // 占为标准名称使用 TS_STANDARD=0, // 默认 TS_AXIS=1, // 轴号 TS_WINDOW=2, // 门窗编号 TS_LABEL=3, // 索引圆圈文字 TS_DIM=4, // 尺寸标注 TS_DIMFONT=5, // 旧版上华的尺寸文字样式 TS_WDTABLE=6, // 门窗表 TS_SPACE=7, // 房间标注 TS_SUNANA=8, // 日照分析 // sg add 120106,根据建筑9.0增加的新文字样式 TS_TABLE=10, // 表格文字 TS_INDEXSCALE=11, // 索引图名比例 TS_SECTION=12, // 剖切符号 TS_DRAWINGNAME=13, // 图名标注 TS_NORTHTHUMB=14, // 指北针文字 TS_SYMBOL=15, // 其他符号 TS_PKNGTSRP = 16, // 停车位 }; #define DRAW_2D 0x01 #define DRAW_3D 0x02 #define TCHXD _T("_SHS") //扩展实体数据的应用程序名称 #define SPF_AREA 0x01 // 标注面积 #define SPF_UNIT 0x02 // 标注单位 #define SPF_CODE 0x04 // 标注编号,即不标注名称 #define SPF_NAME_AND_CODE 0x08 // 标注名称和编号 #define SPF_NULL 0x10 // 不标注名称,也不标注编号 // 取全局注册表位置 TARCH_IMPEXP const TCHAR * GetRegLocation(); TARCH_IMPEXP int GetCustomFlag(); //TARCH_IMPEXP XString Point2d2Str(const XPoint &pt); //TARCH_IMPEXP XString Point3d2Str(const XPoint &pt); //TARCH_IMPEXP XString Dist2Str(double nDist); //TARCH_IMPEXP XString Angle2Str(double nDist); //TARCH_IMPEXP BOOL IsAcadDwgView(HWND); TARCH_IMPEXP BOOL IsCommandLineEmpty(); TARCH_IMPEXP BOOL IsAcadIdle(); //TARCH_IMPEXP XString GetSymbolName(AcDbObjectId idSymbolRec); TARCH_IMPEXP AcDbObjectId MakeTBlockInsert(const TCHAR *pszBlock, XPoint ptInsert, double sx, double sy, double sz, double rot, int nMask=0); TARCH_IMPEXP int GetBlockBoundary(AcDbObjectId idBlock, XPoly2D &poly, BOOL bAddIfNone); //初始化一个图层, 确保它已经存在; 如果没有则新建, 图层的颜色采用系统设定, bApplychange是否施加图层的变化(如果新建图层) TARCH_IMPEXP AcDbObjectId InitLayer(const TCHAR *szLayer, BOOL bApplyChange=TRUE); TARCH_IMPEXP AcDbObjectId InitLayer(const TCHAR *szLayer, AcDbDatabase*pDb); TARCH_IMPEXP void InitLayers(BOOL bTrue); TARCH_IMPEXP void InitTextStyles(BOOL bTrue);// 初始化文字样式变量,sg add 101229 TARCH_IMPEXP AcDbObjectId InitLayerEx(const TCHAR *szLayer, BOOL bApplyChange=TRUE);//由中文图层关键字组合创建图层 TARCH_IMPEXP AcDbObjectId InitBlock(const TCHAR *pszBlock, AcDbDatabase *pDb=NULL); TARCH_IMPEXP AcDbObjectId InitDimStyle(TDimStyle ds); TARCH_IMPEXP CString GetLayerNames(const TCHAR * szTgSubName); TARCH_IMPEXP int GetApplicationPath(TCHAR *vPath); TARCH_IMPEXP AcDbObjectId InitTextStyle(const TCHAR *pszStyle, AcDbDatabase *pDb=NULL); TARCH_IMPEXP int GetTextStyleColor(AcDbObjectId idStyle); // 下列函数与文字管理命令的界面和文件相互关联,返回内部数据 // 创建一个文字样式 TARCH_IMPEXP AcDbObjectId InitTextStyle(TTextStyle ts, AcDbDatabase *pDb=NULL); // 返回文字样式名称 TARCH_IMPEXP CString GetTextStyleName(TTextStyle ts); // 返回文字的字高,这个字高不是文字样式的字高,而是文字的高度 TARCH_IMPEXP double GetTextHeightByTs(TTextStyle ts); // 返回文字的颜色,这个颜色也是与字高一样,与文字样式无关,而是文字的实际颜色 TARCH_IMPEXP int GetTextColorByTs(TTextStyle ts); #define WM_TCH_OPEN_FILE (WM_USER+0x0100) #define WM_TCH_LAYER_CHANGED (WM_USER+0x0101) #define WM_TCH_UPDATE_MATERIAL (WM_USER+0x0102) #define WM_TCH_SAVE_TOOLBAR (WM_USER+0x0103) class TARCH_IMPEXP TKeyMaps { public: virtual BOOL Key2Command(CString&sCommand)const=0; }; extern TARCH_IMPEXP const TKeyMaps* g_pKeyMapTable; extern TARCH_IMPEXP BOOL g_bEnableShortCut; //wlw add 2014.1.8单选实体时,返回值左键右键都是-5001无法区分acedEntSel,特加入消息判断 //0:左键,1、右键,2:空格、回车,3:ESC键 global.cpp class TARCH_IMPEXP THookMsg { public: THookMsg(); ~THookMsg(); int GetValue(); //0:左键,1、右键,2:空格、回车,3:ESC键 protected: #if ADS > 22 static bool ListenMsg(MSG* pMsg); #else static BOOL ListenMsg(MSG* pMsg); #endif private: static int s_iValue; }; #endif