#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 cmdecho(_T("CMDECHO"), 0); //XPushVar 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("<>"); { 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; iUpdateFromBeta(); 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; iGetKind()==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 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; iassertWriteEnabled(); pWall->CalSideParameters(ent, GetAllSortWalls()); } } } for(i=0; iassertWriteEnabled(); 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; }