362 lines
11 KiB
C++
362 lines
11 KiB
C++
#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
|