921 lines
24 KiB
C++
921 lines
24 KiB
C++
#include "stdafx.h"
|
||||
|
|
#include "rxregsvc.h"
|
|||
|
|
#include "actrans.h"
|
|||
|
|
#include "TArchDbReactor.h"
|
|||
|
|
#include "TArchCmdReactor.h"
|
|||
|
|
#include "TchSubPrivateGlobalFunc.h"
|
|||
|
|
#include "TSearchSpaceFromWall.h"
|
|||
|
|
|
|||
|
|
// 统计和楼层组合
|
|||
|
|
void RestoreLayer();
|
|||
|
|
int LevelLine();
|
|||
|
|
|
|||
|
|
/*************** CadUtil *******************/
|
|||
|
|
int ChgElevation();
|
|||
|
|
int ClipDetail();
|
|||
|
|
|
|||
|
|
// Display
|
|||
|
|
int Show2D();
|
|||
|
|
int Show3D();
|
|||
|
|
int ShowStd();
|
|||
|
|
int ShowQ();
|
|||
|
|
|
|||
|
|
|
|||
|
|
// astool.cpp
|
|||
|
|
int PolyClip();
|
|||
|
|
/***************** End CadUtil ****************/
|
|||
|
|
|
|||
|
|
int RemoveInitSetDict();
|
|||
|
|
|
|||
|
|
int Lay();
|
|||
|
|
int GridFrame();
|
|||
|
|
int TestOffset();
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 状态开关
|
|||
|
|
int GetSolidFillState();
|
|||
|
|
int SetSolidFillState();
|
|||
|
|
int GetBoldLineState();
|
|||
|
|
int SetBoldLineState();
|
|||
|
|
int GetDimChkState();
|
|||
|
|
int SetDimChkState();
|
|||
|
|
int GetDimAdjState();
|
|||
|
|
int SetDimAdjState();
|
|||
|
|
int GetBaselineState();
|
|||
|
|
int SetBaselineState();
|
|||
|
|
int SetSpaceUnitState();
|
|||
|
|
int SetSpaceAreaState();
|
|||
|
|
int GetSpaceUnitState();
|
|||
|
|
int GetSpaceAreaState();
|
|||
|
|
|
|||
|
|
// 标签
|
|||
|
|
int Is2Dand3D();
|
|||
|
|
int Is2DOnly();
|
|||
|
|
int Is3DOnly();
|
|||
|
|
|
|||
|
|
int GetPScale();
|
|||
|
|
int SetPScale();
|
|||
|
|
int TMakeBlock();
|
|||
|
|
int TDocStatus();
|
|||
|
|
int GetPfx();
|
|||
|
|
int GetLispPath();
|
|||
|
|
int ApplyLayerChange();
|
|||
|
|
int GetFace();
|
|||
|
|
////////////////////////
|
|||
|
|
// 对工具集绘图方式对功能
|
|||
|
|
// 自调开关
|
|||
|
|
int GetDamnu1();
|
|||
|
|
int SetDamnu1();
|
|||
|
|
|
|||
|
|
// 窗-门-高窗循环切换
|
|||
|
|
int GetWDState();
|
|||
|
|
int SetWDState();
|
|||
|
|
|
|||
|
|
//////////////////////
|
|||
|
|
// 坐标标注开关
|
|||
|
|
int GetABCoord();
|
|||
|
|
int SetABCoord();
|
|||
|
|
int GetDynamicCoord();
|
|||
|
|
int SetDynamicCoord();
|
|||
|
|
int GetCoordPrec2();
|
|||
|
|
int SetCoordPrec2();
|
|||
|
|
// sg add 100824,增加编组开关
|
|||
|
|
int GetMakeGroupState();
|
|||
|
|
int SetMakeGroupState();
|
|||
|
|
// sg add 100915,增加图层切换按钮
|
|||
|
|
int GetTextLayerChange();
|
|||
|
|
int SetTextLayerChange();
|
|||
|
|
|
|||
|
|
|
|||
|
|
///////////////////////
|
|||
|
|
// From TCH 3.5
|
|||
|
|
int InsertBlock();
|
|||
|
|
|
|||
|
|
int SpaceSwitch();
|
|||
|
|
int UpdCamera();
|
|||
|
|
int DragTitle();
|
|||
|
|
int Circle2Polyline();
|
|||
|
|
int IsAcad2002sc();
|
|||
|
|
int GetLineThick();
|
|||
|
|
int RevAxisLabel();
|
|||
|
|
static int RepStatus();
|
|||
|
|
extern void UpdateMViewBlock();
|
|||
|
|
// 由LISP调用的初始化
|
|||
|
|
|
|||
|
|
//modify by xlc on 100420 变量g_bUpdateMViewBlock移到geo,
|
|||
|
|
//通过函数IsUpdateMVBlock() 和UpdateMVBlockVal() 使用
|
|||
|
|
/*int InitKernal()
|
|||
|
|
{
|
|||
|
|
extern BOOL g_bUpdateMViewBlock;
|
|||
|
|
|
|||
|
|
if(g_bUpdateMViewBlock)
|
|||
|
|
{
|
|||
|
|
#if ADS<17
|
|||
|
|
UpdateMViewBlock();
|
|||
|
|
#endif
|
|||
|
|
g_bUpdateMViewBlock=FALSE;
|
|||
|
|
}
|
|||
|
|
return RTNORM;
|
|||
|
|
}*/
|
|||
|
|
|
|||
|
|
// add by gjm 2014/08/15
|
|||
|
|
void GetElevSymbolInfomation();
|
|||
|
|
|
|||
|
|
int InitKernal()
|
|||
|
|
{
|
|||
|
|
if (IsUpdateMVBlock())
|
|||
|
|
{
|
|||
|
|
#if ADS<17
|
|||
|
|
UpdateMViewBlock();
|
|||
|
|
#endif
|
|||
|
|
UpdateMVBlockVal(FALSE);
|
|||
|
|
}
|
|||
|
|
return RTNORM;
|
|||
|
|
}
|
|||
|
|
void Option();
|
|||
|
|
//extern_fun cmdtab[] = {
|
|||
|
|
// {_T("GetWDState"), GetWDState},
|
|||
|
|
// {_T("SetWDState"), SetWDState},
|
|||
|
|
// {_T("GetDamnu1"), GetDamnu1},
|
|||
|
|
// {_T("SetDamnu1"), SetDamnu1},
|
|||
|
|
// {_T("TApplyLayerChange"), ApplyLayerChange}, //给上华建筑二维绘图用
|
|||
|
|
// {_T("TGetLispPath"), GetLispPath},
|
|||
|
|
// {_T("TGetFace"), GetFace},
|
|||
|
|
// {_T("TCircle2Polyline"), Circle2Polyline},
|
|||
|
|
// {_T("TGetThick"), GetLineThick},
|
|||
|
|
// {_T("GetBoldLineState"), GetBoldLineState},
|
|||
|
|
// {_T("SetBoldLineState"), SetBoldLineState},
|
|||
|
|
// {_T("GetSolidFillState"), GetSolidFillState},
|
|||
|
|
// {_T("SetSolidFillState"), SetSolidFillState},
|
|||
|
|
// {_T("GetDimChkState"), GetDimChkState},
|
|||
|
|
// {_T("SetDimChkState"), SetDimChkState},
|
|||
|
|
// {_T("GetDimAdjState"), GetDimAdjState},
|
|||
|
|
// {_T("SetDimAdjState"), SetDimAdjState},
|
|||
|
|
// {_T("GetBaselineState"), GetBaselineState},
|
|||
|
|
// {_T("SetBaselineState"), SetBaselineState},
|
|||
|
|
// {_T("SetSpaceUnitState"), SetSpaceUnitState},
|
|||
|
|
// {_T("SetSpaceAreaState"),SetSpaceAreaState},
|
|||
|
|
// {_T("GetSpaceUnitState"),GetSpaceUnitState},
|
|||
|
|
// {_T("GetSpaceAreaState"),GetSpaceAreaState},
|
|||
|
|
// {_T("GetABCoord"), GetABCoord},
|
|||
|
|
// {_T("SetABCoord"), SetABCoord},
|
|||
|
|
// {_T("GetDynamicCoord"), GetDynamicCoord},
|
|||
|
|
// {_T("SetDynamicCoord"), SetDynamicCoord},
|
|||
|
|
// {_T("GetCoordPrec2"), GetCoordPrec2},
|
|||
|
|
// {_T("SetCoordPrec2"), SetCoordPrec2},
|
|||
|
|
// {_T("GetMakeGroup"), GetMakeGroupState},
|
|||
|
|
// {_T("SetMakeGroup"), SetMakeGroupState},
|
|||
|
|
// {_T("GetTextLayerChange"), GetTextLayerChange},
|
|||
|
|
// {_T("SetTextLayerChange"), SetTextLayerChange},
|
|||
|
|
// {_T("Is2Dand3D"), Is2Dand3D},
|
|||
|
|
// {_T("Is2DOnly"), Is2DOnly},
|
|||
|
|
// {_T("Is3DOnly"), Is3DOnly},
|
|||
|
|
// {_T("TGetPScale"), GetPScale},
|
|||
|
|
// {_T("TSetPScale"), SetPScale},
|
|||
|
|
// {_T("TMakeBlock"), TMakeBlock},
|
|||
|
|
// {_T("TDocStatus"), TDocStatus},
|
|||
|
|
// {_T("GetPfx"), GetPfx},
|
|||
|
|
// {_T("TDragTitle"), DragTitle},
|
|||
|
|
// {_T("TUpdCamera"), UpdCamera},
|
|||
|
|
// { _T("TInsBlk"), InsertBlock},
|
|||
|
|
// {_T("TIsAcad2002Sc"), IsAcad2002sc},
|
|||
|
|
// {_T("TInitKernal"), InitKernal},
|
|||
|
|
// {_T("TRepStat"), RepStatus},
|
|||
|
|
// {_T("C:TShowAuto"), ShowStd},
|
|||
|
|
// {_T("C:TShow2D"), Show2D},
|
|||
|
|
// {_T("C:TShow3D"), Show3D},
|
|||
|
|
// {_T("C:TLevelLine"), LevelLine},
|
|||
|
|
// {_T("C:TSpaceSwitch"), SpaceSwitch},
|
|||
|
|
// {_T("C:TRevAxno"), RevAxisLabel},
|
|||
|
|
//};
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//TARCH_IMPEXP void UpdateTDbEntity();
|
|||
|
|
//void UpdateFromBeta();
|
|||
|
|
//void UpdateFrom6();
|
|||
|
|
//void UpdateFrom8();
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////
|
|||
|
|
// Load the initial information when XLOAD/OPEN/NEW
|
|||
|
|
// 不可以执行ads_command
|
|||
|
|
int OnDwgLoaded()
|
|||
|
|
{
|
|||
|
|
acedVportTableRecords2Vports();
|
|||
|
|
|
|||
|
|
#if (ARCH!=3)
|
|||
|
|
xg_setvar(_T("HPSCALE"), DocGetPScale());
|
|||
|
|
//for(int i=0;i<ELEMENTS(cmdtab); i++)
|
|||
|
|
// ads_defun(cmdtab[i].cmdname,i);
|
|||
|
|
#endif //(ARCH!=3)
|
|||
|
|
|
|||
|
|
//UpdateFromBeta(); //对T5Beta版本进行升级
|
|||
|
|
//UpdateFrom6();
|
|||
|
|
|
|||
|
|
DocSetIsDwgBegin(TRUE);
|
|||
|
|
|
|||
|
|
// sg add 120413,更新尺寸标注样式
|
|||
|
|
int nDealOldDimArrowSize = DocGetDealOldDimArrowSize();
|
|||
|
|
if (nDealOldDimArrowSize == 0)
|
|||
|
|
{
|
|||
|
|
//UpdateFrom8(); // 更新尺寸标注样式问题
|
|||
|
|
DocSetDealOldDimArrowSize(1);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//TArchDbReactor::Attach();//启动数据库监视器
|
|||
|
|
|
|||
|
|
return RTNORM;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
int OnDwgUnload()
|
|||
|
|
{
|
|||
|
|
//TArchDbReactor::Detach();//取消数据库监视器
|
|||
|
|
|
|||
|
|
DocSetIsDwgBegin(FALSE);
|
|||
|
|
return RTNORM;
|
|||
|
|
}
|
|||
|
|
int OnDoFunc()
|
|||
|
|
{
|
|||
|
|
int nRet=RTNORM;
|
|||
|
|
#if (ARCH!=3)
|
|||
|
|
//int cindex;
|
|||
|
|
//XPushVar<int> cmdecho(_T("CMDECHO"), 0);
|
|||
|
|
//XPushVar<int> blipmode(_T("BLIPMODE"), 0);
|
|||
|
|
|
|||
|
|
//cindex = ads_getfuncode();
|
|||
|
|
//if (cindex >= 0 && cindex < ELEMENTS(cmdtab))
|
|||
|
|
//{
|
|||
|
|
// if(cmdtab[cindex].cmdname[1]==_T(':'))
|
|||
|
|
// {
|
|||
|
|
// //XPushUndo vTemp;
|
|||
|
|
// AcTransaction *pTrans = actrTransactionManager->startTransaction();
|
|||
|
|
// try
|
|||
|
|
// {
|
|||
|
|
// (*cmdtab[cindex].cmdfunc)();
|
|||
|
|
// }
|
|||
|
|
// catch(...)
|
|||
|
|
// {
|
|||
|
|
// }
|
|||
|
|
// ads_retvoid();
|
|||
|
|
// actrTransactionManager->endTransaction();
|
|||
|
|
// }
|
|||
|
|
// else
|
|||
|
|
// (*cmdtab[cindex].cmdfunc)();
|
|||
|
|
|
|||
|
|
// nRet = RTNORM;
|
|||
|
|
//}
|
|||
|
|
//else
|
|||
|
|
// nRet=RTERROR;
|
|||
|
|
#endif
|
|||
|
|
return nRet;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//void RestoreInsert();
|
|||
|
|
void BlockWrap();
|
|||
|
|
|
|||
|
|
void SelObject();
|
|||
|
|
void HelpArch();
|
|||
|
|
void AxisWall();
|
|||
|
|
|
|||
|
|
void TestQuan();
|
|||
|
|
|
|||
|
|
void CornerWin();
|
|||
|
|
|
|||
|
|
|
|||
|
|
void SupCodePage();
|
|||
|
|
void SolidFillOff();
|
|||
|
|
void SolidFillOn();
|
|||
|
|
|
|||
|
|
|
|||
|
|
void SearchRegion1();
|
|||
|
|
void SearchRegion();
|
|||
|
|
|
|||
|
|
void TestBayWin();
|
|||
|
|
//void RemoveDup();
|
|||
|
|
void InterCurves();
|
|||
|
|
//void RemoveDupNoXData();
|
|||
|
|
|
|||
|
|
void OutElev(); //室外标高
|
|||
|
|
void TestWallDlg();
|
|||
|
|
void TestVp();
|
|||
|
|
void TogIntWall();
|
|||
|
|
TARCH_IMPEXP void UpdateAllLinkage();
|
|||
|
|
|
|||
|
|
|
|||
|
|
void CurrentTips();
|
|||
|
|
|
|||
|
|
void BringFront1();
|
|||
|
|
void BringFront2();
|
|||
|
|
void ConvertInsert();
|
|||
|
|
void BlockUnMask();
|
|||
|
|
|
|||
|
|
void TogDrawWall();
|
|||
|
|
void CurLayerHeight();
|
|||
|
|
void CurPScale();
|
|||
|
|
void WalkStep();
|
|||
|
|
|
|||
|
|
void PrePlot();
|
|||
|
|
void PostPlot();
|
|||
|
|
void Clip3D();
|
|||
|
|
void AutoLTScale();
|
|||
|
|
void Text2Base();
|
|||
|
|
void GetDwgStamp();
|
|||
|
|
//void FixGsView();
|
|||
|
|
void CreateRectangle();
|
|||
|
|
void CreateSlope();
|
|||
|
|
void CreatePolyMesh();
|
|||
|
|
void CreatePolyMesh2();
|
|||
|
|
void DragRubber();
|
|||
|
|
void DblClkEdit();
|
|||
|
|
void InitWinTextHeight();
|
|||
|
|
void ProtectEntity();
|
|||
|
|
void SelectPreview();
|
|||
|
|
void UnProtect();
|
|||
|
|
void SaveAsOldVer();
|
|||
|
|
void SaveAsTArch3();
|
|||
|
|
void BatchSaveAsOldVer();
|
|||
|
|
void BatchFolderSaveAsOldVer();
|
|||
|
|
void ExplCustEnt();
|
|||
|
|
// sg add 120307,增加一个局部导出的功能
|
|||
|
|
void PartSaveAsOldVerCmd();
|
|||
|
|
|
|||
|
|
void GroupOpening();
|
|||
|
|
void BanOpening();
|
|||
|
|
void PolyCurveEnt();
|
|||
|
|
void FanStair();
|
|||
|
|
void Region();
|
|||
|
|
|
|||
|
|
void LoadConfig();
|
|||
|
|
|
|||
|
|
// sg add 091222,增加一个版本信息的命令,主要考虑知道插件的版本信息
|
|||
|
|
void TPlugBbxx();
|
|||
|
|
|
|||
|
|
// sg add 100112,增加“图变单色”命令
|
|||
|
|
void SingleColorLayer();
|
|||
|
|
|
|||
|
|
// add by gjm 2013/10/24
|
|||
|
|
void SetMergeRule();
|
|||
|
|
void GetElevSymbolTxtBaseLen();
|
|||
|
|
|
|||
|
|
#if (ARCH!=3)
|
|||
|
|
// ARX命令表
|
|||
|
|
static ArxCommandTable g_cmdTable[] = {
|
|||
|
|
//{_T("TShowElevInfo"), GetElevSymbolInfomation, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("TShowElevBaseLen"), GetElevSymbolTxtBaseLen, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("TFixView"), FixGsView, ACRX_CMD_MODAL},
|
|||
|
|
//{_T("TLHeight"), CurLayerHeight, ACRX_CMD_MODAL},
|
|||
|
|
{_T("TPScale"), CurPScale, ACRX_CMD_MODAL},
|
|||
|
|
//{_T("TWalkStep"), WalkStep, ACRX_CMD_TRANSPARENT},
|
|||
|
|
//{_T("TText2Base"), Text2Base, ACRX_CMD_TRANSPARENT},
|
|||
|
|
//{_T("TDblClkEdit"), DblClkEdit, ACRX_CMD_TRANSPARENT},
|
|||
|
|
//{_T("TProtect"),ProtectEntity,ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
{_T("SHSaveAs"), SaveAsOldVer, ACRX_CMD_MODAL},
|
|||
|
|
//{_T("TBatSave"), BatchSaveAsOldVer, ACRX_CMD_MODAL},
|
|||
|
|
//{_T("TBatSaveFolder"), BatchFolderSaveAsOldVer, ACRX_CMD_MODAL},
|
|||
|
|
//{_T("TExplode"), ExplCustEnt, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("TPartSaveAs"), PartSaveAsOldVerCmd, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("TResColor"), RestoreLayer},
|
|||
|
|
//{_T("TBlkMask1"), BringFront1, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("TBlkMask2"), BringFront2, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("TBlkUnMask"), BlockUnMask, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("TBlkConv"), ConvertInsert, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("TRemoveDup"), RemoveDup, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("TRemoveDup1"), RemoveDupNoXData, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("PrePlot"), PrePlot, ACRX_CMD_MODAL},
|
|||
|
|
//{_T("PostPlot"), PostPlot, ACRX_CMD_MODAL},
|
|||
|
|
//{_T("TPolyMesh"), CreatePolyMesh, ACRX_CMD_MODAL},
|
|||
|
|
//{_T("TPolyMesh2"), CreatePolyMesh2, ACRX_CMD_MODAL},
|
|||
|
|
//{_T("TSlope"), CreateSlope, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("TogDrawWall"), TogDrawWall, ACRX_CMD_TRANSPARENT},
|
|||
|
|
//{_T("TGetDwgStamp"), GetDwgStamp,ACRX_CMD_TRANSPARENT},
|
|||
|
|
//{_T("TDragRubber"), DragRubber, ACRX_CMD_TRANSPARENT},
|
|||
|
|
//{_T("TGroupOpening"), GroupOpening, ACRX_CMD_MODAL},
|
|||
|
|
//{_T("TFanStair"),FanStair,ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("TRegion"),Region,ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("TUnProtect"),UnProtect,ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("_PolyCurveEnt"), PolyCurveEnt, ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET},
|
|||
|
|
//{_T("TBBXX"), TPlugBbxx, ACRX_CMD_MODAL},
|
|||
|
|
//{_T("TMONO"), SingleColorLayer, ACRX_CMD_MODAL},
|
|||
|
|
//{_T("TSETMERGERULE"), SetMergeRule, ACRX_CMD_MODAL},
|
|||
|
|
{_T("shsopt"), Option, ACRX_CMD_MODAL},
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif //(ARCH!=3)
|
|||
|
|
|
|||
|
|
|
|||
|
|
extern int ConvertDwgCodePage(const TCHAR *tmpFile);
|
|||
|
|
extern void LoadGlobalFromReg();
|
|||
|
|
extern void InitLayers(BOOL bTrue);
|
|||
|
|
extern void InitTextStyles(BOOL bTrue);// 初始化文字样式变量,sg add 101229
|
|||
|
|
extern GEOAPI int (*g_ptrCodePageConvert)(const TCHAR *);
|
|||
|
|
|
|||
|
|
extern void InitDwgLicense(BOOL bTrue);
|
|||
|
|
|
|||
|
|
extern void InitDbBlockInsert(BOOL bTrue);
|
|||
|
|
extern void InitDbRoof(BOOL bTrue);
|
|||
|
|
extern void InitBlockPurgeProof(BOOL bTrue);
|
|||
|
|
extern void InitDbBlockWrap(BOOL bTrue);
|
|||
|
|
extern void InitDbColumn(BOOL bTrue);
|
|||
|
|
extern void InitDbOpening(BOOL bTrue);
|
|||
|
|
extern void InitDbGroupOpening(BOOL bTrue);
|
|||
|
|
extern void InitDbWall(BOOL bTrue);
|
|||
|
|
extern void InitDbSlab(BOOL bTrue);
|
|||
|
|
extern void InitDbStep(BOOL bTrue);
|
|||
|
|
extern void InitDbInitSet(BOOL bTrue);
|
|||
|
|
extern void InitBlockExtension(BOOL bTrue);
|
|||
|
|
extern void InitDbErrorMsg(BOOL bTrue);
|
|||
|
|
extern void InitDbSpace(BOOL bTrue);
|
|||
|
|
extern void InitDbMesh(BOOL bTrue);
|
|||
|
|
extern void InitDbBalcony(BOOL bTrue);
|
|||
|
|
extern void InitDbVertSlab(BOOL bTrue);
|
|||
|
|
extern void InitDbWallPatch(BOOL bTrue);
|
|||
|
|
extern void InitDbCornerWin(BOOL bTrue);
|
|||
|
|
extern void InitDbBandWin(BOOL bTrue);
|
|||
|
|
extern void InitDbCurveMesh(BOOL bTrue);
|
|||
|
|
extern void InitDbCurveMesh2(BOOL bTrue);
|
|||
|
|
extern void InitDbPolyMesh(BOOL bTrue);
|
|||
|
|
extern void InitDbPolyMesh2(BOOL bTrue);
|
|||
|
|
extern void InitDbPolyPathArray(BOOL bTrue);
|
|||
|
|
extern void InitDbStair(BOOL bTrue);
|
|||
|
|
extern void InitDbHandRail(BOOL bTrue);
|
|||
|
|
extern void InitDbRail(BOOL bTrue);
|
|||
|
|
extern void InitDbPolyPathEnt(BOOL bTrue);
|
|||
|
|
extern void InitDbAscent(BOOL bTrue);
|
|||
|
|
extern void InitDbCamera(BOOL bTrue);
|
|||
|
|
extern void InitDbDimension(BOOL bTrue);
|
|||
|
|
extern void InitDbText(BOOL bTrue);
|
|||
|
|
extern void InitDbSheet(BOOL bTrue);
|
|||
|
|
extern void InitDbSymbolAnnotate(BOOL bTrue);
|
|||
|
|
extern void InitDbAxisLabelSet(BOOL bTrue);
|
|||
|
|
extern void InitDbCurtainWall(BOOL bTrue);
|
|||
|
|
extern void InitDbRect(BOOL bTrue);
|
|||
|
|
extern void InitDbSlope(BOOL bTrue);
|
|||
|
|
extern void InitAppDocGlobals(BOOL bTrue);
|
|||
|
|
extern void InitOpeningSlot(BOOL bTrue);
|
|||
|
|
extern void InitDbDormer(BOOL bTrue);
|
|||
|
|
extern void InitDbNetshelf(BOOL bTrue);
|
|||
|
|
extern void Init3DSolid(BOOL bTrue);
|
|||
|
|
extern void InitDbProtectEntity(BOOL bTrue);
|
|||
|
|
extern void InitDbDrawingName(BOOL bTrue);
|
|||
|
|
extern void InitDbPolyCurveEnt(BOOL bTrue);
|
|||
|
|
extern void InitDbDualSlopeRoof(BOOL bTrue);
|
|||
|
|
extern void InitDbCuspRoof(BOOL bTrue);
|
|||
|
|
extern void InitDbMountRoof(BOOL bTrue);
|
|||
|
|
extern void InitDbLandform(BOOL bTrue);
|
|||
|
|
extern void InitDbRegion(BOOL bTrue);
|
|||
|
|
|
|||
|
|
//add by xlc on 080104
|
|||
|
|
extern void InitDbParallelStair(BOOL bTrue);
|
|||
|
|
extern void InitDbCornerStair(BOOL bTrue);
|
|||
|
|
extern void InitDbCrossStair(BOOL bTrue);
|
|||
|
|
extern void InitDbScissorsStair(BOOL bTrue);
|
|||
|
|
extern void InitDbDoubleMulStair(BOOL bTrue);
|
|||
|
|
extern void InitDbTriangleStair(BOOL bTrue);
|
|||
|
|
extern void InitDbRectCornerStair(BOOL bTrue);
|
|||
|
|
extern void InitDbAutoStair(BOOL bTrue);
|
|||
|
|
|
|||
|
|
// sg add 080828,散水对象
|
|||
|
|
extern void InitDbApron(BOOL bTrue);
|
|||
|
|
|
|||
|
|
// sg add 100120,楼层框对象
|
|||
|
|
extern void IniTDbFloorRect(BOOL bTrue);
|
|||
|
|
|
|||
|
|
// sg add 120523,设备箱对象
|
|||
|
|
extern void InitDbEquipmentBox(BOOL bTrue);
|
|||
|
|
|
|||
|
|
// 电气标注
|
|||
|
|
extern void InitLampDim(BOOL bTrue);
|
|||
|
|
extern void InitWireDim(BOOL bTrue);
|
|||
|
|
extern int g_nProductId;
|
|||
|
|
|
|||
|
|
// 剖面对象
|
|||
|
|
extern void InitDbSection(BOOL bTrue);
|
|||
|
|
|
|||
|
|
// GlwKatana 对象
|
|||
|
|
extern void InitGlwKatana(BOOL bInit);
|
|||
|
|
// 场地红线对象
|
|||
|
|
extern void InitAreaRedLine(BOOL bInit);
|
|||
|
|
//内饰符号对象
|
|||
|
|
extern void InitInSight(BOOL bInit);
|
|||
|
|
|
|||
|
|
//在应用程序加载上需要做的动作
|
|||
|
|
void OnLoadApp()
|
|||
|
|
{
|
|||
|
|
TArchCmdReactor::Attach();
|
|||
|
|
|
|||
|
|
TchSubExport::RegisterClassId();
|
|||
|
|
_distSnap=0.01; // 1 or 4
|
|||
|
|
Refresh_DIST_SNAP();
|
|||
|
|
_angSnap=0.001;
|
|||
|
|
g_nCirDeviation=4;
|
|||
|
|
|
|||
|
|
// extern TCHAR g_sDwbPath[], g_sAppPath[];
|
|||
|
|
TCHAR dir[256]=_T("");
|
|||
|
|
_tcscpy(dir, g_sAppPath);
|
|||
|
|
|
|||
|
|
TCHAR *p=&dir[_tcslen(dir)-2];
|
|||
|
|
|
|||
|
|
while(*p!=_T('\\') && p!=dir) p--;
|
|||
|
|
if(*p==_T('\\')) *(p+1)=0;
|
|||
|
|
_tcscpy(g_sDwbPath, dir);
|
|||
|
|
_tcscat(g_sDwbPath, _T("DWB\\"));
|
|||
|
|
|
|||
|
|
|
|||
|
|
//LoadGlobalFromReg();
|
|||
|
|
LoadConfig();
|
|||
|
|
TchGeLib::g_ptrCodePageConvert = TchExport::ConvertDwgCodePage; //使得DWG的转换可以进行
|
|||
|
|
InitLayers(TRUE); //给层分配字符串空间
|
|||
|
|
InitTextStyles(TRUE);// 初始化文字样式变量,sg add 101229
|
|||
|
|
|
|||
|
|
TchAddCommand(_T("wfK"), g_cmdTable, ELEMENTS(g_cmdTable));
|
|||
|
|
if(g_nProductId==kTARCH)//各专业可以自定义TXX_TLoadConfig
|
|||
|
|
{
|
|||
|
|
XString sCmd=GetFullCmdName(_T("TLoadConfig"));
|
|||
|
|
acedRegCmds->addCommand(_T("wfK"),sCmd ,sCmd,
|
|||
|
|
ACRX_CMD_TRANSPARENT, LoadConfig, NULL, ELEMENTS(g_cmdTable));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TDbEntity::rxInit();
|
|||
|
|
TDbCurveEntity::rxInit();
|
|||
|
|
|
|||
|
|
InitDwgLicense(TRUE);
|
|||
|
|
|
|||
|
|
InitDbPolyCurveEnt(TRUE);
|
|||
|
|
InitDbCurveMesh2(TRUE);
|
|||
|
|
InitDbPolyMesh2(TRUE);
|
|||
|
|
InitDbPolyPathArray(TRUE);
|
|||
|
|
|
|||
|
|
InitDbPolyPathEnt(TRUE);
|
|||
|
|
InitDbWall(TRUE);
|
|||
|
|
InitDbCurtainWall(TRUE);
|
|||
|
|
InitDbOpening(TRUE);
|
|||
|
|
InitDbGroupOpening(TRUE);
|
|||
|
|
InitDbColumn(TRUE);
|
|||
|
|
InitDbWallPatch(TRUE);
|
|||
|
|
InitDbCornerWin(TRUE);
|
|||
|
|
InitDbBandWin(TRUE);
|
|||
|
|
|
|||
|
|
InitDbRoof(TRUE);
|
|||
|
|
InitDbDualSlopeRoof(TRUE);
|
|||
|
|
InitDbMountRoof(TRUE);
|
|||
|
|
InitDbCuspRoof(TRUE);
|
|||
|
|
InitDbCurveMesh(TRUE);
|
|||
|
|
InitDbPolyMesh(TRUE);
|
|||
|
|
InitDbSpace(TRUE);
|
|||
|
|
InitDbErrorMsg(TRUE);
|
|||
|
|
InitDbSlab(TRUE);
|
|||
|
|
InitDbInitSet(TRUE);
|
|||
|
|
InitDbBalcony(TRUE);
|
|||
|
|
InitDbVertSlab(TRUE);
|
|||
|
|
InitDbStep(TRUE);
|
|||
|
|
|
|||
|
|
InitDbAscent(TRUE);
|
|||
|
|
InitDbCamera(TRUE);
|
|||
|
|
InitDbAxisLabelSet(TRUE);
|
|||
|
|
InitDbStair(TRUE);
|
|||
|
|
InitDbHandRail(TRUE);
|
|||
|
|
InitDbRail(TRUE);
|
|||
|
|
InitDbDimension(TRUE);
|
|||
|
|
InitDbText(TRUE);
|
|||
|
|
InitDbSheet(TRUE);
|
|||
|
|
InitDbSymbolAnnotate(TRUE);
|
|||
|
|
InitDbBlockInsert(TRUE);
|
|||
|
|
InitDbRect(TRUE);
|
|||
|
|
InitDbSlope(TRUE);
|
|||
|
|
InitOpeningSlot(TRUE);
|
|||
|
|
InitDbDormer(TRUE);
|
|||
|
|
InitDbNetshelf(TRUE);
|
|||
|
|
Init3DSolid(TRUE);
|
|||
|
|
InitDbProtectEntity(TRUE);
|
|||
|
|
InitDbDrawingName(TRUE);
|
|||
|
|
InitDbLandform(TRUE);
|
|||
|
|
InitDbRegion(TRUE);
|
|||
|
|
|
|||
|
|
InitWireDim(TRUE);
|
|||
|
|
InitLampDim(TRUE);
|
|||
|
|
|
|||
|
|
//add by xlc on 080104
|
|||
|
|
InitDbParallelStair(TRUE);
|
|||
|
|
InitDbCornerStair(TRUE);
|
|||
|
|
InitDbCrossStair(TRUE);
|
|||
|
|
InitDbScissorsStair(TRUE);
|
|||
|
|
InitDbDoubleMulStair(TRUE);
|
|||
|
|
InitDbTriangleStair(TRUE);
|
|||
|
|
InitDbRectCornerStair(TRUE);
|
|||
|
|
InitDbAutoStair(TRUE);
|
|||
|
|
|
|||
|
|
InitDbApron(TRUE); // sg add 080828,散水
|
|||
|
|
IniTDbFloorRect(TRUE); // sg add 100120,楼层框
|
|||
|
|
InitDbEquipmentBox(TRUE); // sg add 120523,设备箱对象
|
|||
|
|
acrxBuildClassHierarchy();
|
|||
|
|
|
|||
|
|
InitAppDocGlobals(TRUE);
|
|||
|
|
InitDbSection(TRUE);
|
|||
|
|
InitGlwKatana(TRUE);
|
|||
|
|
InitAreaRedLine(TRUE);
|
|||
|
|
InitInSight(TRUE);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
extern XStringList g_lstFileRemove;
|
|||
|
|
extern void SaveGlobalToReg();
|
|||
|
|
//在应用程序卸载时需要做的动作
|
|||
|
|
void OnUnloadApp()
|
|||
|
|
{
|
|||
|
|
//add by whl 061219,当前配置恢复为默认配置
|
|||
|
|
#if (ARCH!=3)
|
|||
|
|
// sg modify 120228,自R19平台起,API进行了调整,下面的函数作废了
|
|||
|
|
// const TCHAR *pszRegAcad=acrxProductKey();
|
|||
|
|
const TCHAR *pszRegAcad=NULL;
|
|||
|
|
#if (ADS > 18)
|
|||
|
|
pszRegAcad = acdbHostApplicationServices()->getUserRegistryProductRootKey();
|
|||
|
|
#else
|
|||
|
|
pszRegAcad = acrxProductKey();
|
|||
|
|
#endif
|
|||
|
|
ASSERT(pszRegAcad);
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
BOOL bIsAcadCh=FALSE;
|
|||
|
|
//XString sRegProp(_T("%s\\Profiles"), pszRegAcad);
|
|||
|
|
{
|
|||
|
|
DWORD dwReserved = 0 ;
|
|||
|
|
HKEY hkObject = NULL ;
|
|||
|
|
LONG Retcode = ::RegOpenKeyEx ( HKEY_CURRENT_USER // handle of an open key
|
|||
|
|
, (const TCHAR *)XString(_T("%s\\Profiles\\<<未命名配置>>"), pszRegAcad)
|
|||
|
|
, dwReserved // reserved
|
|||
|
|
, KEY_READ // desired security access
|
|||
|
|
, &hkObject // address of buffer for opened handle
|
|||
|
|
) ;
|
|||
|
|
bIsAcadCh=(Retcode==ERROR_SUCCESS);
|
|||
|
|
if(bIsAcadCh)
|
|||
|
|
::RegCloseKey(hkObject);
|
|||
|
|
}
|
|||
|
|
CString csDefault=bIsAcadCh? _T("<<未命名配置>>") : _T("<<Unnamed Profile>>");
|
|||
|
|
{
|
|||
|
|
CRegProperty regProp(pszRegAcad, _T("Profiles"));
|
|||
|
|
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
|||
|
|
regProp.SetValue(_T(""), csDefault);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
InitAppDocGlobals(FALSE);
|
|||
|
|
|
|||
|
|
#if (ARCH!=3)
|
|||
|
|
acedRegCmds->removeGroup(_T("wfK"));
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
InitDbEquipmentBox(FALSE); // sg add 120523,设备箱
|
|||
|
|
IniTDbFloorRect(FALSE); // sg add 100120,楼层框
|
|||
|
|
InitDbApron(FALSE); // sg add 080828,散水
|
|||
|
|
|
|||
|
|
//add by xlc on 080104
|
|||
|
|
InitDbAutoStair(FALSE);
|
|||
|
|
InitDbRectCornerStair(FALSE);
|
|||
|
|
InitDbTriangleStair(FALSE);
|
|||
|
|
InitDbDoubleMulStair(FALSE);
|
|||
|
|
InitDbScissorsStair(FALSE);
|
|||
|
|
InitDbCrossStair(FALSE);
|
|||
|
|
InitDbCornerStair(FALSE);
|
|||
|
|
InitDbParallelStair(FALSE);
|
|||
|
|
|
|||
|
|
InitLampDim(FALSE);
|
|||
|
|
InitWireDim(FALSE);
|
|||
|
|
|
|||
|
|
InitDbRegion(FALSE);
|
|||
|
|
InitDbLandform(FALSE);
|
|||
|
|
InitDbDrawingName(FALSE);
|
|||
|
|
InitDbProtectEntity(FALSE);
|
|||
|
|
Init3DSolid(FALSE);
|
|||
|
|
InitDbNetshelf(FALSE);
|
|||
|
|
InitDbDormer(FALSE);
|
|||
|
|
InitDbGroupOpening(FALSE);
|
|||
|
|
InitOpeningSlot(FALSE);
|
|||
|
|
InitDbSlope(FALSE);
|
|||
|
|
InitDbRect(FALSE);
|
|||
|
|
InitDbBlockInsert(FALSE);
|
|||
|
|
InitDbSymbolAnnotate(FALSE);
|
|||
|
|
InitDbSheet(FALSE);
|
|||
|
|
InitDbText(FALSE);
|
|||
|
|
InitDbDimension(FALSE);
|
|||
|
|
InitDbRail(FALSE);
|
|||
|
|
InitDbHandRail(FALSE);
|
|||
|
|
InitDbStair(FALSE);
|
|||
|
|
InitDbAxisLabelSet(FALSE);
|
|||
|
|
InitDbCamera(FALSE);
|
|||
|
|
InitDbAscent(FALSE);
|
|||
|
|
InitDbStep(FALSE);
|
|||
|
|
InitDbBalcony(FALSE);
|
|||
|
|
InitDbVertSlab(FALSE);
|
|||
|
|
InitDbInitSet(FALSE);
|
|||
|
|
InitDbSlab(FALSE);
|
|||
|
|
InitDbErrorMsg(FALSE);
|
|||
|
|
InitDbSpace(FALSE);
|
|||
|
|
InitDbPolyMesh(FALSE);
|
|||
|
|
InitDbCurveMesh(FALSE);
|
|||
|
|
InitDbCurtainWall(FALSE);
|
|||
|
|
InitDbWall(FALSE);
|
|||
|
|
InitDbOpening(FALSE);
|
|||
|
|
InitDbColumn(FALSE);
|
|||
|
|
InitDbWallPatch(FALSE);
|
|||
|
|
InitDbCuspRoof(FALSE);
|
|||
|
|
InitDbMountRoof(FALSE);
|
|||
|
|
InitDbDualSlopeRoof(FALSE);
|
|||
|
|
InitDbRoof(FALSE);
|
|||
|
|
InitDbBandWin(FALSE);
|
|||
|
|
InitDbCornerWin(FALSE);
|
|||
|
|
InitDbPolyPathEnt(FALSE);
|
|||
|
|
|
|||
|
|
InitDbPolyPathArray(FALSE);
|
|||
|
|
InitDbPolyMesh2(FALSE);
|
|||
|
|
InitDbCurveMesh2(FALSE);
|
|||
|
|
InitDbPolyCurveEnt(FALSE);
|
|||
|
|
|
|||
|
|
InitDwgLicense(FALSE);
|
|||
|
|
InitDbSection(FALSE);
|
|||
|
|
InitGlwKatana(FALSE);
|
|||
|
|
InitAreaRedLine(FALSE);
|
|||
|
|
InitInSight(FALSE);
|
|||
|
|
|
|||
|
|
deleteAcRxClass(TDbEntity::desc());
|
|||
|
|
deleteAcRxClass(TDbCurveEntity::desc());
|
|||
|
|
|
|||
|
|
InitLayers(FALSE);
|
|||
|
|
InitTextStyles(FALSE);// 初始化文字样式变量,sg add 101229
|
|||
|
|
|
|||
|
|
for(int i=0; i<g_lstFileRemove.Length(); i++) {
|
|||
|
|
_tremove(g_lstFileRemove[i]);
|
|||
|
|
}
|
|||
|
|
g_lstFileRemove.Reset();
|
|||
|
|
|
|||
|
|
TArchCmdReactor::Detach();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////
|
|||
|
|
// Test Only
|
|||
|
|
|
|||
|
|
|
|||
|
|
void UpdateFrom6()
|
|||
|
|
{
|
|||
|
|
extern void ConvertDim6();
|
|||
|
|
ConvertDim6();
|
|||
|
|
}
|
|||
|
|
// 由上华5的Beta版本升级到正式版本
|
|||
|
|
BOOL g_bUpdateBeta=FALSE;
|
|||
|
|
void UpdateFromBeta()
|
|||
|
|
{
|
|||
|
|
if(!g_bUpdateBeta)
|
|||
|
|
return;
|
|||
|
|
g_bUpdateBeta=FALSE;
|
|||
|
|
|
|||
|
|
PickSet ss(SS_FREE);
|
|||
|
|
RBList mask=ads_buildlist(RTDXF0, _T("ATS_WALL"), NULL);
|
|||
|
|
if(ss.Get(_T("X"), NULL, NULL, mask)==RTNORM) {
|
|||
|
|
long nLen=ss.Length();
|
|||
|
|
for(long i=0; i<nLen; i++) {
|
|||
|
|
Entity ent=ss[i];
|
|||
|
|
OPENOBJ_BEGIN(ent, AcDb::kForWrite, TDbWall, pWall);
|
|||
|
|
if(pWall)
|
|||
|
|
pWall->UpdateFromBeta();
|
|||
|
|
OPENOBJ_END();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 更新转角窗
|
|||
|
|
PickSet ssWin(SS_FREE);
|
|||
|
|
if(ss.Get(_T("X"), NULL, NULL, RBList(RTDXF0, _T("ATS_OPENING"), NULL))==RTNORM) {
|
|||
|
|
long nLen=ss.Length();
|
|||
|
|
for(long i=0; i<nLen; i++) {
|
|||
|
|
Entity ent=ss[i];
|
|||
|
|
OPENOBJ_BEGIN(ent, AcDb::kForRead, TDbOpening, pWin);
|
|||
|
|
if(pWin && pWin->GetKind()==TOpeningData::OP_CORNWIN)
|
|||
|
|
{
|
|||
|
|
if(pWin->upgradeOpen()==Acad::eOk) {
|
|||
|
|
pWin->recordGraphicsModified();
|
|||
|
|
pWin->downgradeOpen();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
OPENOBJ_END();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 更新尺寸标注样式问题
|
|||
|
|
void UpdateFrom8()
|
|||
|
|
{
|
|||
|
|
AcDbDatabase *pCurDwg =acdbCurDwg();
|
|||
|
|
if (pCurDwg == NULL)
|
|||
|
|
return;
|
|||
|
|
|
|||
|
|
AcDbDimStyleTable *pTable = NULL;
|
|||
|
|
if (pCurDwg->getSymbolTable(pTable, AcDb::kForRead) != Acad::eOk)
|
|||
|
|
return;
|
|||
|
|
|
|||
|
|
AcDbDimStyleTableIterator *pIter = NULL;
|
|||
|
|
if (pTable->newIterator(pIter)!=Acad::eOk || pIter==NULL)
|
|||
|
|
{
|
|||
|
|
pTable->close();
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
pTable->close();
|
|||
|
|
|
|||
|
|
AcDbObjectId idDimblk;
|
|||
|
|
double dDimasz = 1.0;
|
|||
|
|
|
|||
|
|
for (pIter->start(); !pIter->done(); pIter->step())
|
|||
|
|
{
|
|||
|
|
AcDbDimStyleTableRecord *pDimStyle = NULL;
|
|||
|
|
if (pIter->getRecord(pDimStyle, AcDb::kForRead)!=Acad::eOk || pDimStyle==NULL)
|
|||
|
|
continue;
|
|||
|
|
|
|||
|
|
idDimblk = pDimStyle->dimblk();
|
|||
|
|
dDimasz = pDimStyle->dimasz();
|
|||
|
|
|
|||
|
|
if (!idDimblk && fabs(dDimasz-1.0)<1.0E-3) // “实心闭合”样式
|
|||
|
|
{
|
|||
|
|
if (pDimStyle->upgradeOpen() == Acad::eOk)
|
|||
|
|
{
|
|||
|
|
pDimStyle->setDimasz(2.0);
|
|||
|
|
pDimStyle->downgradeOpen();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
pDimStyle->close();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
delete pIter;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TARCH_IMPEXP void UpdateAllLinkage()
|
|||
|
|
{
|
|||
|
|
//取得所有的裁剪区域
|
|||
|
|
DList<AcDbObjectId> lstClipBoundry;
|
|||
|
|
GetEntFromBlockByDxf(lstClipBoundry, _T("ATS_COLUMN"));
|
|||
|
|
|
|||
|
|
PickSet ss(SS_FREE);
|
|||
|
|
GetEntByDxf(ss, _T("ATS_WALL,ATS_CURTAIN_WALL"),1);
|
|||
|
|
if(!ss)
|
|||
|
|
return;
|
|||
|
|
XSearchSpaceFromWall aSearch;
|
|||
|
|
try {
|
|||
|
|
aSearch.InitStart(ss, lstClipBoundry); //实际并不搜索房间,仅建立排序表
|
|||
|
|
} catch(...) {
|
|||
|
|
adsout << /*UMSG*/_T("\n发生例外情况!");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
long len = ss.Length();
|
|||
|
|
for(long i=0; i<len; i++) {
|
|||
|
|
Entity ent=ss[i];
|
|||
|
|
XDbObject obj(ent.name, AcDb::kForWrite);
|
|||
|
|
if(!obj) { //Extend一墙体时, 指针还没有关闭
|
|||
|
|
continue;
|
|||
|
|
//adsout << _T("\nCan't open a wall for modify!");
|
|||
|
|
} else {
|
|||
|
|
TDbWall *pWall=TDbWall::cast(obj.m_pObject);
|
|||
|
|
if(pWall) {
|
|||
|
|
pWall->assertWriteEnabled();
|
|||
|
|
pWall->CalSideParameters(ent,
|
|||
|
|
GetAllSortWalls());
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for(i=0; i<len; i++) {
|
|||
|
|
Entity ent=ss[i];
|
|||
|
|
XDbObject obj(ent.name, AcDb::kForWrite);
|
|||
|
|
if(!obj) { //Extend一墙体时, 指针还没有关闭
|
|||
|
|
continue;
|
|||
|
|
//adsout << _T("\nCan't open a wall for modify!");
|
|||
|
|
} else {
|
|||
|
|
TDbWall *pWall=TDbWall::cast(obj.m_pObject);
|
|||
|
|
if(pWall) {
|
|||
|
|
pWall->assertWriteEnabled();
|
|||
|
|
pWall->CalSideParameters1();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
aSearch.UpdateColuLinkage();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
int RepStatus()
|
|||
|
|
{
|
|||
|
|
extern double g_nUseHours;
|
|||
|
|
resbuf *rb=ads_getargs();
|
|||
|
|
if(rb) {
|
|||
|
|
if(rb->restype==RTSHORT && rb->resval.rint==999) {
|
|||
|
|
adsout << _T("\nProductId=") << g_nProductId;
|
|||
|
|
adsout << _T("\nProtectCode=") << TchGeLib::g_nProtectCode;
|
|||
|
|
adsout << _T("\nUseHours=") << g_nUseHours;
|
|||
|
|
}
|
|||
|
|
ads_relrb(rb);
|
|||
|
|
}
|
|||
|
|
return RTNORM;
|
|||
|
|
}
|