#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