Files
envi-code/SourceCode/Code2026/tg_shs/inc/TArch/symdef.h
T
2026-09-28 15:28:50 +08:00

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