240 lines
5.4 KiB
C++
240 lines
5.4 KiB
C++
//-------------------------------------------------------------------------------------------------------+
|
|
// Copyright (C), 1998-2007, SH Software Co. Ltd.
|
|
// = FileName : 全局结构体,定义 头文件
|
|
// = Version : ver2.0
|
|
// = Author : zjq
|
|
// = CreateDate : 2002-09-09
|
|
// = Description: 全局结构体,定义 头文件
|
|
// = Maintainers:
|
|
//
|
|
//-------------------------------------------------------------------------------------------------------+
|
|
|
|
#ifndef _ADSXRX_H_
|
|
#define _ADSXRX_H_
|
|
|
|
#ifndef _XADSOSTREAM_H_
|
|
#include "XAdsOStream.h"
|
|
#endif
|
|
|
|
#include "accmd.h"
|
|
#include <map>
|
|
|
|
static const signed char sizeOfType[]={
|
|
0, //RTNONE 5000 /* No result */
|
|
sizeof(ads_real), //RTREAL 5001 /* Real number */
|
|
sizeof(ads_point), //RTPOINT 5002 /* 2D point X and Y only */
|
|
sizeof(short ), //RTSHORT 5003 /* Short integer */
|
|
sizeof(ads_real), //RTANG 5004 /* Angle */
|
|
sizeof(TCHAR *), //RTSTR 5005 /* String */ !!Bugs may occure
|
|
sizeof(ads_name), //RTENAME 5006 /* Entity name */
|
|
sizeof(ads_name), //RTPICKS 5007 /* Pick set */
|
|
sizeof(ads_real), //RTORINT 5008 /* Orientation */
|
|
sizeof(ads_point), //RT3DPOINT 5009 /* 3D point - X, Y, and Z, Mod by Z*/
|
|
sizeof(long), //RTLONG 5010 /* Long integer */
|
|
0, //RTSTRUCT 5011 // Bug may exist
|
|
};
|
|
|
|
enum FormatType
|
|
{
|
|
WS_CHAR,
|
|
WS_INT,
|
|
WS_DOUBLE,
|
|
WS_STRING,
|
|
WS_FORMAT
|
|
};
|
|
|
|
enum CurveType
|
|
{
|
|
CURVE_LINE,
|
|
CURVE_ARC,
|
|
CURVE_CIRCLE
|
|
};
|
|
|
|
enum ShapeType
|
|
{
|
|
SHAPE_UNKNOWN,
|
|
SHAPE_CIRCLE,
|
|
SHAPE_RECTANGLE,
|
|
SHAPE_POLY
|
|
};
|
|
|
|
//线段类型
|
|
enum BLType
|
|
{
|
|
BLINESEG, //直线段
|
|
BARCSEG //圆弧段
|
|
};
|
|
|
|
//extern "C"
|
|
//{
|
|
// extern HINSTANCE _hdllInstance;
|
|
//}
|
|
|
|
namespace XGeLib
|
|
{
|
|
extern GEOAPI BOOL g_bSaveProxyGraph; //默认不存储Proxy的图像
|
|
extern GEOAPI BOOL g_bLayoutRotate; //布图旋转
|
|
|
|
extern AcDbObjectId g_idViewportLayer;
|
|
|
|
extern GEOAPI BOOL g_bSnapCurveBase;//是否捕捉曲线对象的基线
|
|
|
|
// 在位编辑支持
|
|
extern GEOAPI BOOL g_bExplodeSubText;
|
|
|
|
extern GEOAPI double g_nCirDeviation;
|
|
extern GEOAPI BOOL g_bExplodeMesh;
|
|
|
|
extern GEOAPI const ads_point org_point;
|
|
|
|
extern GEOAPI BOOL g_bWblockMaterial;
|
|
extern GEOAPI BOOL g_bMonitorDbAction;
|
|
|
|
extern GEOAPI BOOL g_bFindExtSpace;
|
|
extern GEOAPI double g_nAcadVer;
|
|
extern GEOAPI BOOL g_bFastCalMode;
|
|
extern GEOAPI BOOL g_bEchoSearch;
|
|
extern GEOAPI int g_iPackMode;
|
|
|
|
extern GEOAPI double g_nExtWidth;
|
|
extern GEOAPI double g_nIntWidth;
|
|
extern GEOAPI double g_nIntWallWidth;
|
|
|
|
extern GEOAPI BOOL g_bSubEntity;//子对象处理状态
|
|
extern GEOAPI BOOL g_bStetchEntity;//是否正在拉伸
|
|
extern GEOAPI BOOL g_bSnapCurveBas;//是否捕捉曲线对象的基线
|
|
|
|
extern GEOAPI int (*g_ptrCodePageConvert)(const TCHAR *);
|
|
|
|
extern BOOL g_bPrinting;
|
|
extern double g_globleSnap;
|
|
|
|
extern TCHAR g_cKeyword;
|
|
|
|
extern ads_matrix ads_identmat;
|
|
|
|
extern GEOAPI BOOL g_bQuickCalWallExtent;
|
|
extern GEOAPI bool g_bIsWBlock;
|
|
|
|
extern GEOAPI const TCHAR *LZW_EXT;
|
|
extern GEOAPI const TCHAR *JPG_EXT;
|
|
extern GEOAPI const TCHAR *BMB_TITLE;
|
|
extern GEOAPI const TCHAR *JPB_TITLE;
|
|
extern unsigned _stklen;
|
|
|
|
extern GEOAPI ads_real _distSnap, _angSnap,_DIST_SNAP;
|
|
extern GEOAPI double g_fZero;
|
|
extern GEOAPI double g_distZero;
|
|
extern GEOAPI double g_angleZero;
|
|
extern GEOAPI XAdsOStream adsout;
|
|
|
|
extern GEOAPI const TCHAR *DWB_TITLE;
|
|
extern GEOAPI const TCHAR *SLD_EXT;
|
|
extern GEOAPI const TCHAR *SLB_TITLE;
|
|
|
|
// 所有自定义实体的基类
|
|
extern GEOAPI BOOL g_bOsnapExpl;
|
|
extern GEOAPI BOOL g_bGetExtents;
|
|
|
|
extern GEOAPI AcDbDatabase* g_pCurrentDb;
|
|
extern GEOAPI BOOL g_bDynInput;
|
|
extern GEOAPI int g_iMaxDynDimNum;//最多动态数量
|
|
extern GEOAPI int g_nSaveTArchVer; // 保存控制
|
|
extern GEOAPI BOOL g_bCtrlToggle;
|
|
extern GEOAPI BOOL g_bCtrlToggle1[];
|
|
|
|
extern GEOAPI TCHAR g_sDwbPath[];
|
|
extern GEOAPI TCHAR g_sAppPath[];
|
|
extern GEOAPI BOOL g_bSlabThickPolyline; //把含厚度的闭合多段线视为平板
|
|
extern GEOAPI BOOL g_bEnableAcis;
|
|
// 用于加密的变量
|
|
extern GEOAPI int g_nProtectCode;
|
|
extern GEOAPI BOOL g_bMakeBlock;
|
|
|
|
extern int g_nMaxCirDivNum;
|
|
|
|
extern GEOAPI BOOL g_bUpdateMViewBlock;
|
|
}
|
|
|
|
using namespace XGeLib;
|
|
|
|
typedef ads_real ads_vector[3];
|
|
|
|
typedef struct resbuf rbtype;
|
|
typedef ads_real (* MatrixPointer)[4];
|
|
|
|
typedef struct Binary
|
|
{
|
|
short length;
|
|
char *buffer;
|
|
}*STBINARY,*PSTBINARY;
|
|
|
|
struct extern_fun
|
|
{
|
|
const TCHAR *cmdname;
|
|
int (*cmdfunc)();
|
|
};
|
|
|
|
struct ArxCommandTable
|
|
{
|
|
const TCHAR *szCmdGlobal;
|
|
AcRxFunctionPtr pFun;
|
|
int nCmdFlag;
|
|
};
|
|
|
|
struct plan_para
|
|
{
|
|
double A, B, C, D;
|
|
};
|
|
|
|
struct INI_struct
|
|
{
|
|
TCHAR *desc_handle;
|
|
TCHAR *desc_value;
|
|
struct INI_struct *next;
|
|
};
|
|
|
|
struct r_g_b
|
|
{
|
|
ads_real red, blue, green;
|
|
};
|
|
|
|
|
|
struct Catalogue
|
|
{ //幻灯库的目录结构
|
|
char itemName[32];
|
|
long addr;
|
|
public:
|
|
|
|
Catalogue()
|
|
{
|
|
for (int i = 0; i< 32; i++)
|
|
{
|
|
itemName[i] = 0;
|
|
}
|
|
addr = 0;
|
|
}
|
|
};
|
|
|
|
typedef struct
|
|
{
|
|
short l;
|
|
short r;
|
|
unsigned char k;
|
|
} PACKTREE; //internal use in pack()
|
|
|
|
typedef struct
|
|
{
|
|
short p;
|
|
unsigned char k;
|
|
} UNPACKTREE; //internal use in unpack()
|
|
|
|
struct STDate
|
|
{
|
|
int da_year; /* current year */
|
|
TCHAR da_day; /* day of the month */
|
|
TCHAR da_mon; /* month (1 = Jan) */
|
|
};
|
|
|
|
#endif
|