1632 lines
44 KiB
C++
1632 lines
44 KiB
C++
#ifndef __DBCONFIG_H
|
|
#define __DBCONFIG_H
|
|
|
|
//#include "entityfield.h"
|
|
////////////////////////////////////////////////
|
|
// 目前仅存储全局变量
|
|
// CFG_PScale,
|
|
// CFG_LHeight,
|
|
// CFG_WCrude;
|
|
// CFG_DrawMode;
|
|
#define CONF_HIDE_IWALL 0x01 //隐藏内墙
|
|
#define CONF_INVALID_EVER 0x02 //曾经非法使用
|
|
#define CONF_INVALID_LAST 0x04 //最近非法使用
|
|
#define CONF_HIDE_LEVEL 0x08 //隐藏层间线
|
|
#define CONF_PREC2 0x10 //坐标和标高默认2位小数(否则3位)
|
|
#define CONF_SINGLE_SECT 0x20 //单剖断(新国标)
|
|
#define CONF_CAP_LABEL 0x40 //门窗名称自动转大写
|
|
#define CONF_METER_UNIT_DRAW 0x80 //米单位绘制
|
|
#define CONF_METER_UNIT_DIM 0x100 //米单位尺寸标注
|
|
#define CONF_NO_PRESEL 0x200 //禁止选择预览
|
|
extern TARCH_IMPEXP double g_nText2Base;
|
|
extern TARCH_IMPEXP double g_nText2BaseRatio;
|
|
//extern TARCH_IMPEXP AcDbDatabase *g_pCurrentDb; // sg add 081127
|
|
extern TARCH_IMPEXP double g_dDrawIndexTextRatio; // sg add 090512,圆圈文字字高系数
|
|
extern TARCH_IMPEXP double g_dAxisLabelTextRatio; // sg add 090512,轴号字高系数
|
|
extern TARCH_IMPEXP double g_nCurtainWall3Scale; // sg add 090512,带形窗幕墙改变样式的比例界限
|
|
extern TARCH_IMPEXP BOOL g_bCurtainWallFixStyle; // sg add 090512,带形窗幕墙比例改变后是否不改样式
|
|
extern TARCH_IMPEXP int g_nCurtainWallStyle; // sg add 090512,带形窗幕墙,不改样式时的设定类型
|
|
extern TARCH_IMPEXP BOOL g_bDrawIndexOldStyle;// sg add 090612,圆圈文字不使用旧样式
|
|
extern TARCH_IMPEXP BOOL g_bDIOutCircleStyle; // sg add 110124,圆圈文字支持出圈样式
|
|
// sg add 110301,增加三角形标高符号、圆点标高符号默认直径或尺寸大小
|
|
extern TARCH_IMPEXP double g_dEleTriangleSize;
|
|
extern TARCH_IMPEXP double g_dEleDoteSize;
|
|
// jsx add 160517,增加十字标高符号默认为线长
|
|
extern TARCH_IMPEXP double g_dEleCrossSize;
|
|
|
|
class TARCH_EXP TDbConfig: public AcDbObject {
|
|
#if (ADS>14)
|
|
private:
|
|
void *operator new[](size_t nSize) { return 0;}
|
|
void operator delete[](void *p) {};
|
|
void *operator new[](size_t nSize, const TCHAR *file, int line) { return 0;}
|
|
#endif
|
|
static const Adesk::UInt8 g_nVersion; //当前版本
|
|
protected:
|
|
|
|
// add by gjm for t20 2014/02/13
|
|
// 添加三个变量, 分别为 标高标注、坐标标注、符号标注 三个实体记录是否为 随层 或 当前层
|
|
bool m_bByLayerForSym; // 符号是否随层 true 为随层
|
|
bool m_bByLayerForDOR; // 坐标是否随层 true 为随层
|
|
bool m_bByLayerForElev; // 标高是否随层 true 为随层
|
|
// end
|
|
|
|
double m_nPScale; //当前绘图比例
|
|
double m_nLHeight; //当前层高
|
|
Adesk::UInt16 m_nDrawMode; //绘图方式2D/3D
|
|
Adesk::UInt8 m_bSolidFill, m_bLineWeight; //是否填实, 是否加粗
|
|
Adesk::UInt8 m_nSpaceDispMode, m_bShowWallBase;
|
|
// Add member
|
|
double m_nHighBold; //粗线
|
|
double m_nElevDiff; //室内外高差=室内-室外
|
|
Adesk::UInt8 m_bCheckDim; //尺寸检查开关
|
|
Adesk::UInt8 m_bDimAreaUnit; //是否标注面积单位, 已经不再使用
|
|
|
|
Adesk::UInt32 m_nControlFlag;
|
|
|
|
// TArch6 data
|
|
double m_nText2Base; // 文字到基线的距离,图纸单位
|
|
double m_nDetailScale; //详图比例, 当对象比例小于这个比例时,启用详图填充图案和线宽
|
|
// 标准填充名称 比例 >= 100
|
|
XString m_sHatchDivider1, //隔墙
|
|
m_sHatchFill1, //填充墙
|
|
m_sHatchFill11, //填充墙1,TArch7
|
|
m_sHatchFill21, //填充墙2,TArch7
|
|
m_sHatchBrick1, //砖墙柱
|
|
m_sHatchRocket1, //石墙柱
|
|
m_sHatchConcrete1, //砼墙柱
|
|
m_sHatchSteel1; //钢墙柱
|
|
// 详图填充名称(一般图案填充)比例 < 100
|
|
XString m_sHatchDivider2, //隔墙
|
|
m_sHatchFill2, //填充墙
|
|
m_sHatchFill12, //填充墙1,TArch7
|
|
m_sHatchFill22, //填充墙2,TArch7
|
|
m_sHatchBrick2, //砖墙柱
|
|
m_sHatchRocket2, //石墙柱
|
|
m_sHatchConcrete2,//砼墙柱
|
|
m_sHatchSteel2; //钢墙柱
|
|
// 线粗细
|
|
// 比例 >= 100
|
|
double m_nBoldDivider1, //隔墙
|
|
m_nBoldFill1, //填充墙
|
|
m_nBoldFill11, //填充墙1,TArch7
|
|
m_nBoldFill21, //填充墙2,TArch7
|
|
m_nBoldBrick1, //砖墙柱
|
|
m_nBoldRocket1, //石墙柱
|
|
m_nBoldConcrete1, //砼墙柱
|
|
m_nBoldSteel1; //钢墙柱
|
|
// 比例 < 100
|
|
double m_nBoldDivider2, //隔墙
|
|
m_nBoldFill2, //填充墙
|
|
m_nBoldFill12, //填充墙1,TArch7
|
|
m_nBoldFill22, //填充墙2,TArch7
|
|
m_nBoldBrick2, //砖墙柱
|
|
m_nBoldRocket2, //石墙柱
|
|
m_nBoldConcrete2, //砼墙柱
|
|
m_nBoldSteel2; //钢墙柱
|
|
|
|
//标志,TArch7
|
|
int m_nDividerFlag, //隔墙
|
|
m_nFillFlag, //填充墙
|
|
m_nFill1Flag, //填充墙1
|
|
m_nFill2Flag, //填充墙2
|
|
m_nBrickFlag, //砖墙柱
|
|
m_nRocketFlag, //石墙柱
|
|
m_nConcreteFlag, //砼墙柱
|
|
m_nSteelFlag; //钢墙柱
|
|
|
|
// 详图线图案图块
|
|
AcDbHardPointerId m_idHatchDivider, //隔墙
|
|
m_idHatchFill, //填充墙
|
|
m_idHatchFill1, //填充墙1,TArch7
|
|
m_idHatchFill2, //填充墙2,TArch7
|
|
m_idHatchBrick, //砖墙柱
|
|
m_idHatchRocket, //石墙柱
|
|
m_idHatchConcrete,//砼墙柱
|
|
m_idHatchSteel; //钢墙柱
|
|
|
|
//填充色,TArch7
|
|
Adesk::UInt16 m_nDividerColor,
|
|
m_nFillColor,
|
|
m_nFill1Color,
|
|
m_nFill2Color,
|
|
m_nBrickColor,
|
|
m_nRocketColor,
|
|
m_nConcreteColor,
|
|
m_nSteelColor;
|
|
|
|
AcDbHardPointerId m_idLinetypeDote, m_idLinetypeDash;
|
|
|
|
//TArch7
|
|
XString m_sProjectFile;//所属工程数据库
|
|
XString m_sLayerStd;//图层标准
|
|
|
|
//TArch8
|
|
double m_nText2BaseRatio;//文字距离基线系数(相对字高)
|
|
Adesk::UInt8 m_nSpaceAreaPrecision; // 房间面积标注,小数位数标记,sg add 081126
|
|
double m_dDrawingIndexTextRatio; // 索引图名中,文字大小的控制比例,sg add 090115
|
|
Adesk::UInt8 m_bOldDrawingIndex; // 索引图名中,圆圈文字文字样式
|
|
double m_dEleTriangleSize; // 标高标注中,三角符号的大小,sg add 090212
|
|
double m_dEleDoteSize; // 标高标注中,圆点符号的大小
|
|
double m_dMultiLeaderDistRatio; // 引出标注,末端对齐,文字距离基线末端的距离系数(相对字高),sg add 090216
|
|
TEntityFields m_allFields;//动态数据,树状查询,add by whl on 090401
|
|
|
|
// TArch9
|
|
Adesk::UInt8 m_nArcLenDimType; // sg add 120412,根据9.0需求,增加设置弧长标注样式的设置
|
|
// sg add 120413,用于解决旧的尺寸标注,有可能箭头标注大小固定为2的问题,至少让它看上去是一样大的,0表示旧版本,1表示9以上版本
|
|
Adesk::UInt8 m_nDealOldDimArrowSize;
|
|
|
|
//TArch20v3
|
|
double m_dEleCrossSize; // 标高标注中,十字标高符号线长
|
|
public:
|
|
TDbConfig();
|
|
~TDbConfig();
|
|
|
|
// add by gjm 2014/02/13
|
|
void SetDORLayerType(bool bValue) {m_bByLayerForSym = bValue;}
|
|
void SetSymbolLayerType(bool bValue) {m_bByLayerForDOR = bValue;}
|
|
void SetElevLayerType(bool bValue) {m_bByLayerForElev = bValue;}
|
|
bool GetDORLayerType() {return m_bByLayerForSym;}
|
|
bool GetSymbolLayerType() {return m_bByLayerForDOR;}
|
|
bool GetElevLayerType() {return m_bByLayerForElev;}
|
|
// end
|
|
|
|
void SetFromGlobal();
|
|
void UpdateToGlobal() const;
|
|
|
|
//动态扩展数据
|
|
const TEntityFields & GetFields()const{return m_allFields;}
|
|
TEntityFields& Fields(){return m_allFields;}
|
|
|
|
double GetPScale() const { return m_nPScale; }
|
|
double GetLHeight() const { return m_nLHeight; }
|
|
Adesk::UInt16 GetDrawMode() const { return m_nDrawMode; }
|
|
Adesk::UInt8 IsSolidFill() const { return m_bSolidFill; }
|
|
Adesk::UInt8 IsLineWeight() const { return m_bLineWeight; }
|
|
Adesk::UInt8 GetSpaceDispMode() const { return m_nSpaceDispMode; }
|
|
Adesk::UInt8 IsShowWallBase() const { return m_bShowWallBase; }
|
|
double GetHighBold() const { return m_nHighBold; }
|
|
double GetElevDiff() const { return m_nElevDiff; }
|
|
Adesk::UInt8 IsCheckDim() const { return m_bCheckDim; }
|
|
Adesk::UInt32 GetControlFlag() const { return m_nControlFlag; }
|
|
BOOL IsHideIntWall() const { return ((m_nControlFlag&CONF_HIDE_IWALL)!=0); }
|
|
BOOL IsHideLevel() const { return ((m_nControlFlag&CONF_HIDE_LEVEL)!=0); }
|
|
BOOL IsPrec2() const {
|
|
return ((m_nControlFlag&CONF_PREC2)!=0);
|
|
}
|
|
BOOL IsSingleSect() const {
|
|
return ((m_nControlFlag&CONF_SINGLE_SECT)!=0);
|
|
}
|
|
BOOL IsCapLabel() const {
|
|
return ((m_nControlFlag&CONF_CAP_LABEL)!=0);
|
|
}
|
|
BOOL IsMeterUnitDraw()const{
|
|
return ((m_nControlFlag&CONF_METER_UNIT_DRAW)!=0);
|
|
}
|
|
BOOL IsMeterUnitDim()const{
|
|
return ((m_nControlFlag&CONF_METER_UNIT_DIM)!=0);
|
|
}
|
|
BOOL IsSelectPreview()const{
|
|
return ((m_nControlFlag&CONF_NO_PRESEL)==0);
|
|
}
|
|
AcDbObjectId GetLinetypeDote() const {
|
|
return m_idLinetypeDote;
|
|
}
|
|
AcDbObjectId GetLinetypeDash() const {
|
|
return m_idLinetypeDash;
|
|
}
|
|
|
|
// 填充和线粗
|
|
double GetText2Base() const {
|
|
return m_nText2Base;
|
|
}
|
|
double GetText2BaseRatio()const
|
|
{
|
|
return m_nText2BaseRatio;
|
|
}
|
|
double GetDetailScale() const {
|
|
return m_nDetailScale;
|
|
}
|
|
CString GetHatchDivider(BOOL bDetail) const {
|
|
return bDetail? (IsDividerLineHatch()?(LPCTSTR)GetLineHatch(0):(const TCHAR *)m_sHatchDivider2 ): (const TCHAR *)m_sHatchDivider1;
|
|
}
|
|
CString GetHatchFill(BOOL bDetail) const {
|
|
return bDetail? (IsFillLineHatch()?(LPCTSTR)GetLineHatch(1):(const TCHAR *)m_sHatchFill2 ): (const TCHAR *)m_sHatchFill1;
|
|
}
|
|
CString GetHatchFill1(BOOL bDetail) const {
|
|
return bDetail? (IsFill1LineHatch()?(LPCTSTR)GetLineHatch(2):(const TCHAR *)m_sHatchFill12 ): (const TCHAR *)m_sHatchFill11;
|
|
}
|
|
CString GetHatchFill2(BOOL bDetail) const {
|
|
return bDetail? (IsFill2LineHatch()?(LPCTSTR)GetLineHatch(3):(const TCHAR *)m_sHatchFill22 ): (const TCHAR *)m_sHatchFill21;
|
|
}
|
|
CString GetHatchBrick(BOOL bDetail) const {
|
|
return bDetail? (IsBrickLineHatch()?(LPCTSTR)GetLineHatch(4):(const TCHAR *)m_sHatchBrick2 ): (const TCHAR *)m_sHatchBrick1;
|
|
}
|
|
CString GetHatchRocket(BOOL bDetail) const {
|
|
return bDetail? (IsRocketLineHatch()?(LPCTSTR)GetLineHatch(5):(const TCHAR *)m_sHatchRocket2 ): (const TCHAR *)m_sHatchRocket1;
|
|
}
|
|
CString GetHatchConcrete(BOOL bDetail) const {
|
|
return bDetail? (IsConcreteLineHatch()?(LPCTSTR)GetLineHatch(6):(const TCHAR *)m_sHatchConcrete2 ): (const TCHAR *)m_sHatchConcrete1;
|
|
}
|
|
CString GetHatchSteel(BOOL bDetail) const {
|
|
return bDetail? (IsConcreteLineHatch()?(LPCTSTR)GetLineHatch(7):(const TCHAR *)m_sHatchSteel2 ): (const TCHAR *)m_sHatchSteel1;
|
|
}
|
|
double GetBoldDivider(BOOL bDetail) const {
|
|
return (bDetail? m_nBoldDivider2 : m_nBoldDivider1);
|
|
}
|
|
double GetBoldFill(BOOL bDetail) const {
|
|
return (bDetail? m_nBoldFill2 : m_nBoldFill1);
|
|
}
|
|
double GetBoldFill1(BOOL bDetail) const {
|
|
return (bDetail? m_nBoldFill12 : m_nBoldFill11);
|
|
}
|
|
double GetBoldFill2(BOOL bDetail) const {
|
|
return (bDetail? m_nBoldFill22 : m_nBoldFill21);
|
|
}
|
|
double GetBoldBrick(BOOL bDetail) const {
|
|
return (bDetail? m_nBoldBrick2 : m_nBoldBrick1);
|
|
}
|
|
double GetBoldRocket(BOOL bDetail) const {
|
|
return (bDetail? m_nBoldRocket2 : m_nBoldRocket1);
|
|
}
|
|
double GetBoldConcrete(BOOL bDetail) const {
|
|
return (bDetail? m_nBoldConcrete2 : m_nBoldConcrete1);
|
|
}
|
|
double GetBoldSteel(BOOL bDetail) const {
|
|
return (bDetail? m_nBoldSteel2 : m_nBoldSteel1);
|
|
}
|
|
|
|
bool IsDividerLineHatch()const{return m_nDividerFlag!=0;}
|
|
bool IsFillLineHatch()const{return m_nFillFlag!=0;}
|
|
bool IsFill1LineHatch()const{return m_nFill1Flag!=0;}
|
|
bool IsFill2LineHatch()const{return m_nFill2Flag!=0;}
|
|
bool IsBrickLineHatch()const{return m_nBrickFlag!=0;}
|
|
bool IsRocketLineHatch()const{return m_nRocketFlag!=0;}
|
|
bool IsConcreteLineHatch()const{return m_nConcreteFlag!=0;}
|
|
bool IsSteelLineHatch()const{return m_nSteelFlag!=0;}
|
|
|
|
AcDbObjectId GetHatchDividerId()const{return m_idHatchDivider;}
|
|
AcDbObjectId GetHatchFillId()const{return m_idHatchFill;}
|
|
AcDbObjectId GetHatchFill1Id()const{return m_idHatchFill1;}
|
|
AcDbObjectId GetHatchFill2Id()const{return m_idHatchFill2;}
|
|
AcDbObjectId GetHatchBrickId()const{return m_idHatchBrick;}
|
|
AcDbObjectId GetHatchRocketId()const{return m_idHatchRocket;}
|
|
AcDbObjectId GetHatchConcreteId()const{return m_idHatchConcrete;}
|
|
AcDbObjectId GetHatchSteelId()const{return m_idHatchSteel;}
|
|
|
|
CString GetLineHatch(long i)const;
|
|
void SetLineHatch(long i,const TCHAR *sPat);
|
|
|
|
Adesk::UInt16 GetDividerColor()const{return m_nDividerColor;}
|
|
Adesk::UInt16 GetFillColor()const{return m_nFillColor;}
|
|
Adesk::UInt16 GetFill1Color()const{return m_nFill1Color;}
|
|
Adesk::UInt16 GetFill2Color()const{return m_nFill2Color;}
|
|
Adesk::UInt16 GetBrickColor()const{return m_nBrickColor;}
|
|
Adesk::UInt16 GetRocketColor()const{return m_nRocketColor;}
|
|
Adesk::UInt16 GetConcreteColor()const{return m_nConcreteColor;}
|
|
Adesk::UInt16 GetSteelColor()const{return m_nSteelColor;}
|
|
|
|
CString GetProjectFile()const;
|
|
CString GetLayerStd()const{return (const TCHAR*)m_sLayerStd;}//ok
|
|
|
|
void SetText2Base(double val) {
|
|
assertWriteEnabled();
|
|
m_nText2Base=val;
|
|
}
|
|
void SetText2BaseRatio(double val) {
|
|
assertWriteEnabled();
|
|
m_nText2BaseRatio=val;
|
|
}
|
|
void SetDetailScale(double val) {
|
|
assertWriteEnabled();
|
|
m_nDetailScale=val;
|
|
}
|
|
void SetHatchDivider(const TCHAR *szPattern, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail)
|
|
{
|
|
if(IsDividerLineHatch())
|
|
SetLineHatch(0,szPattern);
|
|
else
|
|
m_sHatchDivider2=szPattern;
|
|
}
|
|
else
|
|
m_sHatchDivider1=szPattern;
|
|
}
|
|
void SetHatchFill(const TCHAR *szPattern, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail)
|
|
{
|
|
if(IsFillLineHatch())
|
|
SetLineHatch(1,szPattern);
|
|
else
|
|
m_sHatchFill2=szPattern;
|
|
}
|
|
else m_sHatchFill1=szPattern;
|
|
}
|
|
void SetHatchFill1(const TCHAR *szPattern, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail)
|
|
{
|
|
if(IsFill1LineHatch())
|
|
SetLineHatch(2,szPattern);
|
|
else
|
|
m_sHatchFill12=szPattern;
|
|
}
|
|
else m_sHatchFill11=szPattern;
|
|
}
|
|
void SetHatchFill2(const TCHAR *szPattern, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail)
|
|
{
|
|
if(IsFill2LineHatch())
|
|
SetLineHatch(3,szPattern);
|
|
else
|
|
m_sHatchFill22=szPattern;
|
|
}
|
|
else m_sHatchFill21=szPattern;
|
|
}
|
|
|
|
void SetHatchBrick(const TCHAR *szPattern, BOOL bDetail)
|
|
{
|
|
assertWriteEnabled();
|
|
if(bDetail)
|
|
{
|
|
if(IsBrickLineHatch())
|
|
SetLineHatch(4,szPattern);
|
|
else
|
|
m_sHatchBrick2=szPattern;
|
|
}
|
|
else m_sHatchBrick1=szPattern;
|
|
}
|
|
void SetHatchRocket(const TCHAR *szPattern, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail)
|
|
{
|
|
if(IsRocketLineHatch())
|
|
SetLineHatch(5,szPattern);
|
|
else
|
|
m_sHatchRocket2=szPattern;
|
|
}
|
|
else m_sHatchRocket1=szPattern;
|
|
}
|
|
void SetHatchConcrete(const TCHAR *szPattern, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail)
|
|
{
|
|
if(IsConcreteLineHatch())
|
|
SetLineHatch(6,szPattern);
|
|
else
|
|
m_sHatchConcrete2=szPattern;
|
|
}
|
|
else m_sHatchConcrete1=szPattern;
|
|
}
|
|
void SetHatchSteel(const TCHAR *szPattern, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail)
|
|
{
|
|
if(IsSteelLineHatch())
|
|
SetLineHatch(7,szPattern);
|
|
else
|
|
m_sHatchSteel2=szPattern;
|
|
}
|
|
else m_sHatchSteel1=szPattern;
|
|
}
|
|
|
|
void SetBoldDivider(double val, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail) m_nBoldDivider2=val;
|
|
else m_nBoldDivider1=val;
|
|
}
|
|
void SetBoldFill(double val, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail) m_nBoldFill2=val;
|
|
else m_nBoldFill1=val;
|
|
}
|
|
void SetBoldFill1(double val, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail) m_nBoldFill12=val;
|
|
else m_nBoldFill11=val;
|
|
}
|
|
void SetBoldFill2(double val, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail) m_nBoldFill22=val;
|
|
else m_nBoldFill21=val;
|
|
}
|
|
void SetBoldBrick(double val, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail) m_nBoldBrick2=val;
|
|
else m_nBoldBrick1=val;
|
|
}
|
|
void SetBoldRocket(double val, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail) m_nBoldRocket2=val;
|
|
else m_nBoldRocket1=val;
|
|
}
|
|
void SetBoldConcrete(double val, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail) m_nBoldConcrete2=val;
|
|
else m_nBoldConcrete1=val;
|
|
}
|
|
void SetBoldSteel(double val, BOOL bDetail) {
|
|
assertWriteEnabled();
|
|
if(bDetail) m_nBoldSteel2=val;
|
|
else m_nBoldSteel1=val;
|
|
}
|
|
void SetDividerLineHatch(BOOL bTrue){assertWriteEnabled();m_nDividerFlag=bTrue;}
|
|
void SetFillLineHatch(BOOL bTrue){assertWriteEnabled();m_nFillFlag=bTrue;}
|
|
void SetFill1LineHatch(BOOL bTrue){assertWriteEnabled();m_nFill1Flag=bTrue;}
|
|
void SetFill2LineHatch(BOOL bTrue){assertWriteEnabled();m_nFill2Flag=bTrue;}
|
|
void SetBrickLineHatch(BOOL bTrue){assertWriteEnabled();m_nBrickFlag=bTrue;}
|
|
void SetRocketLineHatch(BOOL bTrue){assertWriteEnabled();m_nRocketFlag=bTrue;}
|
|
void SetConcreteLineHatch(BOOL bTrue){assertWriteEnabled();m_nConcreteFlag=bTrue;}
|
|
void SetSteelLineHatch(BOOL bTrue){assertWriteEnabled();m_nSteelFlag=bTrue;}
|
|
|
|
void SetHatchDividerId(AcDbObjectId id){assertWriteEnabled();m_idHatchDivider=id;}
|
|
void SetHatchFillId(AcDbObjectId id){assertWriteEnabled();m_idHatchFill=id;}
|
|
void SetHatchFill1Id(AcDbObjectId id){assertWriteEnabled();m_idHatchFill1=id;}
|
|
void SetHatchFill2Id(AcDbObjectId id){assertWriteEnabled();m_idHatchFill2=id;}
|
|
void SetHatchBrickId(AcDbObjectId id){assertWriteEnabled();m_idHatchBrick=id;}
|
|
void SetHatchRocketId(AcDbObjectId id){assertWriteEnabled();m_idHatchRocket=id;}
|
|
void SetHatchConcreteId(AcDbObjectId id){assertWriteEnabled();m_idHatchConcrete=id;}
|
|
void SetHatchSteelId(AcDbObjectId id){assertWriteEnabled();m_idHatchSteel=id;}
|
|
|
|
void SetDividerColor(Adesk::UInt16 color){assertWriteEnabled();m_nDividerColor=color;}
|
|
void SetFillColor(Adesk::UInt16 color){assertWriteEnabled();m_nFillColor=color;}
|
|
void SetFill1Color(Adesk::UInt16 color){assertWriteEnabled();m_nFill1Color=color;}
|
|
void SetFill2Color(Adesk::UInt16 color){assertWriteEnabled();m_nFill2Color=color;}
|
|
void SetBrickColor(Adesk::UInt16 color){assertWriteEnabled();m_nBrickColor=color;}
|
|
void SetRocketColor(Adesk::UInt16 color){assertWriteEnabled();m_nRocketColor=color;}
|
|
void SetConcreteColor(Adesk::UInt16 color){assertWriteEnabled();m_nConcreteColor=color;}
|
|
void SetSteelColor(Adesk::UInt16 color){assertWriteEnabled();m_nSteelColor=color;}
|
|
|
|
void SetCapLabel(BOOL bTrue) {
|
|
assertWriteEnabled();
|
|
if(bTrue)
|
|
m_nControlFlag |= CONF_CAP_LABEL;
|
|
else
|
|
m_nControlFlag &= ~CONF_CAP_LABEL;
|
|
}
|
|
void SetHideIntWall(BOOL bTrue) {
|
|
assertWriteEnabled();
|
|
if(bTrue)
|
|
m_nControlFlag |= CONF_HIDE_IWALL;
|
|
else
|
|
m_nControlFlag &= ~CONF_HIDE_IWALL;
|
|
}
|
|
void SetHideLevel(BOOL bTrue) {
|
|
assertWriteEnabled();
|
|
if(bTrue)
|
|
m_nControlFlag |= CONF_HIDE_LEVEL;
|
|
else
|
|
m_nControlFlag &= ~CONF_HIDE_LEVEL;
|
|
}
|
|
void SetPrec2(BOOL bTrue) {
|
|
assertWriteEnabled();
|
|
if(bTrue)
|
|
m_nControlFlag |= CONF_PREC2;
|
|
else
|
|
m_nControlFlag &= ~CONF_PREC2;
|
|
}
|
|
void SetSingleSect(BOOL bTrue) {
|
|
assertWriteEnabled();
|
|
if(bTrue) m_nControlFlag |= CONF_SINGLE_SECT;
|
|
else m_nControlFlag &= ~CONF_SINGLE_SECT;
|
|
}
|
|
void SetMeterUnitDraw(BOOL bTrue){
|
|
assertWriteEnabled();
|
|
if(bTrue)
|
|
m_nControlFlag |= CONF_METER_UNIT_DRAW;
|
|
else
|
|
m_nControlFlag &= ~CONF_METER_UNIT_DRAW;
|
|
}
|
|
void SetMeterUnitDim(BOOL bTrue){
|
|
assertWriteEnabled();
|
|
if(bTrue)
|
|
m_nControlFlag |= CONF_METER_UNIT_DIM;
|
|
else
|
|
m_nControlFlag &= ~CONF_METER_UNIT_DIM;
|
|
}
|
|
void SetSelectPreview(BOOL bTrue) {
|
|
assertWriteEnabled();
|
|
if(!bTrue)
|
|
m_nControlFlag |= CONF_NO_PRESEL;
|
|
else
|
|
m_nControlFlag &= ~CONF_NO_PRESEL;
|
|
}
|
|
void SetControlFlag(Adesk::UInt32 nFlag) {assertWriteEnabled(); m_nControlFlag=nFlag; }
|
|
void SetPScale(double scl) { if(scl>1E-4){assertWriteEnabled(); m_nPScale=scl;} }
|
|
void SetLHeight(double height) { assertWriteEnabled(); m_nLHeight=height; }
|
|
void SetDrawMode(Adesk::UInt16 nMode) { assertWriteEnabled(); m_nDrawMode=nMode; }
|
|
void SetSolidFill(BOOL bFill) { assertWriteEnabled(); m_bSolidFill = (Adesk::UInt8)bFill; }
|
|
void SetLineWeight(BOOL bLWeight) { assertWriteEnabled(); m_bLineWeight=bLWeight; }
|
|
void SetSpaceDispMode(int nMode) { assertWriteEnabled(); m_nSpaceDispMode = nMode; }
|
|
void SetShowWallBase(BOOL bOn) { assertWriteEnabled(); m_bShowWallBase=bOn;}
|
|
void SetHighBold(double nThick) {assertWriteEnabled(); m_nHighBold=nThick; }
|
|
void SetElevDiff(double nThick) {assertWriteEnabled(); m_nElevDiff=nThick; }
|
|
void SetCheckDim(BOOL bCheck) {assertWriteEnabled(); m_bCheckDim=bCheck; }
|
|
//void SetDimAreaUnit(BOOL bTrue) {assertWriteEnabled(); m_bDimAreaUnit=bTrue; }
|
|
void SetLinetypeDote(const AcDbObjectId &id) {
|
|
assertWriteEnabled();
|
|
m_idLinetypeDote=id;
|
|
}
|
|
void SetLinetypeDash(const AcDbObjectId &id) {
|
|
assertWriteEnabled();
|
|
m_idLinetypeDash=id;
|
|
}
|
|
void SetProjectFile(CString sFilePath);
|
|
void SetLayerStd(const TCHAR* sStd){
|
|
assertWriteEnabled();
|
|
m_sLayerStd=sStd;
|
|
}
|
|
|
|
// sg add 08126
|
|
void SetSpaceAreaPrecision(int nPrecision) {
|
|
assertWriteEnabled();
|
|
m_nSpaceAreaPrecision = nPrecision;
|
|
}
|
|
Adesk::UInt8 GetSpaceAreaPrecision() const {
|
|
return m_nSpaceAreaPrecision;
|
|
}
|
|
|
|
// sg add 090115
|
|
void SetDrawingIndexTextRatio(double dValue) {
|
|
assertWriteEnabled();
|
|
m_dDrawingIndexTextRatio = dValue;
|
|
}
|
|
double GetDrawingIndexTextRatio() const {
|
|
return m_dDrawingIndexTextRatio;
|
|
}
|
|
|
|
// sg modify 110124,支持圆圈文字出圈样式
|
|
// 0——新样式,1——旧样式,3——出圈样式
|
|
// void SetOldDrawingIndex(BOOL bOld) {
|
|
void SetOldDrawingIndex(int nValue) {
|
|
assertWriteEnabled();
|
|
// m_bOldDrawingIndex = bOld;
|
|
m_bOldDrawingIndex = nValue;
|
|
}
|
|
Adesk::UInt8 IsOldDrawingIndex() const {
|
|
return m_bOldDrawingIndex;
|
|
}
|
|
|
|
// sg add 090212,三角形标高符号大小
|
|
void SetEleTriangleSize(double dValue) {
|
|
assertWriteEnabled();
|
|
m_dEleTriangleSize = dValue;
|
|
}
|
|
double GetEleTriangleSize() const {
|
|
return m_dEleTriangleSize;
|
|
}
|
|
void SetEleDoteSize(double dValue) {
|
|
assertWriteEnabled();
|
|
m_dEleDoteSize = dValue;
|
|
}
|
|
double GetEleDoteSize() const {
|
|
return m_dEleDoteSize;
|
|
}
|
|
void SetEleCrossSize(double dValue) {
|
|
assertWriteEnabled();
|
|
m_dEleCrossSize = dValue;
|
|
}
|
|
double GetEleCrossSize() const {
|
|
return m_dEleCrossSize;
|
|
}
|
|
|
|
// sg add 090216
|
|
void SetMultiLeaderDistRatio(double dValue) {
|
|
assertWriteEnabled();
|
|
m_dMultiLeaderDistRatio = dValue;
|
|
}
|
|
double GetMultiLeaderDistRatio() const {
|
|
return m_dMultiLeaderDistRatio;
|
|
}
|
|
|
|
// sg add 090512,轴号字高系数,动态数据
|
|
void SetAxisLabelTextRatio(double dValue);
|
|
double GetAxisLabelTextRatio() const;
|
|
|
|
// sg add 090609,带形窗幕墙改变样式的比例界限,动态数据
|
|
void SetCurtainWall3Scale(double dValue);
|
|
double GetCurtainWall3Scale() const;
|
|
|
|
// sg add 090609,带形窗幕墙比例改变后是否不改样式,动态数据
|
|
void SetCurtainWallFixStyle(BOOL bVal);
|
|
Adesk::UInt8 IsCurtainWallFixStyle() const;
|
|
|
|
// sg add 090609,带形窗幕墙,不改样式时的设定类型,动态数据
|
|
void SetCurtainWallStyle(int nValue);
|
|
Adesk::UInt8 GetCurtainWallStyle() const;
|
|
|
|
// sg add 110120,凸窗挡板、转角窗挡板、门窗套是否加保温
|
|
void SetProWinSlabInsu(BOOL bValue);
|
|
BOOL IsProWinSlabInsu() const;
|
|
|
|
// sg add 110303,增加单行文字、多行文字、专业词库样式的动态数据
|
|
void SetTgSingleTextStyle(CString csStyle);
|
|
CString GetTgSingleTextStyle() const;
|
|
|
|
// sg add 120412,根据9.0需求,增加设置弧长标注样式的设置
|
|
void SetArcLenDimType(int nType) {
|
|
assertWriteEnabled();
|
|
m_nArcLenDimType = nType;
|
|
}
|
|
int GetArcLenDimType() const {
|
|
return m_nArcLenDimType;
|
|
}
|
|
|
|
// sg add 120413,用于解决旧的尺寸标注,有可能箭头标注大小固定为2的问题,至少让它看上去是一样大的,0表示旧版本,1表示9以上版本
|
|
int GetDealOldDimArrowSize() const {
|
|
return m_nDealOldDimArrowSize;
|
|
}
|
|
void SetDealOldDimArrowSize(int nSize) {
|
|
assertWriteEnabled();
|
|
m_nDealOldDimArrowSize = nSize;
|
|
}
|
|
|
|
ACRX_DECLARE_MEMBERS(TDbConfig);
|
|
|
|
// Overriden function from AcDbObject
|
|
virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler*);
|
|
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
|
|
virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler*);
|
|
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const;
|
|
virtual Acad::ErrorStatus subWblockClone(AcRxObject* pOwner,AcDbObject*& pClonedObject,AcDbIdMapping& idMap,Adesk::Boolean isPrimary) const;
|
|
virtual resbuf * xData(const TCHAR* regappName = NULL) const;
|
|
virtual Acad::ErrorStatus setXData(const resbuf* xdata);
|
|
};
|
|
|
|
TARCH_IMPEXP TDbConfig * GetDwgGlobal(AcDb::OpenMode opMode, AcDbDatabase *pDb = NULL);
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
#include "axlock.h"
|
|
#include "acdocman.h"
|
|
class TDocLock
|
|
{
|
|
protected:
|
|
AcAxDocLock *m_pDocLock;
|
|
public:
|
|
TDocLock()
|
|
{
|
|
m_pDocLock=(acDocManager->isApplicationContext()?
|
|
new AcAxDocLock() : NULL);
|
|
if(m_pDocLock)
|
|
VERIFY(m_pDocLock->lockStatus()==Acad::eOk);
|
|
}
|
|
~TDocLock()
|
|
{
|
|
if(m_pDocLock)
|
|
delete m_pDocLock;
|
|
}
|
|
};
|
|
|
|
// add by gjm 2014/02/13
|
|
|
|
// 设置坐标标注的图层 (随层/当前层)
|
|
inline void DocSetDORLayer(bool bValue)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
p->SetDORLayerType(bValue);
|
|
p->close();
|
|
}
|
|
}
|
|
|
|
// 得到坐标标注的图层 (随层/当前层)
|
|
inline bool DocGetDORLayer()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
bool bret = p->GetDORLayerType();
|
|
p->close();
|
|
return bret;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// 设置符号标注的图层 (随层/当前层)
|
|
inline void DocSetSymbolLayer(bool bValue)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
p->SetSymbolLayerType(bValue);
|
|
p->close();
|
|
}
|
|
}
|
|
|
|
// 得到符号标注的图层 (随层/当前层)
|
|
inline bool DocGetSymbolLayer()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
bool bret = p->GetSymbolLayerType();
|
|
p->close();
|
|
return bret;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// 设置标高标注的图层 (随层/当前层)
|
|
inline void DocSetElevLayer(bool bValue)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
p->SetElevLayerType(bValue);
|
|
p->close();
|
|
}
|
|
}
|
|
|
|
// 得到标高标注的图层 (随层/当前层)
|
|
inline bool DocGetElevLayer()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
bool bret = p->GetElevLayerType();
|
|
p->close();
|
|
return bret;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// end
|
|
|
|
inline BOOL DocSetPScale(double nScale)
|
|
{
|
|
extern bool _docSetPScale(const double &d);
|
|
|
|
if (_docSetPScale(nScale))
|
|
return TRUE;
|
|
|
|
TDocLock vLock;
|
|
BOOL bRet=FALSE;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetPScale(nScale);
|
|
p->close();
|
|
bRet=TRUE;
|
|
}
|
|
return bRet;
|
|
}
|
|
|
|
inline double DocGetLHeight()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
double nRet=(p? p->GetLHeight() : 3000*_UNIT_SCALE);
|
|
if(p) p->close();
|
|
return nRet;
|
|
}
|
|
|
|
inline BOOL DocSetLHeight(double nHeight)
|
|
{
|
|
TDocLock vLock;
|
|
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetLHeight(nHeight);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
inline int DocGetDrawMode()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
int nRet = p? p->GetDrawMode() : 3;
|
|
if(p) p->close();
|
|
return nRet;
|
|
}
|
|
|
|
inline BOOL DocSetDrawMode(int nMode)
|
|
{
|
|
TDocLock vLock;
|
|
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetDrawMode(nMode);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
inline double DocGetText2Base()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
double nDist = p? p->GetText2Base() : g_nText2Base;
|
|
if(p) p->close();
|
|
return nDist;
|
|
}
|
|
|
|
inline BOOL DocSetText2Base(double nDist)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetText2Base(nDist);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
inline double DocGetText2BaseRatio()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
double nDist = p? p->GetText2BaseRatio() : g_nText2BaseRatio;
|
|
if(p) p->close();
|
|
return nDist;
|
|
}
|
|
inline BOOL DocSetText2BaseRatio(double nDist)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetText2BaseRatio(nDist);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
inline BOOL DocGetIsSolidFill()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
BOOL bRet = p? p->IsSolidFill() : FALSE;
|
|
if(p) p->close();
|
|
return bRet;
|
|
}
|
|
|
|
inline BOOL DocSetIsSolidFill(BOOL bTrue)
|
|
{
|
|
TDocLock vLock;
|
|
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetSolidFill(bTrue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
inline BOOL DocGetIsLineWeight()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
BOOL bRet = p? p->IsLineWeight() : FALSE;
|
|
if(p) p->close();
|
|
return bRet;
|
|
}
|
|
|
|
inline BOOL DocSetIsLineWeight(BOOL bTrue)
|
|
{
|
|
TDocLock vLock;
|
|
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetLineWeight(bTrue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
inline double DocGetDetailScale()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
double bRet = p? p->GetDetailScale() : 100.0;
|
|
if(p) p->close();
|
|
return bRet;
|
|
}
|
|
|
|
inline BOOL DocSetDetailScale(double val)
|
|
{
|
|
TDocLock vLock;
|
|
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetDetailScale(val);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
inline double DocGetHighBold()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
double bRet = p? p->GetHighBold() : 0.4;
|
|
if(p) p->close();
|
|
return bRet;
|
|
}
|
|
|
|
inline BOOL DocSetHighBold(double bTrue)
|
|
{
|
|
TDocLock vLock;
|
|
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetHighBold(bTrue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
inline int DocGetSpaceDispMode()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
int nRet = p? p->GetSpaceDispMode() : 1;
|
|
if(p) p->close();
|
|
return nRet;
|
|
}
|
|
|
|
inline BOOL DocSetSpaceDispMode(int val)
|
|
{
|
|
TDocLock vLock;
|
|
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetSpaceDispMode(val);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
inline BOOL DocGetShowBase()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
BOOL bRet = p? p->IsShowWallBase() : FALSE;
|
|
if(p) p->close();
|
|
return bRet;
|
|
}
|
|
|
|
inline BOOL DocSetShowBase(BOOL bTrue)
|
|
{
|
|
TDocLock vLock;
|
|
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetShowWallBase(bTrue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
inline BOOL DocGetCheckDim()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
BOOL bRet = p? p->IsCheckDim() : FALSE;
|
|
if(p) p->close();
|
|
return bRet;
|
|
}
|
|
|
|
inline BOOL DocSetCheckDim(BOOL bTrue)
|
|
{
|
|
TDocLock vLock;
|
|
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetCheckDim(bTrue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
inline double DocGetElevDiff()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
double nRet=(p? p->GetElevDiff() : 0.0);
|
|
if(p) p->close();
|
|
return nRet;
|
|
}
|
|
|
|
inline BOOL DocSetElevDiff(double nHeight)
|
|
{
|
|
TDocLock vLock;
|
|
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetElevDiff(nHeight);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
inline BOOL DocGetInt3DWallVisible()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
BOOL nRet=(p? p->IsHideIntWall() : FALSE);
|
|
if(p) p->close();
|
|
return !nRet;
|
|
}
|
|
inline BOOL DocSetInt3DWallVisible(BOOL bTrue)
|
|
{
|
|
BOOL bHide=!bTrue;
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetHideIntWall(bHide);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
inline BOOL DocGetLevelLine()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
BOOL nRet=TRUE;
|
|
if(p) {
|
|
nRet=p->IsHideLevel();
|
|
p->close();
|
|
nRet=!nRet;
|
|
}
|
|
return nRet;
|
|
}
|
|
|
|
inline BOOL DocSetLevelLine(BOOL bTrue)
|
|
{
|
|
BOOL bHide=!bTrue;
|
|
TDocLock vLock;
|
|
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetHideLevel(bHide);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
inline BOOL DocGetPrec2()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
BOOL nRet=FALSE;
|
|
if(p) {
|
|
nRet=p->IsPrec2();
|
|
p->close();
|
|
}
|
|
return nRet;
|
|
}
|
|
|
|
inline BOOL DocSetPrec2(BOOL bTrue)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetPrec2(bTrue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
inline CString DocGetProjectFile()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
CString sRet;
|
|
if(p) {
|
|
sRet=p->GetProjectFile();
|
|
p->close();
|
|
}
|
|
return sRet;
|
|
}
|
|
inline BOOL DocSetProjectFile(const TCHAR* sFile)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetProjectFile(sFile);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
inline CString DocGetLayerStd()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
CString sRet;
|
|
if(p) {
|
|
sRet=p->GetLayerStd();
|
|
p->close();
|
|
}
|
|
return sRet;
|
|
}
|
|
inline BOOL DocSetLayerStd(const TCHAR* sFile)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetLayerStd(sFile);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
#define g_bSelectPreview DocGetSelectPreview()
|
|
inline BOOL DocGetSelectPreview()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
BOOL bRet=TRUE;
|
|
if(p) {
|
|
bRet=p->IsSelectPreview();
|
|
p->close();
|
|
}
|
|
return bRet;
|
|
}
|
|
inline void DocSetSelectPreview(BOOL bTrue)
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetSelectPreview(bTrue);
|
|
p->close();
|
|
}
|
|
}
|
|
inline BOOL DocGetMeterUnitDraw()
|
|
{
|
|
extern bool _docGetMeterUnitDraw(BOOL &bMeter);
|
|
BOOL bRet=FALSE;
|
|
if (_docGetMeterUnitDraw(bRet))
|
|
return bRet;
|
|
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
if(p) {
|
|
bRet=p->IsMeterUnitDraw();
|
|
p->close();
|
|
}
|
|
return bRet;
|
|
}
|
|
inline void DocSetMeterUnitDraw(BOOL bTrue)
|
|
{
|
|
extern bool _docSetMeterUnitDraw(const BOOL &bMeter);
|
|
|
|
if (_docSetMeterUnitDraw(bTrue))
|
|
return;
|
|
|
|
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetMeterUnitDraw(bTrue);
|
|
p->close();
|
|
}
|
|
Refresh_DIST_SNAP();
|
|
}
|
|
inline BOOL DocGetMeterUnitDim()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead,g_pCurrentDb);
|
|
BOOL bRet=FALSE;
|
|
if(p) {
|
|
bRet=p->IsMeterUnitDim();
|
|
p->close();
|
|
}
|
|
return bRet;
|
|
}
|
|
inline void DocSetMeterUnitDim(BOOL bTrue)
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetMeterUnitDim(bTrue);
|
|
p->close();
|
|
}
|
|
}
|
|
inline int DocGetSpaceAreaPrecision()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
int nRet = p? p->GetSpaceAreaPrecision() : 2;
|
|
if(p) p->close();
|
|
return nRet;
|
|
}
|
|
|
|
inline BOOL DocSetSpaceAreaPrecision(int val)
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetSpaceAreaPrecision(val);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
inline double DocGetDITextRatio()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
double dRet = (p?p->GetDrawingIndexTextRatio():g_dDrawIndexTextRatio);
|
|
if (p) p->close();
|
|
return dRet;
|
|
}
|
|
|
|
inline BOOL DocSetDITextRatio(double nValue)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite, g_pCurrentDb);
|
|
if (p) {
|
|
p->SetDrawingIndexTextRatio(nValue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
// 旧圆圈文字样式,8.5起不再使用DocGetOldDrawingIndex、DocSetOldDrawingIndex接口函数
|
|
inline BOOL DocGetOldDrawingIndex()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
BOOL bRet = p?p->IsOldDrawingIndex():g_bDrawIndexOldStyle;
|
|
if (p)
|
|
p->close();
|
|
return bRet;
|
|
}
|
|
|
|
inline BOOL DocSetOldDrawingIndex(BOOL bTrue)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite, g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
p->SetOldDrawingIndex(bTrue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
// sg add 110124,获得圆圈文字样式,==0,新样式,==1,旧样式,==3,出圈样式
|
|
inline int DocGetDrawingIndexStyle()
|
|
{
|
|
int nRet = 0;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
nRet = p->IsOldDrawingIndex();
|
|
p->close();
|
|
}
|
|
else
|
|
{
|
|
nRet = g_bDrawIndexOldStyle?1:0;
|
|
nRet = g_bDIOutCircleStyle?3:nRet;
|
|
}
|
|
return nRet;
|
|
}
|
|
|
|
inline BOOL DocSetDrawingIndexStyle(int nStyle)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite, g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
p->SetOldDrawingIndex(nStyle);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
// sg add 090212
|
|
inline double DocGetEleTriangleSize()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
//double dRet = (p?p->GetEleTriangleSize():3); // sg add 110301,默认值从高级选项中读取
|
|
double dRet = (p?p->GetEleTriangleSize():g_dEleTriangleSize);
|
|
if (p)
|
|
p->close();
|
|
return dRet;
|
|
}
|
|
|
|
inline BOOL DocSetEleTriangleSize(double nValue)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite, g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
p->SetEleTriangleSize(nValue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
inline double DocGetEleDoteSize()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
//double dRet = (p?p->GetEleDoteSize():0.75); // sg add 110301,默认值从高级选项中读取
|
|
double dRet = (p?p->GetEleDoteSize():g_dEleDoteSize*0.5);
|
|
if (p)
|
|
p->close();
|
|
return dRet;
|
|
}
|
|
|
|
inline BOOL DocSetEleDoteSize(double nValue)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite, g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
p->SetEleDoteSize(nValue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
inline double DocGetEleCrossSize()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
double dRet = (p?p->GetEleCrossSize():g_dEleCrossSize);
|
|
if (p)
|
|
p->close();
|
|
return dRet;
|
|
}
|
|
|
|
inline BOOL DocSetEleCrossSize(double nValue)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite, g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
p->SetEleCrossSize(nValue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
// sg add 090216
|
|
inline double DocGetMultiLeaderDistRatio()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
double dRet = (p?p->GetMultiLeaderDistRatio():0.3);
|
|
if (p)
|
|
p->close();
|
|
return dRet;
|
|
}
|
|
|
|
inline BOOL DocSetMultiLeaderDistRatio(double nValue)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite, g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
p->SetMultiLeaderDistRatio(nValue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
// sg add 090512,轴号字高系数
|
|
inline double DocGetAxisLabelTextRatio()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
double dRet = (p?p->GetAxisLabelTextRatio():g_dAxisLabelTextRatio);
|
|
if (p) p->close();
|
|
return dRet;
|
|
}
|
|
|
|
inline BOOL DocSetAxisLabelTextRatio(double nValue)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite, g_pCurrentDb);
|
|
if (p) {
|
|
p->SetAxisLabelTextRatio(nValue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
// sg add 090609,带形窗幕墙改变样式的比例界限
|
|
inline double DocGetCurtainWall3Scale()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
double dRet = (p?p->GetCurtainWall3Scale():g_nCurtainWall3Scale);
|
|
if (p) p->close();
|
|
return dRet;
|
|
}
|
|
|
|
inline BOOL DocSetCurtainWall3Scale(double nValue)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite, g_pCurrentDb);
|
|
if (p) {
|
|
p->SetCurtainWall3Scale(nValue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
// sg add 090609,带形窗幕墙比例改变后是否不改样式
|
|
inline BOOL DocGetCurtainWallFixStyle()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
BOOL bRet = p?p->IsCurtainWallFixStyle():FALSE;
|
|
if (p) p->close();
|
|
return bRet;
|
|
}
|
|
|
|
inline BOOL DocSetCurtainWallFixStyle(BOOL bTrue)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite, g_pCurrentDb);
|
|
if (p) {
|
|
p->SetCurtainWallFixStyle(bTrue);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
// sg add 090609,带形窗幕墙,不改样式时的设定类型
|
|
inline int DocGetCurtainWallStyle()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
int nRet = p? p->GetCurtainWallStyle() : 2;
|
|
if(p) p->close();
|
|
return nRet;
|
|
}
|
|
|
|
inline BOOL DocSetCurtainWallStyle(int val)
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if(p) {
|
|
p->SetCurtainWallStyle(val);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
// sg add 110120,凸窗挡板、转角窗挡板、门窗套是否加保温
|
|
inline BOOL DocGetProWinSlabInsu()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
BOOL bRet = p ? p->IsProWinSlabInsu() : TRUE;
|
|
if (p)
|
|
{
|
|
p->close();
|
|
}
|
|
return bRet;
|
|
}
|
|
|
|
inline BOOL DocSetProWinSlabInsu(BOOL bInsu)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite,g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
p->SetProWinSlabInsu(bInsu);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
// sg add 110303,增加单行文字、多行文字、专业词库样式的动态数据
|
|
inline CString DocGetTgSingleTextStyle()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
CString csStyle = _T("STANDARD");
|
|
if (p)
|
|
{
|
|
csStyle = p->GetTgSingleTextStyle();
|
|
p->close();
|
|
}
|
|
return csStyle;
|
|
}
|
|
|
|
inline BOOL DocSetTgSingleTextStyle(CString &csStyle)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite, g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
p->SetTgSingleTextStyle(csStyle);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
// sg add 120412,根据9.0需求,增加设置弧长标注样式的设置
|
|
inline int DocGetArcLenDimType()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
int nRet = (p?p->GetArcLenDimType():g_nArcLenDimType);
|
|
if (p)
|
|
{
|
|
p->close();
|
|
}
|
|
return nRet;
|
|
}
|
|
|
|
inline BOOL DocSetArcLenDimType(int nType)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite, g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
p->SetArcLenDimType(nType);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
// sg add 120413,用于解决旧的尺寸标注,有可能箭头标注大小固定为2的问题,至少让它看上去是一样大的,0表示旧版本,1表示9以上版本
|
|
inline int DocGetDealOldDimArrowSize()
|
|
{
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForRead, g_pCurrentDb);
|
|
int nRet = (p?p->GetDealOldDimArrowSize():1);
|
|
if (p)
|
|
{
|
|
p->close();
|
|
}
|
|
return nRet;
|
|
}
|
|
|
|
inline BOOL DocSetDealOldDimArrowSize(int nSide)
|
|
{
|
|
TDocLock vLock;
|
|
TDbConfig *p = GetDwgGlobal(AcDb::kForWrite, g_pCurrentDb);
|
|
if (p)
|
|
{
|
|
p->SetDealOldDimArrowSize(nSide);
|
|
p->close();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
//
|
|
//inline 函数的封装
|
|
class TConfigDataTearoff : public TConfigBase
|
|
{
|
|
public:
|
|
|
|
TConfigDataTearoff();
|
|
virtual ~TConfigDataTearoff();
|
|
|
|
virtual BOOL DocSetPScale(double nScale);
|
|
|
|
virtual double DocGetPScale();
|
|
|
|
virtual double DocGetLHeight();
|
|
|
|
virtual double DocGetHighBold();
|
|
|
|
virtual BOOL DocGetDrawMode();
|
|
|
|
virtual BOOL DocGetIsSolidFill();
|
|
|
|
virtual BOOL DocGetIsLineWeight();
|
|
|
|
virtual BOOL DocGetMeterUnitDraw();
|
|
|
|
virtual void DocSetMeterUnitDraw(BOOL bTrue);
|
|
|
|
virtual AcDbObjectId InitLayer(const TCHAR *szLayer, BOOL bApplyChange);
|
|
|
|
virtual int BoolOper(AcDb::BoolOperType nOperType,LPVOID pPoly1,LPVOID pPoly2,LPVOID pPtrListPoly2d);
|
|
|
|
virtual CString GetCurrentCommand();
|
|
|
|
virtual void Close();
|
|
};
|
|
|
|
#endif |