1460 lines
46 KiB
C++
1460 lines
46 KiB
C++
#include "stdafx.h"
|
||
#include "rxregsvc.h"
|
||
#include "axlock.h"
|
||
#include "resource.h"
|
||
#include "TWDict.h"
|
||
#include "TWDictItem.h"
|
||
#include "TDonotMonitorMe.h"
|
||
|
||
//extern GEOAPI BOOL g_bExplodeMesh;
|
||
//extern TARCH_IMPEXP void UpdateGraphic(const DList<AcDbObjectId> &ss);
|
||
//extern TARCH_IMPEXP void DocStatus();
|
||
|
||
/////////////////////////////////////////////////////////////////////
|
||
// 驻留在系统注册表的全局设定
|
||
//TARCH_IMPEXP BOOL g_bExplodeMesh=TRUE;
|
||
|
||
TARCH_IMPEXP BOOL g_bDynDim=TRUE;//是否启用尺寸联动
|
||
TARCH_IMPEXP BOOL g_bABCoord=FALSE; //AB标注还是XY标注
|
||
TARCH_IMPEXP double g_nWalkDistStep=1000.0;
|
||
TARCH_IMPEXP double g_nWalkAngleStep=5.0*PI/180;
|
||
TARCH_IMPEXP BOOL g_bZoomKey=FALSE; // TAB/~缩放热键
|
||
TARCH_IMPEXP BOOL g_bDwgTabBar=TRUE; //DWG文档切换标签
|
||
TARCH_IMPEXP BOOL g_bHideCaption=FALSE;//隐藏标题栏
|
||
TARCH_IMPEXP BOOL g_bDragRubber=TRUE; //橡皮筋拖动(自由复制)
|
||
|
||
//模数控制
|
||
BOOL g_bModelNumber=FALSE;
|
||
double g_nWinStep=10.0;
|
||
double g_nWallStep=300.0;
|
||
|
||
int g_nDimAdjust=1; // 尺寸自调:0--不调, 1--上调, 2--下调
|
||
//BOOL g_bSaveProxyGraph=FALSE; //默认不存储Proxy的图像
|
||
|
||
ads_real g_nDistPrec=20.0; //墙体衔接控制精度
|
||
|
||
TARCH_IMPEXP int g_nDimNumGripTip=20; //尺寸区间个数超过后,不解释夹点
|
||
TARCH_IMPEXP BOOL g_nLineDimArrow=0; // 0--粗线;1--细线; 2--圆点
|
||
TARCH_IMPEXP BOOL g_nAngleDimArrow=0; // 0--标准箭头; 1--圆点
|
||
// sg add 120412,根据9.0需求,增加设置弧长标注样式的设置
|
||
TARCH_IMPEXP int g_nArcLenDimType=0;//wlw 130617默认指向圆心
|
||
//TARCH_IMPEXP double g_nCurtainWall3Scale=100.0;//幕墙34线控制比例
|
||
// sg modify 090609,将默认值改为150
|
||
TARCH_IMPEXP double g_nCurtainWall3Scale=150.0;//幕墙34线控制比例
|
||
TARCH_IMPEXP int g_nWallBaseColor=46;//墙基线颜色
|
||
TARCH_IMPEXP int g_nCutLineColor=149;//切割线颜色
|
||
TARCH_IMPEXP int g_nHideAxisLabelColor=108;//隐藏轴号颜色
|
||
TARCH_IMPEXP int g_nWallExtSideColor=5;//墙外侧颜色,暂时用TLEA表示幕墙
|
||
TARCH_IMPEXP BOOL g_bAutoLTScale=TRUE; //是否自动设置线型比例
|
||
TARCH_IMPEXP double g_nLtPScale=10.0; //图纸空间自动线型
|
||
TARCH_IMPEXP double g_nLtMScale=1000.0;//模型空间自动线型
|
||
TARCH_IMPEXP int g_nMaxGripHint=20; //当选中的物体超过这个数时,不解释夹点
|
||
|
||
// TArch8.0,sg add 090512/090609/090612
|
||
TARCH_IMPEXP double g_dElevTextBaseLen = 16.0; // 空白标高符号默认文字基线长度
|
||
TARCH_IMPEXP double g_dDrawIndexTextRatio = 0.6; // 圆圈文字字高系数
|
||
TARCH_IMPEXP double g_dAxisLabelTextRatio = 0.7; // 轴号字高系数
|
||
TARCH_IMPEXP double g_dAxisLabelDia = 8.0; // 轴圈直径
|
||
TARCH_IMPEXP double g_dRuptureLenLimit = 1000.0; // 折断线连接区间长度界限值
|
||
TARCH_IMPEXP double g_dMoreRuptureLimit = 6.0; // 大于界限值时,出头距离
|
||
TARCH_IMPEXP double g_dLessRuptureLimit = 3.0; // 小于界限值时,出头距离
|
||
TARCH_IMPEXP BOOL g_bCurtainWallFixStyle = FALSE; // 带形窗幕墙样式,比例改变后不改样式
|
||
TARCH_IMPEXP int g_nCurtainWallStyle = 0; // 带形窗幕墙样式,不改样式时的设定类型
|
||
TARCH_IMPEXP BOOL g_bDrawIndexOldStyle = FALSE; // 圆圈文字不使用旧样式
|
||
|
||
|
||
// TArch8.5,sg add 100125
|
||
TARCH_IMPEXP BOOL g_bShowFloorRect = TRUE; // 是否显示楼层框对象
|
||
// sg add 100601
|
||
TARCH_IMPEXP BOOL g_bIgnoreAttach = TRUE; // 一轴多号时,是否忽略附加轴号
|
||
TARCH_IMPEXP int g_nAfterYAxisStyle = 0; // 字母Y后面采用的注脚形式
|
||
// sg add 100714
|
||
// sg modify 110510,根据需求,修改默认值,保持和8.2一致
|
||
//TARCH_IMPEXP BOOL g_bWallHasInsulateCap = TRUE; // 墙体保温是否封口
|
||
TARCH_IMPEXP BOOL g_bWallHasInsulateCap = FALSE; // 墙体保温是否封口
|
||
// sg delete 101209,根据讨论,暂时去掉高级选项中的该设置
|
||
// sg add 101105
|
||
// TARCH_IMPEXP BOOL g_bUniformSpaceDim = TRUE; // 房间面积标注方式是否统一控制
|
||
// sg add 101209
|
||
TARCH_IMPEXP double g_dIndexPointerBaseLen = 5.0; // 索引符号延长线的默认长度
|
||
TARCH_IMPEXP double g_dSectionBaseLen = 5.0; // 剖切索引剖切线的默认长度
|
||
// sg add 110124
|
||
TARCH_IMPEXP BOOL g_bDIOutCircleStyle = FALSE; // 圆圈文字支持出圈样式
|
||
TARCH_IMPEXP BOOL g_bElevFloorsOnRight = TRUE; // 多层标高符号中的楼层是否在标高值右侧,默认在右侧
|
||
|
||
TARCH_IMPEXP BOOL g_bBlaconyHalf=TRUE; // add by xlc on 090625 阳台按一半面积计算
|
||
|
||
// TArch9.0
|
||
TARCH_IMPEXP int g_bNorthThumbTextDir = 1; // sg add 111221,增加指北针文字方向的的全局变量
|
||
TARCH_IMPEXP BOOL g_bDownloadT3Split=TRUE; // sg add 120516,文字导出T3版本时候,是否断开
|
||
|
||
//TArch6.5
|
||
TARCH_IMPEXP int g_nCoordPrec=3; //坐标标注精度
|
||
TARCH_IMPEXP int g_nCoordArrowStyle=0;
|
||
TARCH_IMPEXP int g_nSymbArrowStyle=0;
|
||
TARCH_IMPEXP double g_fWinLabelDefaultHeight=3.5;//门窗编号默认字高,add by whl
|
||
|
||
TARCH_IMPEXP BOOL g_bDblClkEditObj=TRUE;//双击对象编辑控制,add by whl
|
||
TARCH_IMPEXP BOOL g_bDblCancelSelect=TRUE;//双击空白取消选择,add by whl
|
||
TARCH_IMPEXP int g_nSpeedMenu=1; //快捷菜单: 0--取消; 1--右键; 2--Ctrl+右键,3--慢击右键
|
||
TARCH_IMPEXP int g_nRBtnMenuTime=150;//空白右銉慢击时间阀,g_nSpeedMenu==3时有效
|
||
|
||
TARCH_IMPEXP int g_nMaxAutoScale=200;
|
||
TARCH_IMPEXP BOOL g_bIgnoreStairRail=TRUE;//在建筑立剖面、单层立剖面命令中,双跑和多跑楼梯的扶手和栏杆可以选择忽略
|
||
TARCH_IMPEXP double g_nText2Base=1.0;//文字距离基线的距离,TArch8 Obsolete
|
||
TARCH_IMPEXP double g_nText2BaseRatio=0.3;//文字距离基线系数(与字高有关).TArch8 Add
|
||
|
||
//默认尺寸样式
|
||
//粗斜线
|
||
TARCH_IMPEXP CString g_sDim0=_T("_TCH_ARCH");
|
||
TARCH_IMPEXP CString g_sDim0M_M=_T("_TCH_ARCH_M_M");
|
||
TARCH_IMPEXP CString g_sDim0mm_M=_T("_TCH_ARCH_mm_M");
|
||
//细斜线
|
||
TARCH_IMPEXP CString g_sDim1=_T("_TCH_ARCH1");
|
||
TARCH_IMPEXP CString g_sDim1M_M=_T("_TCH_ARCH1_M_M");
|
||
TARCH_IMPEXP CString g_sDim1mm_M=_T("_TCH_ARCH1_mm_M");
|
||
//圆点
|
||
TARCH_IMPEXP CString g_sDim2=_T("_TCH_DOTE");
|
||
TARCH_IMPEXP CString g_sDim2M_M=_T("_TCH_DOTE_M_M");
|
||
TARCH_IMPEXP CString g_sDim2mm_M=_T("_TCH_DOTE_mm_M");
|
||
//角度箭头
|
||
TARCH_IMPEXP CString g_sDimA0=_T("_TCH_ARROW");
|
||
//角度圆点
|
||
TARCH_IMPEXP CString g_sDimA1=_T("_TCH_DOTE");
|
||
|
||
TARCH_IMPEXP double g_dBaseDist=1000;//轴线伸出长度
|
||
TARCH_IMPEXP double g_fRuptureExDist=3.0;//折断线出头(图纸单位),需加入Config.ini!
|
||
|
||
TARCH_IMPEXP double g_nInsulateThick=80;//默认保温层厚度
|
||
|
||
TARCH_IMPEXP CString g_sWinLabelPostFix=_T("反");//门窗后缀命令默认加的后缀
|
||
//屏幕菜单
|
||
TARCH_IMPEXP BOOL g_bRightScreenMenu = TRUE; // add by gjm 屏幕是否靠右
|
||
TARCH_IMPEXP BOOL g_bLimitHeight=FALSE;//外部限高
|
||
TARCH_IMPEXP BOOL g_bDefaultOpenFirst=FALSE;//默认打开新一个
|
||
TARCH_IMPEXP BOOL g_bScrollBar=FALSE;//是否需要右滚动条
|
||
TARCH_IMPEXP int g_iMenuType=0;//菜单文件
|
||
TARCH_IMPEXP int g_nRunMode=0; //运行模式, 0--新模式,1--旧模式
|
||
TARCH_IMPEXP int g_menuColors[4]={GetSysColor(COLOR_3DFACE),RGB(239,239,236),RGB(250,254,254),RGB(255,255,252)};
|
||
|
||
//在位编辑器
|
||
TARCH_IMPEXP int g_colorInPlaceText=RGB(0,70,160);
|
||
TARCH_IMPEXP int g_colorInPlaceGround=RGB(235,233,230);
|
||
TARCH_IMPEXP int g_iInPlaceFontHeight=18;
|
||
TARCH_IMPEXP BOOL g_bDClickInplaceEdit=TRUE;
|
||
//环境记忆
|
||
TARCH_IMPEXP CString g_sRecentFiles;
|
||
TARCH_IMPEXP BOOL g_bAutoOpenRecent=FALSE;
|
||
TARCH_IMPEXP BOOL g_bProjectBarVisible=FALSE;
|
||
|
||
TARCH_IMPEXP double g_nDefaultScale=100;//模型空间默认出图比例
|
||
|
||
// 动态输入,只对2004、2005有效;2006以上,则使用AutoCAD自带的
|
||
//TARCH_IMPEXP BOOL g_bDynInput=TRUE; // 是否启动动态输入,
|
||
//TARCH_IMPEXP int g_iMaxDynDimNum=2; // 最多动态数量
|
||
// sg add 100112,增加“编组”控制
|
||
TARCH_IMPEXP BOOL g_bMakeGroup=TRUE; // 是否启动动态编组
|
||
// sg add 100915,增加“文字图层类型”的控制开关
|
||
TARCH_IMPEXP BOOL g_bTextDefaultLayer=TRUE; // TRUE为使用默认图层
|
||
|
||
// add by gjm 2015/05/05 为 符号、标高、坐标 三个实体增加相应的图层
|
||
TARCH_IMPEXP BOOL g_bSymbolDefLayer = TRUE; // TRUE为使用默认图层
|
||
TARCH_IMPEXP BOOL g_bCoordDefLayer = TRUE; // TRUE为使用默认图层
|
||
TARCH_IMPEXP BOOL g_bElevaDefLayer = TRUE; // TRUE为使用默认图层
|
||
// end
|
||
|
||
// sg add 110120,增加凸窗挡板保温、转角凸窗保温、门窗套保温厚度的默认数据,默认值均为30
|
||
TARCH_IMPEXP double g_dProWinSlabInsuThick=30;
|
||
TARCH_IMPEXP double g_dCornerWinInsuThick=30;
|
||
TARCH_IMPEXP double g_dSlotInsulateThick=30;
|
||
// sg add 110120,增加门窗套保温端头是否封口,默认封口
|
||
TARCH_IMPEXP BOOL g_bSlotInsulateCap=TRUE;
|
||
// sg add 110120,增加阳台栏板遮挡保温层,默认遮挡
|
||
TARCH_IMPEXP BOOL g_bBalconyClipInsu=TRUE;
|
||
|
||
// sg add 110301,增加三角形标高符号、圆点标高符号默认直径或尺寸大小
|
||
TARCH_IMPEXP double g_dEleTriangleSize = 3;
|
||
TARCH_IMPEXP double g_dEleDoteSize = 1.5;
|
||
TARCH_IMPEXP double g_dEleCrossSize = 2.5;
|
||
// sg add 110301,增加断面、剖面剖切符号中,剖切位置线默认长度、剖视方向线默认长度的大小设置
|
||
TARCH_IMPEXP double g_dSectionSegLocLength = 10;
|
||
TARCH_IMPEXP double g_dSectionSegDirLength = 6;
|
||
// sg add 110301,增加索引符号中,号圈直径设置
|
||
TARCH_IMPEXP double g_dIndexPointerDia = 10;
|
||
// sg add 110301,增加符号文字导出所在图层设置
|
||
TARCH_IMPEXP int g_nSymbTextT3Layer = 1; // 0--对象层,1--文字层
|
||
// sg add 110301,增加索引图名号圈直径设置
|
||
TARCH_IMPEXP double g_dSymbDrawingIndexDia = 14;
|
||
|
||
TARCH_IMPEXP BOOL g_bMakeExtSpace=TRUE;//搜索房间时是否生成建筑面积
|
||
TARCH_IMPEXP BOOL g_bIgnoreColumn=TRUE;//建筑面积是否忽略柱子凸出部分
|
||
TARCH_IMPEXP BOOL g_bEnableSelectPreview=TRUE;//是否选择预览(<2006),是否使用选择预览右键菜单
|
||
TARCH_IMPEXP BOOL g_bAutoFocus=TRUE;
|
||
|
||
//快捷銉
|
||
TARCH_IMPEXP const TKeyMaps* g_pKeyMapTable=NULL;
|
||
TARCH_IMPEXP BOOL g_bEnableShortCut=TRUE;
|
||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
TARCH_IMPEXP int g_nProductId=kTARCH;
|
||
TARCH_IMPEXP int g_nLicenseMode=0;//0:试用版;1单机版;2网络版;3高教网络版
|
||
|
||
TARCH_IMPEXP TCHAR g_szRegLoc[256]=_T("SoftWare\\Tangent\\TArch\\8.0");
|
||
TARCH_IMPEXP int g_nCustomFlag=0;
|
||
TARCH_IMPEXP double g_nVersion=8.0;
|
||
|
||
//TARCH_IMPEXP TCHAR g_sDwbPath[256]=_T("\\");
|
||
//TARCH_IMPEXP TCHAR g_sAppPath[256]=_T("C:\\");
|
||
|
||
|
||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
// LoadGlobalFromReg
|
||
// 应用程序加载时, 从OS的注册表中取全局变量
|
||
TARCH_IMPEXP void LoadGlobalFromReg()
|
||
{
|
||
XString sTchIni;
|
||
if (FindFile(_T("tch.ini"), sTchIni))
|
||
{
|
||
INI_struct *inis=NULL;
|
||
if (CT_get_INIs(sTchIni, _T("Product"), &inis))
|
||
{
|
||
TCHAR *pReg=CT_get_INI2(inis, _T("Registry"));
|
||
if(pReg)
|
||
_tcscpy(g_szRegLoc, pReg);
|
||
TCHAR *pProdId=CT_get_INI2(inis, _T("ProductId"));
|
||
if(pProdId)
|
||
g_nProductId=_ttoi(pProdId);
|
||
TCHAR *pCustomFlag=CT_get_INI2(inis, _T("CustomFlag"));
|
||
if(pCustomFlag)
|
||
g_nCustomFlag=_ttoi(pCustomFlag);
|
||
CT_free_INIs(inis);
|
||
}
|
||
}
|
||
|
||
{
|
||
CRegProperty regProp(GetRegLocation(), _T("Settings"));
|
||
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
||
regProp.GetValue(_T("DynDim"), g_bDynDim);
|
||
regProp.GetValue(_T("ABCoord"), g_bABCoord);
|
||
//regProp.GetValue(_T("AngleDimArrow"), g_nAngleDimArrow);
|
||
//regProp.GetValue(_T("LineDimArrow"), g_nLineDimArrow);
|
||
regProp.GetValue(_T("DimAdjust"), g_nDimAdjust);
|
||
// sg delete 090608,转移到高级选项及图中保存
|
||
// regProp.GetValue(_T("CurtainWallScale"), g_nCurtainWall3Scale);
|
||
regProp.GetValue(_T("MaxDimGrip"), g_nDimNumGripTip);
|
||
regProp.GetValue(_T("SpeedMenu"), g_nSpeedMenu);
|
||
regProp.SetValue(_T("RMenuTimer"), g_nRBtnMenuTime);
|
||
regProp.GetValue(_T("ModelNumber"), g_bModelNumber);
|
||
regProp.GetValue(_T("WinStep"), g_nWinStep);
|
||
regProp.GetValue(_T("WallStep"), g_nWallStep);
|
||
|
||
regProp.GetValue(_T("ZoomKey"), g_bZoomKey);
|
||
regProp.GetValue(_T("DwgTabBar"), g_bDwgTabBar);
|
||
regProp.GetValue(_T("HideCaption"), g_bHideCaption);
|
||
regProp.GetValue(_T("ExplodeType"), g_bExplodeMesh);
|
||
regProp.GetValue(_T("DragRubber"), g_bDragRubber);
|
||
regProp.GetValue(_T("DblClkEditObj"),g_bDblClkEditObj);
|
||
regProp.GetValue(_T("DblClkInplaceEdit"),g_bDClickInplaceEdit);
|
||
regProp.GetValue(_T("InPlaceEditTextColor"),g_colorInPlaceText);
|
||
regProp.GetValue(_T("InPlaceEditBkColor"),g_colorInPlaceGround);
|
||
regProp.GetValue(_T("InPlaceEditFontSize"),g_iInPlaceFontHeight);
|
||
regProp.GetValue(_T("Dynamic"),g_bDynInput);
|
||
regProp.GetValue(_T("MaxDynDimNum"),g_iMaxDynDimNum);
|
||
// sg add 100112,增加“编组”控制
|
||
regProp.GetValue(_T("MakeGroup"), g_bMakeGroup);
|
||
// sg add 100915,增加“文字图层类型”的控制开关
|
||
regProp.GetValue(_T("TextDefaultLayer"), g_bTextDefaultLayer);
|
||
|
||
// add by gjm 2014/05/05
|
||
regProp.GetValue(_T("SymbolDefaultLayer"), g_bSymbolDefLayer);
|
||
regProp.GetValue(_T("CoordDefaultLayer"), g_bCoordDefLayer);
|
||
regProp.GetValue(_T("ElevaDefaultLayer"), g_bElevaDefLayer);
|
||
// end
|
||
#if ADS<16
|
||
regProp.GetValue(_T("RecentFiles15"),g_sRecentFiles);
|
||
#else
|
||
regProp.GetValue(_T("RecentFiles16"),g_sRecentFiles);
|
||
#endif
|
||
|
||
regProp.GetValue(_T("AutoOpenRecent"),g_bAutoOpenRecent);
|
||
regProp.GetValue(_T("AutoFocus"),g_bAutoFocus);
|
||
regProp.GetValue(_T("SelectPreview"),g_bEnableSelectPreview);
|
||
regProp.GetValue(_T("MakeExtSpace"),g_bMakeExtSpace);
|
||
regProp.GetValue(_T("IgnoreColumn"),g_bIgnoreColumn);
|
||
regProp.GetValue(_T("MaxAutoUpdateScale"),g_nMaxAutoScale);
|
||
regProp.GetValue(_T("EnableShortCut"),g_bEnableShortCut);
|
||
|
||
// sg delete 101125,根据8.5需求,阳台面积按一半计算的数据改到对象中,取消注册表中的全局设置
|
||
// regProp.GetValue(_T("BlaconyHalf"),g_bBlaconyHalf);//add by xlc on 090625
|
||
}
|
||
|
||
XString sProfile;
|
||
xg_getvar(_T("CPROFILE"), sProfile);
|
||
if(!sProfile)
|
||
sProfile=_T("Settings");
|
||
CRegProperty regProp(GetRegLocation(), sProfile);
|
||
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
||
regProp.GetValue(_T("WalkDistStep"), g_nWalkDistStep);
|
||
regProp.GetValue(_T("WalkAngleStep"), g_nWalkAngleStep);
|
||
regProp.GetValue(_T("CoordPrec"), g_nCoordPrec);
|
||
regProp.GetValue(_T("CoordArrowStyle"),g_nCoordArrowStyle);
|
||
regProp.GetValue(_T("SymbArrowStyle"),g_nSymbArrowStyle);
|
||
if(g_nCoordPrec<0)
|
||
g_nCoordPrec=3;
|
||
|
||
{
|
||
XString sKey;
|
||
sKey << GetRegLocation() << _T("\\Settings");
|
||
CRegProperty reg(sKey, _T("ScreenMenu"));
|
||
reg.SetTopRootKey(HKEY_CURRENT_USER);
|
||
reg.GetValue(_T("MenuType"),g_iMenuType);
|
||
if(g_iMenuType==2)
|
||
g_nRunMode=1;
|
||
else
|
||
g_nRunMode=0;
|
||
reg.GetValue(_T("ScreenMenuColor0"),g_menuColors[0]);
|
||
reg.GetValue(_T("ScreenMenuColor1"),g_menuColors[1]);
|
||
reg.GetValue(_T("ScreenMenuColor2"),g_menuColors[2]);
|
||
reg.GetValue(_T("ScreenMenuColor3"),g_menuColors[3]);
|
||
}
|
||
}
|
||
|
||
// sg modify 090512/090609/090612,满足8.0的需求,新增加了一些全局设置
|
||
// sg modify 110301,根据8.5需求,整体修改了高级选项中的全局设置
|
||
TARCH_IMPEXP void LoadConfig()
|
||
{
|
||
LoadGlobalFromReg();
|
||
|
||
XString sFullFile;
|
||
if (!FindFile(_T("config.ini"), sFullFile))
|
||
return;
|
||
|
||
WDict dict;
|
||
dict.ReadFile(sFullFile);
|
||
|
||
//CString sPath=_T("轴线\\轴线出头");
|
||
//WDictItem *pItem=dict.FindItem(sPath);
|
||
|
||
OPEN_DICT(dict);
|
||
OPEN_SUB_DICT(_T("系统"));
|
||
GET_BOOL(_T("是否启用代理对象"),g_bSaveProxyGraph);
|
||
GET_VALUE(_T("最大自动更新规模"),g_nMaxAutoScale);
|
||
//GET_VALUE(_T("模型空间默认出图比例"),g_nDefaultScale);if(g_nDefaultScale<0.0001)g_nDefaultScale=100;
|
||
GET_VALUE(_T("模型空间默认当前比例"),g_nDefaultScale);if(g_nDefaultScale<0.0001)g_nDefaultScale=100;
|
||
unsigned int type=0;
|
||
GET_VALUE(_T("三维对象分解方式"),type);g_bExplodeMesh=type==0;
|
||
|
||
OPEN_SUB_DICT(_T("精度"));
|
||
GET_VALUE(_T("墙体衔接控制精度"),g_nDistPrec);if(g_nDistPrec<1E-9||g_nDistPrec>1000)g_nDistPrec=20;
|
||
GET_VALUE(_T("距离精度"),_distSnap);if(_distSnap<1E-9||_distSnap>1000)_distSnap=0.01;
|
||
Refresh_DIST_SNAP();
|
||
GET_VALUE(_T("角度精度"),_angSnap);if(_angSnap<1E-9||_angSnap>1000)_angSnap=0.01;
|
||
GET_VALUE(_T("分弧精度"),g_nCirDeviation);if(g_nCirDeviation<1E-9)g_nCirDeviation=1;
|
||
CLOSE_SUB_DICT();
|
||
|
||
OPEN_SUB_DICT(_T("线型"));
|
||
GET_BOOL(_T("是否启用自动线型比例"),g_bAutoLTScale);
|
||
GET_VALUE(_T("模型空间自动线型比例"),g_nLtMScale);if(g_nLtMScale<1E-9)g_nLtMScale=1000;
|
||
GET_VALUE(_T("图纸空间自动线型比例"),g_nLtPScale);if(g_nLtPScale<1E-9)g_nLtPScale=10;
|
||
CLOSE_SUB_DICT();
|
||
|
||
// sg delete 110530,根据讨论,暂时去掉高级选项中的该设置
|
||
// sg add 100125,满足8.5需求
|
||
// GET_BOOL(_T("是否显示楼层框"),g_bShowFloorRect);
|
||
CLOSE_SUB_DICT();
|
||
|
||
|
||
OPEN_SUB_DICT(_T("轴线"));
|
||
GET_VALUE(_T("轴线出头"),g_dBaseDist);if(g_dBaseDist<0)g_dBaseDist=1000;
|
||
|
||
OPEN_SUB_DICT(_T("轴号"));
|
||
GET_VALUE(_T("隐藏轴号颜色号"),g_nHideAxisLabelColor);if(g_nHideAxisLabelColor<0)g_nHideAxisLabelColor=108;
|
||
GET_VALUE(_T("轴号字高系数"), g_dAxisLabelTextRatio); // sg add 090512
|
||
unsigned int type = 0;
|
||
GET_VALUE(_T("轴圈直径"), type); // sg add 090512
|
||
if (type == 0)
|
||
g_dAxisLabelDia = 8.0;
|
||
else if (type == 1)
|
||
g_dAxisLabelDia = 9.0;
|
||
else
|
||
g_dAxisLabelDia = 10.0;
|
||
//GET_VALUE(_T("不绘制附加轴号"), g_bIgnoreAttach); // sg add 100601,根据8.5需求,添加此项
|
||
GET_VALUE(_T("一轴多号忽略附加轴号"), g_bIgnoreAttach); // sg add 110301,规范命名,便于用户理解
|
||
unsigned int type1 = 0;
|
||
//GET_VALUE(_T("字母Y后面采用的注脚形式"), type1); // sg add 100601,根据8.5需求,添加此项
|
||
GET_VALUE(_T("字母数量不够时采用的注脚形式"), type1); // sg add 110301,规范命名,便于用户理解
|
||
g_nAfterYAxisStyle = type1;
|
||
CLOSE_SUB_DICT();
|
||
CLOSE_SUB_DICT();
|
||
|
||
//OPEN_SUB_DICT(_T("墙体"));
|
||
OPEN_SUB_DICT(_T("墙柱"));
|
||
GET_VALUE(_T("墙基线颜色号"),g_nWallBaseColor);if(g_nWallBaseColor<0)g_nWallBaseColor=46;
|
||
|
||
OPEN_SUB_DICT(_T("保温层"));
|
||
// sg add 110530,根据底层保温默认值的修改,增加一个辅助变量,方便在用户输入和实际值之间的转换;
|
||
// GET_VALUE(_T("默认厚度"),g_nInsulateThick);if(g_nInsulateThick<1E-6)g_nInsulateThick=80;
|
||
double dTmpInsulate = g_nInsulateThick;
|
||
GET_VALUE(_T("默认厚度"),dTmpInsulate);if(dTmpInsulate<1E-6)dTmpInsulate=80;
|
||
g_nInsulateThick = dTmpInsulate*1.001;
|
||
|
||
//GET_VALUE(_T("墙体保温是否封口"), g_bWallHasInsulateCap); // sg add 100714,根据8.5需求,添加此项,墙体保温是否封口
|
||
GET_VALUE(_T("墙体保温端头封口"), g_bWallHasInsulateCap); // sg add 110301,规范命名,便于用户理解
|
||
CLOSE_SUB_DICT();
|
||
CLOSE_SUB_DICT();
|
||
|
||
// sg delete 101209,根据讨论,暂时去掉高级选项中的该设置
|
||
/*
|
||
// sg add 100714,根据8.5需求,添加此项,房间面积全局参数
|
||
OPEN_SUB_DICT(_T("房间面积"));
|
||
GET_VALUE(_T("面积对象标注方式是否全局控制"), g_bUniformSpaceDim);
|
||
CLOSE_SUB_DICT();
|
||
*/
|
||
OPEN_SUB_DICT(_T("门窗"));
|
||
OPEN_SUB_DICT(_T("编号"));
|
||
GET_VALUE(_T("默认字高"),g_fWinLabelDefaultHeight);if(g_fWinLabelDefaultHeight<1E-9)g_fWinLabelDefaultHeight=3.5;
|
||
GET_VALUE(_T("默认后缀"),g_sWinLabelPostFix);if(g_sWinLabelPostFix==_T(""))g_sWinLabelPostFix=_T("反");
|
||
CLOSE_SUB_DICT();
|
||
|
||
OPEN_SUB_DICT(_T("带形窗幕墙样式")); // sg add 090609,根据林工提出的需求,增加带形窗表示样式的全局设置
|
||
BOOL bShowStyle = !g_bCurtainWallFixStyle;
|
||
GET_BOOL(_T("比例改变后改变样式"),bShowStyle);
|
||
g_bCurtainWallFixStyle = !bShowStyle;
|
||
unsigned int type=0;
|
||
GET_VALUE(_T("不改样式时的设定类型"),type);g_nCurtainWallStyle = type;
|
||
int nRet = 0;
|
||
CString cs3Scale = _T("1:150"),
|
||
csTmp = _T("1:");
|
||
GET_VALUE(_T("改变样式的比例界限"),cs3Scale);
|
||
nRet = cs3Scale.Find(csTmp, 0);
|
||
if (nRet < 0)
|
||
{
|
||
g_nCurtainWall3Scale = 150;
|
||
}
|
||
else
|
||
{
|
||
nRet += csTmp.GetLength();
|
||
cs3Scale = cs3Scale.Right(cs3Scale.GetLength() - nRet);
|
||
g_nCurtainWall3Scale = _ttoi(cs3Scale);
|
||
}
|
||
CLOSE_SUB_DICT();
|
||
|
||
// sg add 110120,增加凸窗挡板保温、转角凸窗保温、门窗套保温厚度的默认数据
|
||
// sg add 110120,增加门窗套保温端头是否封口
|
||
OPEN_SUB_DICT(_T("保温层"));
|
||
GET_VALUE(_T("凸窗挡板默认保温厚"),g_dProWinSlabInsuThick);if(g_dProWinSlabInsuThick<-1E-6)g_dProWinSlabInsuThick=30;
|
||
//GET_VALUE(_T("转角凸窗挡板默认保温厚"),g_dCornerWinInsuThick);if(g_dCornerWinInsuThick<-1E-6)g_dCornerWinInsuThick=30;
|
||
GET_VALUE(_T("转角凸窗挡板默认保温厚"),g_dCornerWinInsuThick);if(g_dCornerWinInsuThick<-1E-6)g_dCornerWinInsuThick=30;
|
||
GET_VALUE(_T("门窗套默认保温厚"),g_dSlotInsulateThick);if(g_dSlotInsulateThick<-1E-6)g_dSlotInsulateThick=30;
|
||
GET_VALUE(_T("门窗套保温端头封口"),g_bSlotInsulateCap);
|
||
CLOSE_SUB_DICT();
|
||
CLOSE_SUB_DICT();
|
||
|
||
// sg add 110120,增加阳台栏板遮挡保温层的默认数据
|
||
OPEN_SUB_DICT(_T("室外构件"));
|
||
OPEN_SUB_DICT(_T("阳台"));
|
||
GET_BOOL(_T("阳台栏板遮挡保温层"),g_bBalconyClipInsu);
|
||
CLOSE_SUB_DICT();
|
||
CLOSE_SUB_DICT();
|
||
|
||
OPEN_SUB_DICT(_T("立剖面"));
|
||
OPEN_SUB_DICT(_T("建筑立剖面"));
|
||
GET_BOOL(_T("忽略楼梯扶手和栏杆"),g_bIgnoreStairRail);
|
||
CLOSE_SUB_DICT();
|
||
CLOSE_SUB_DICT();
|
||
|
||
OPEN_SUB_DICT(_T("尺寸标注"));
|
||
OPEN_SUB_DICT(_T("直线尺寸"));
|
||
unsigned int type=0;
|
||
GET_VALUE(_T("样式"),type);g_nLineDimArrow=type;
|
||
|
||
OPEN_SUB_DICT(_T("默认尺寸样式名"));
|
||
GET_VALUE(_T("粗斜线(mm-mm)"),g_sDim0);
|
||
GET_VALUE(_T("粗斜线(M-M)"),g_sDim0M_M);
|
||
GET_VALUE(_T("粗斜线(mm-M)"),g_sDim0mm_M);
|
||
GET_VALUE(_T("细斜线(mm-mm)"),g_sDim1);
|
||
GET_VALUE(_T("细斜线(M-M)"),g_sDim1M_M);
|
||
GET_VALUE(_T("细斜线(mm-M)"),g_sDim1mm_M);
|
||
GET_VALUE(_T("圆点(mm-mm)"),g_sDim2);
|
||
GET_VALUE(_T("圆点(M-M)"),g_sDim2M_M);
|
||
GET_VALUE(_T("圆点(mm-M)"),g_sDim2mm_M);
|
||
CLOSE_SUB_DICT();
|
||
CLOSE_SUB_DICT();
|
||
|
||
OPEN_SUB_DICT(_T("角度圆弧尺寸"));
|
||
// sg add 120412,根据9.0需求,增加设置弧长标注样式的设置
|
||
unsigned int typeDimArcLen=0;
|
||
GET_VALUE(_T("弧长标注"),typeDimArcLen);g_nArcLenDimType=typeDimArcLen;
|
||
|
||
unsigned int type=0;
|
||
GET_VALUE(_T("样式"),type);g_nAngleDimArrow=type;
|
||
|
||
OPEN_SUB_DICT(_T("默认尺寸样式名"));
|
||
GET_VALUE(_T("箭头"),g_sDimA0);
|
||
GET_VALUE(_T("圆点"),g_sDimA1);
|
||
CLOSE_SUB_DICT();
|
||
CLOSE_SUB_DICT();
|
||
CLOSE_SUB_DICT();
|
||
|
||
// sg add 120516,文字导出T3版本时候,是否断开
|
||
OPEN_SUB_DICT(_T("文字"));
|
||
GET_BOOL(_T("混排文字导低版本断开"),g_bDownloadT3Split);
|
||
CLOSE_SUB_DICT();
|
||
|
||
OPEN_SUB_DICT(_T("符号标注"));
|
||
OPEN_SUB_DICT(_T("标高标注"))
|
||
GET_VALUE(_T("空白标高符号默认文字基线长度"), g_dElevTextBaseLen);
|
||
GET_VALUE(_T("三角高度"), g_dEleTriangleSize);
|
||
GET_VALUE(_T("圆点直径"), g_dEleDoteSize);
|
||
GET_VALUE(_T("十字线长"), g_dEleCrossSize);
|
||
//GET_VALUE(_T("标高符号注释在左侧"), g_bElevFloorsOnLeft); // sg add 110124,多层标高符号中的楼层是否在标高值左侧
|
||
GET_VALUE(_T("注释在右侧"), g_bElevFloorsOnRight); // sg add 110301,规范命名,便于用户理解
|
||
CLOSE_SUB_DICT();
|
||
|
||
OPEN_SUB_DICT(_T("断面、剖面剖切符号"))
|
||
GET_VALUE(_T("剖切位置线默认长度"),g_dSectionSegLocLength);
|
||
GET_VALUE(_T("剖视方向线默认长度"),g_dSectionSegDirLength);
|
||
CLOSE_SUB_DICT();
|
||
|
||
OPEN_SUB_DICT(_T("索引符号"))
|
||
GET_VALUE(_T("号圈直径"), g_dIndexPointerDia);
|
||
//GET_VALUE(_T("索引符号延长线的默认长度"), g_dIndexPointerBaseLen); // sg add 101209
|
||
//GET_VALUE(_T("剖切索引剖切线的默认长度"), g_dSectionBaseLen); // sg add 101209
|
||
GET_VALUE(_T("延长线无标注文字时默认长度"), g_dIndexPointerBaseLen);
|
||
GET_VALUE(_T("剖切索引默认剖切线长度"), g_dSectionBaseLen);
|
||
CLOSE_SUB_DICT();
|
||
|
||
unsigned int typeSymbTextLayer = 0;
|
||
GET_VALUE(_T("符号文字导出图层"), typeSymbTextLayer);
|
||
g_nSymbTextT3Layer = typeSymbTextLayer;
|
||
GET_VALUE(_T("索引图名号圈直径"),g_dSymbDrawingIndexDia);
|
||
GET_VALUE(_T("文字距基线默认系数"),g_nText2BaseRatio);
|
||
|
||
GET_VALUE(_T("圆圈文字字高系数"), g_dDrawIndexTextRatio); // sg add 090512
|
||
// sg delete 110209,根据讨论,暂时去掉高级选项中的该设置,换成“圆圈文字显示样式”
|
||
// GET_VALUE(_T("圆圈文字使用旧样式"), g_bDrawIndexOldStyle); // sg add 090612
|
||
// GET_VALUE(_T("圆圈文字使用出圈样式"), g_bDIOutCircleStyle); // sg add 110124,圆圈文字支持出圈样式
|
||
unsigned int typeDrawingIndex = 0;
|
||
GET_VALUE(_T("圆圈文字显示样式"), typeDrawingIndex);
|
||
if (typeDrawingIndex == 0) // 旧样式
|
||
{
|
||
g_bDrawIndexOldStyle = TRUE;
|
||
g_bDIOutCircleStyle = FALSE;
|
||
}
|
||
else if (typeDrawingIndex == 1) // 新样式,不出圈
|
||
{
|
||
g_bDrawIndexOldStyle = FALSE;
|
||
g_bDIOutCircleStyle = FALSE;
|
||
}
|
||
else // 出圈样式
|
||
{
|
||
g_bDrawIndexOldStyle = FALSE;
|
||
g_bDIOutCircleStyle = TRUE;
|
||
}
|
||
|
||
unsigned int typeNorthThumbTextDir = 1;
|
||
GET_VALUE(_T("指北针文字方向"), typeNorthThumbTextDir); // sg add 111221,增加指北针文字方向的设置
|
||
g_bNorthThumbTextDir = typeNorthThumbTextDir;
|
||
|
||
OPEN_SUB_DICT(_T("带折断切割线"))
|
||
GET_VALUE(_T("不打印边颜色号"),g_nCutLineColor);if(g_nCutLineColor<0)g_nCutLineColor=149;
|
||
CLOSE_SUB_DICT();
|
||
|
||
OPEN_SUB_DICT(_T("折断线两端出头距离")) // sg add 090512
|
||
GET_VALUE(_T("长度界限值"), g_dRuptureLenLimit);
|
||
GET_VALUE(_T("大于界限值时"), g_dMoreRuptureLimit);
|
||
GET_VALUE(_T("小于界限值时"), g_dLessRuptureLimit);
|
||
CLOSE_SUB_DICT();
|
||
CLOSE_SUB_DICT();
|
||
CLOSE_DICT();
|
||
}
|
||
|
||
TARCH_IMPEXP void SaveGlobalToReg()
|
||
{
|
||
{
|
||
CRegProperty regProp(GetRegLocation(), _T("Settings"));
|
||
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
||
regProp.SetValue(_T("DynDim"), g_bDynDim);
|
||
regProp.SetValue(_T("ABCoord"), g_bABCoord);
|
||
//regProp.SetValue(_T("AngleDimArrow"), g_nAngleDimArrow);
|
||
//regProp.SetValue(_T("LineDimArrow"), g_nLineDimArrow);
|
||
regProp.SetValue(_T("DimAdjust"), g_nDimAdjust);
|
||
// sg delete 090608,转移到高级选项及图中保存
|
||
// regProp.SetValue(_T("CurtainWallScale"), g_nCurtainWall3Scale);
|
||
regProp.SetValue(_T("MaxDimGrip"), g_nDimNumGripTip);
|
||
regProp.SetValue(_T("SpeedMenu"), g_nSpeedMenu);
|
||
regProp.SetValue(_T("RMenuTimer"), g_nRBtnMenuTime);
|
||
regProp.SetValue(_T("ModelNumber"), g_bModelNumber);
|
||
regProp.SetValue(_T("WinStep"), g_nWinStep);
|
||
regProp.SetValue(_T("WallStep"), g_nWallStep);
|
||
regProp.SetValue(_T("ZoomKey"), g_bZoomKey);
|
||
regProp.SetValue(_T("DwgTabBar"), g_bDwgTabBar);
|
||
regProp.SetValue(_T("HideCaption"),g_bHideCaption);
|
||
regProp.SetValue(_T("ExplodeType"), g_bExplodeMesh);
|
||
regProp.SetValue(_T("DragRubber"), g_bDragRubber);
|
||
regProp.SetValue(_T("DblClkEditObj"),g_bDblClkEditObj);
|
||
regProp.SetValue(_T("DblClkInplaceEdit"),g_bDClickInplaceEdit);
|
||
regProp.SetValue(_T("InPlaceEditTextColor"),g_colorInPlaceText);
|
||
regProp.SetValue(_T("InPlaceEditBkColor"),g_colorInPlaceGround);
|
||
regProp.SetValue(_T("InPlaceEditFontSize"),g_iInPlaceFontHeight);
|
||
regProp.SetValue(_T("Dynamic"),g_bDynInput);
|
||
regProp.SetValue(_T("MaxDynDimNum"),g_iMaxDynDimNum);
|
||
// sg add 100112,增加“编组”控制
|
||
regProp.SetValue(_T("MakeGroup"), g_bMakeGroup);
|
||
// sg add 100915,增加“文字图层类型”的控制开关
|
||
regProp.SetValue(_T("TextDefaultLayer"), g_bTextDefaultLayer);
|
||
|
||
// add by gjm 2014/05/05
|
||
regProp.SetValue(_T("SymbolDefaultLayer"), g_bSymbolDefLayer);
|
||
regProp.SetValue(_T("CoordDefaultLayer"), g_bCoordDefLayer);
|
||
regProp.SetValue(_T("ElevaDefaultLayer"), g_bElevaDefLayer);
|
||
// end
|
||
|
||
#if ADS<16
|
||
regProp.SetValue(_T("RecentFiles15"),g_sRecentFiles);
|
||
#else
|
||
#if ADS==16
|
||
regProp.SetValue(_T("RecentFiles16"),g_sRecentFiles);
|
||
#else
|
||
regProp.SetValue(_T("RecentFiles17"),g_sRecentFiles);
|
||
#endif
|
||
#endif
|
||
regProp.SetValue(_T("AutoOpenRecent"),g_bAutoOpenRecent);
|
||
regProp.SetValue(_T("AutoFocus"),g_bAutoFocus);
|
||
regProp.SetValue(_T("SelectPreview"),g_bEnableSelectPreview);
|
||
regProp.SetValue(_T("MakeExtSpace"),g_bMakeExtSpace);
|
||
regProp.SetValue(_T("IgnoreColumn"),g_bIgnoreColumn);
|
||
regProp.SetValue(_T("MaxAutoUpdateScale"),g_nMaxAutoScale);//wd
|
||
regProp.SetValue(_T("EnableShortCut"),g_bEnableShortCut);;
|
||
// sg delete 101125,根据8.5需求,阳台面积按一半计算的数据改到对象中,取消注册表中的全局设置
|
||
// regProp.SetValue(_T("BlaconyHalf"),g_bBlaconyHalf); //add by xlc on 090625
|
||
}
|
||
|
||
XString sProfile;
|
||
xg_getvar(_T("CPROFILE"), sProfile);
|
||
if(!sProfile)
|
||
sProfile=_T("Settings");
|
||
CRegProperty regProp(GetRegLocation(), sProfile);
|
||
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
||
regProp.SetValue(_T("WalkDistStep"), g_nWalkDistStep);
|
||
regProp.SetValue(_T("WalkAngleStep"), g_nWalkAngleStep);
|
||
regProp.SetValue(_T("CirDeviation"), g_nCirDeviation);//wd?分弧精度
|
||
regProp.SetValue(_T("CoordPrec"), g_nCoordPrec);
|
||
regProp.SetValue(_T("CoordArrowStyle"),g_nCoordArrowStyle);
|
||
regProp.SetValue(_T("SymbArrowStyle"),g_nSymbArrowStyle);
|
||
|
||
{
|
||
XString sKey;
|
||
sKey << GetRegLocation() << _T("\\Settings");
|
||
CRegProperty reg(sKey, _T("ScreenMenu"));
|
||
reg.SetTopRootKey(HKEY_CURRENT_USER);
|
||
reg.SetValue(_T("MenuType"),g_iMenuType);
|
||
reg.SetValue(_T("ScreenMenuColor0"),g_menuColors[0]);
|
||
reg.SetValue(_T("ScreenMenuColor1"),g_menuColors[1]);
|
||
reg.SetValue(_T("ScreenMenuColor2"),g_menuColors[2]);
|
||
reg.SetValue(_T("ScreenMenuColor3"),g_menuColors[3]);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
// Command:步距设置
|
||
void WalkStep()
|
||
{
|
||
XString sProfile;
|
||
xg_getvar(_T("CPROFILE"), sProfile);
|
||
if(!sProfile)
|
||
sProfile=_T("Settings");
|
||
|
||
double nAng=g_nWalkAngleStep*180.0/PI;
|
||
if(GetDist(_T("\n行走步距"), g_nWalkDistStep, RSG_NONEG|RSG_NOZERO)!=RTCAN &&
|
||
GetReal(_T("\n转角步长"), nAng, RSG_NONEG|RSG_NOZERO)!=RTCAN) {
|
||
g_nWalkAngleStep=CT_std_angle(nAng*PI/180.0);
|
||
CRegProperty regProp(GetRegLocation(), sProfile);
|
||
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
||
regProp.SetValue(_T("WalkDistStep"), g_nWalkDistStep);
|
||
regProp.SetValue(_T("WalkAngleStep"), g_nWalkAngleStep);
|
||
}
|
||
}
|
||
//炸碎成粗线前求解所有墙体的粗线内侧参数
|
||
TARCH_IMPEXP void SolidFillOn()
|
||
{
|
||
//DocSetDrawMode(DRAW_2D);
|
||
DocSetIsSolidFill(TRUE);
|
||
PickSet ssObj(SS_FREE);
|
||
if(GetEntByDxf(ssObj, _T("ATS_WALL,ATS_COLUMN,TCH_WALLPATCH"), 1)==Acad::eOk) {
|
||
UpdateGraphic(ssObj);
|
||
}
|
||
adsout << _T("<墙体填充开>");
|
||
int nCmdActive=0;
|
||
xg_getvar(_T("CMDACTIVE"), &nCmdActive);
|
||
if(!nCmdActive)
|
||
acedPostCommandPrompt();
|
||
}
|
||
TARCH_IMPEXP void SolidFillOff()
|
||
{
|
||
DocSetIsSolidFill(FALSE);
|
||
PickSet ssObj(SS_FREE);
|
||
if(GetEntByDxf(ssObj, _T("ATS_WALL,ATS_COLUMN,TCH_WALLPATCH"), 1)==Acad::eOk)
|
||
UpdateGraphic(ssObj);
|
||
|
||
adsout << _T("<墙体填充关>");
|
||
int nCmdActive=0;
|
||
xg_getvar(_T("CMDACTIVE"), &nCmdActive);
|
||
if(!nCmdActive)
|
||
acedPostCommandPrompt();
|
||
}
|
||
TARCH_IMPEXP void BoldLineOn()
|
||
{
|
||
DocSetIsLineWeight(TRUE);
|
||
PickSet ssObj(SS_FREE);
|
||
if(GetEntByDxf(ssObj, _T("ATS_WALL,ATS_COLUMN,TCH_WALLPATCH"), 1)==Acad::eOk) {
|
||
UpdateGraphic(ssObj);
|
||
}
|
||
adsout << _T("<墙线加粗开>");
|
||
int nCmdActive=0;
|
||
xg_getvar(_T("CMDACTIVE"), &nCmdActive);
|
||
if(!nCmdActive)
|
||
acedPostCommandPrompt();
|
||
}
|
||
TARCH_IMPEXP void BoldLineOff()
|
||
{
|
||
DocSetIsLineWeight(FALSE);
|
||
PickSet ssObj(SS_FREE);
|
||
if(GetEntByDxf(ssObj, _T("ATS_WALL,ATS_COLUMN,TCH_WALLPATCH"), 1)==Acad::eOk)
|
||
UpdateGraphic(ssObj);
|
||
adsout << _T("<墙线加粗关>");
|
||
int nCmdActive=0;
|
||
xg_getvar(_T("CMDACTIVE"), &nCmdActive);
|
||
if(!nCmdActive)
|
||
acedPostCommandPrompt();
|
||
}
|
||
//////////////////////////////////////////////////
|
||
// Command: 开关基线的显示
|
||
// 系统变量_T("WallBaseLine"), 保存在OS注册表中
|
||
TARCH_IMPEXP void TogWallBase()
|
||
{
|
||
TDonotMonitorMe vTemp;
|
||
int nVal=g_bShowBase+1;
|
||
if(nVal>2) nVal=0;
|
||
DocSetShowBase(nVal);
|
||
PickSet ss(SS_FREE);
|
||
if(GetEntByDxf(ss, _T("ATS_WALL,ATS_CURTAIN_WALL"), 1)==Acad::eOk) {
|
||
UpdateGraphic(ss);
|
||
}
|
||
}
|
||
// Command: 开关基线的显示
|
||
// 系统变量_T("WallBaseLine"), 保存在OS注册表中
|
||
TARCH_IMPEXP void ToggleWallBase()
|
||
{
|
||
TDonotMonitorMe vTemp;
|
||
if(g_bShowBase)
|
||
{
|
||
DocSetShowBase(FALSE);
|
||
adsout << _T("<墙基线关>");
|
||
}
|
||
else
|
||
{
|
||
DocSetShowBase(TRUE);
|
||
adsout << _T("<墙基线开>");
|
||
}
|
||
PickSet ss(SS_FREE);
|
||
if(GetEntByDxf(ss, _T("ATS_WALL,ATS_CURTAIN_WALL"),1)==Acad::eOk) {
|
||
UpdateGraphic(ss);
|
||
}
|
||
|
||
int nCmdActive=0;
|
||
xg_getvar(_T("CMDACTIVE"), &nCmdActive);
|
||
if(!nCmdActive)
|
||
acedPostCommandPrompt();
|
||
}
|
||
//////////////////////////////////////////////////
|
||
// Command: 开关画墙模式的(设计/测量)
|
||
// 系统变量_T("DrawWall"), 保存在OS注册表中
|
||
TARCH_IMPEXP void TogDrawWall()
|
||
{
|
||
DocSetDrawWall(!g_nDrawWall);
|
||
CRegProperty regProp(GetRegLocation(), _T("Settings"));
|
||
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
||
regProp.SetValue(_T("DrawWall"), g_nDrawWall);
|
||
}
|
||
|
||
TARCH_IMPEXP void ToggleModelNumber()
|
||
{
|
||
g_bModelNumber=!g_bModelNumber;
|
||
adsout << _T("<模数") << (g_bModelNumber? _T("开>") : _T("关>"));
|
||
int nCmdActive=0;
|
||
xg_getvar(_T("CMDACTIVE"), &nCmdActive);
|
||
if(!nCmdActive)
|
||
acedPostCommandPrompt();
|
||
|
||
CRegProperty regProp(GetRegLocation(), _T("Settings"));
|
||
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
||
regProp.SetValue(_T("ModelNumber"), g_bModelNumber);
|
||
}
|
||
// 透明命令
|
||
void DragRubber()
|
||
{
|
||
adsout << _T("\n自由复制的拖动方式<") << g_bDragRubber << _T(">:");
|
||
ads_initget(RSG_NONEG, NULL);
|
||
if(ads_getint(_T(""), &g_bDragRubber)==RTNORM) {
|
||
if(g_bDragRubber)
|
||
g_bDragRubber=TRUE;
|
||
CRegProperty regProp(GetRegLocation(), _T("Settings"));
|
||
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
||
regProp.SetValue(_T("DragRubber"), g_bDragRubber);
|
||
}
|
||
}
|
||
//////////////////////////////////////////////////////////////////////
|
||
int GetCoordPrec2()
|
||
{
|
||
return ads_retint(DocGetPrec2());
|
||
}
|
||
int SetCoordPrec2()
|
||
{
|
||
BOOL bVal=DocGetPrec2();
|
||
DocSetPrec2(!bVal);
|
||
return ads_retint(DocGetPrec2());
|
||
}
|
||
int GetDynamicCoord()
|
||
{
|
||
return ads_retint(g_bDynamicCoord);
|
||
}
|
||
int SetDynamicCoord()
|
||
{
|
||
g_bDynamicCoord=!g_bDynamicCoord;
|
||
return GetDynamicCoord();
|
||
}
|
||
// sg add 100824,增加编组开关
|
||
int GetMakeGroupState()
|
||
{
|
||
return ads_retint(g_bMakeGroup);
|
||
}
|
||
int SetMakeGroupState()
|
||
{
|
||
g_bMakeGroup=!g_bMakeGroup;
|
||
|
||
// sg add 100915,根据编组按钮的状态,修改系统变量值
|
||
int nPickStyle = 0;
|
||
TGGetVar(_T("pickstyle"), &nPickStyle);
|
||
if (nPickStyle==0 || nPickStyle==1)
|
||
{
|
||
nPickStyle = g_bMakeGroup?1:0;
|
||
}
|
||
else
|
||
{
|
||
nPickStyle = g_bMakeGroup?3:2;
|
||
}
|
||
|
||
TGSetVar(_T("pickstyle"), nPickStyle);
|
||
|
||
return GetMakeGroupState();
|
||
}
|
||
// sg add 100915,增加文字图层控制开关
|
||
int TARCH_IMPEXP GetTextLayerChange() { return ads_retint(g_bTextDefaultLayer); }
|
||
int TARCH_IMPEXP SetTextLayerChange() { g_bTextDefaultLayer = !g_bTextDefaultLayer; return GetTextLayerChange(); }
|
||
|
||
// add by gjm 2015/05/05
|
||
bool TARCH_IMPEXP GetSymbolDefLayer() { return g_bSymbolDefLayer; }
|
||
bool TARCH_IMPEXP SetSymbolDefLayer() {g_bSymbolDefLayer = !g_bSymbolDefLayer; return GetSymbolDefLayer();}
|
||
bool TARCH_IMPEXP GetCoordDefLayer() { return g_bCoordDefLayer; }
|
||
bool TARCH_IMPEXP SetCoordDefLayer() {g_bCoordDefLayer = !g_bCoordDefLayer; return GetCoordDefLayer();}
|
||
bool TARCH_IMPEXP GetElevaDefLayer() { return g_bElevaDefLayer; }
|
||
bool TARCH_IMPEXP SetElevaDefLayer() {g_bElevaDefLayer = !g_bElevaDefLayer; return GetElevaDefLayer();}
|
||
// end
|
||
|
||
int GetABCoord()
|
||
{
|
||
return ads_retint(g_bABCoord);
|
||
}
|
||
int SetABCoord()
|
||
{
|
||
g_bABCoord=!g_bABCoord;
|
||
CRegProperty regProp(GetRegLocation(), _T("Settings"));
|
||
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
||
regProp.SetValue(_T("ABCoord"), g_bABCoord);
|
||
return GetABCoord();
|
||
}
|
||
int GetSolidFillState()
|
||
{
|
||
ads_retint(DocGetIsSolidFill());
|
||
return RTNORM;
|
||
}
|
||
int SetSolidFillState()
|
||
{
|
||
if(DocGetIsSolidFill())
|
||
SolidFillOff();
|
||
else
|
||
SolidFillOn();
|
||
return GetSolidFillState();
|
||
}
|
||
int GetBoldLineState()
|
||
{
|
||
ads_retint(DocGetIsLineWeight());
|
||
return RTNORM;
|
||
}
|
||
int SetBoldLineState()
|
||
{
|
||
if(DocGetIsLineWeight())
|
||
BoldLineOff();
|
||
else
|
||
BoldLineOn();
|
||
return GetBoldLineState();
|
||
}
|
||
int GetSpaceAreaState()
|
||
{
|
||
int nSpCode=DocGetSpaceDispMode();
|
||
BOOL bShow=(nSpCode&SPF_AREA)!=0;
|
||
ads_retint(bShow);
|
||
return RTNORM;
|
||
}
|
||
int GetSpaceUnitState()
|
||
{
|
||
int nSpCode=DocGetSpaceDispMode();
|
||
BOOL bShow=(nSpCode&SPF_UNIT)!=0;
|
||
ads_retint(bShow);
|
||
return RTNORM;
|
||
}
|
||
int SetSpaceAreaState()
|
||
{
|
||
int nSpCode=DocGetSpaceDispMode();
|
||
BOOL bShow=(nSpCode&SPF_AREA)!=0;
|
||
bShow=!bShow;
|
||
if(bShow) nSpCode|=SPF_AREA;
|
||
else nSpCode &= ~SPF_AREA;
|
||
DocSetSpaceDispMode(nSpCode);
|
||
ads_retint(bShow);
|
||
return RTNORM;
|
||
}
|
||
int SetSpaceUnitState()
|
||
{
|
||
int nSpCode=DocGetSpaceDispMode();
|
||
BOOL bShow=(nSpCode&SPF_UNIT)!=0;
|
||
bShow=!bShow;
|
||
if(bShow) nSpCode|=SPF_UNIT;
|
||
else nSpCode &= ~SPF_UNIT;
|
||
DocSetSpaceDispMode(nSpCode);
|
||
ads_retint(bShow);
|
||
return RTNORM;
|
||
}
|
||
int GetDimChkState()
|
||
{
|
||
return ads_retint(DocGetCheckDim());
|
||
}
|
||
int SetDimChkState()
|
||
{
|
||
BOOL bNewCheck=!DocGetCheckDim();
|
||
DocSetCheckDim(bNewCheck);
|
||
PickSet ssUpdate(SS_FREE);
|
||
if(GetEntByDxf(ssUpdate, _T("ATS_DIMENSION2"), 0)==Acad::eOk) {
|
||
UpdateGraphic(ssUpdate);
|
||
}
|
||
return GetDimChkState();
|
||
}
|
||
|
||
int GetDimAdjState()
|
||
{
|
||
ads_retint(g_nDimAdjust);
|
||
return RTNORM;
|
||
}
|
||
|
||
int SetDimAdjState()
|
||
{
|
||
g_nDimAdjust++; //=!g_nDimAdjust;
|
||
if(g_nDimAdjust>2)
|
||
g_nDimAdjust=0;
|
||
return GetDimAdjState();
|
||
}
|
||
|
||
int GetBaselineState()
|
||
{
|
||
return ads_retint(DocGetShowBase());
|
||
}
|
||
|
||
int SetBaselineState()
|
||
{
|
||
TogWallBase();
|
||
return GetBaselineState();
|
||
}
|
||
|
||
int Is2DOnly()
|
||
{
|
||
if(DocGetDrawMode()==DRAW_2D)
|
||
ads_rett();
|
||
return RTNORM;
|
||
}
|
||
|
||
int Is3DOnly()
|
||
{
|
||
if(DocGetDrawMode()==DRAW_3D)
|
||
ads_rett();
|
||
return RTNORM;
|
||
}
|
||
int Is2Dand3D()
|
||
{
|
||
if(DocGetDrawMode()==DRAW_2D+DRAW_3D)
|
||
ads_rett();
|
||
return RTNORM;
|
||
}
|
||
int GetPScale()
|
||
{
|
||
double nScale=DocGetPScale();
|
||
int cvport;
|
||
VERIFY(xg_getvar(_T("CVPORT"), &cvport)==RTNORM);
|
||
if(cvport==1)
|
||
nScale=1.0;
|
||
|
||
|
||
return ads_retint( AS_INT(nScale));
|
||
}
|
||
int SetPScale()
|
||
{
|
||
resbuf *rbArg=ads_getargs();
|
||
if(rbArg) {
|
||
if(rbArg->restype==RTSHORT) {
|
||
double nScale=rbArg->resval.rint;
|
||
if(nScale>1.0E-3) {
|
||
if(DocSetPScale(nScale))
|
||
xg_setvar(_T("HPSCALE"), nScale);
|
||
DocStatus();
|
||
}
|
||
} else if(rbArg->restype==RTREAL) {
|
||
double nScale=rbArg->resval.rreal;
|
||
if(nScale>1.0E-3) {
|
||
if(DocSetPScale(nScale))
|
||
xg_setvar(_T("HPSCALE"), nScale);
|
||
DocStatus();
|
||
}
|
||
}
|
||
ads_relrb(rbArg);
|
||
}
|
||
return RTNORM;
|
||
}
|
||
int TMakeBlock()
|
||
{
|
||
resbuf *rbArg=ads_getargs();
|
||
RBList rbBuf=rbArg;
|
||
if(rbArg && rbArg->restype==RTPICKS) {
|
||
PickSet ss(SS_FREE);
|
||
ss = rbArg->resval.rlname;
|
||
if(!g_nRunMode) {
|
||
XPoint ptLow, ptUp;
|
||
ss.GetExtend(ptLow, ptUp);
|
||
XString sName;
|
||
if(ss.MakeAnonymous(ptLow, sName, FALSE)==RTNORM) {
|
||
MakeTBlockInsert(sName, ptLow, 1.0, 1.0, 1.0, 0.0, 0);
|
||
ads_rett();
|
||
return RTNORM;
|
||
}
|
||
}
|
||
}
|
||
ads_retnil();
|
||
return RTNORM;
|
||
}
|
||
int GetPfx()
|
||
{
|
||
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;
|
||
|
||
ads_retstr(dir);
|
||
return RTNORM;
|
||
}
|
||
int GetLispPath()
|
||
{
|
||
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;
|
||
|
||
if(g_nRunMode)
|
||
_tcscat(dir, _T("LISP2D\\"));
|
||
else
|
||
_tcscat(dir, _T("LISP\\"));
|
||
ads_retstr(dir);
|
||
return RTNORM;
|
||
}
|
||
int Circle2Polyline()
|
||
{
|
||
resbuf *rbArg=ads_getargs();
|
||
if(rbArg && rbArg->restype==RTENAME) {
|
||
Entity ent;
|
||
ent = rbArg->resval.rlname;
|
||
if(ent.Is(_T("CIRCLE"))) {
|
||
XCircle cir(ent);
|
||
XCurveSegment seg;
|
||
seg=cir;
|
||
XPoly2D poly;
|
||
seg.AsPoly2D(poly);
|
||
AcDbPolyline *pline=new AcDbPolyline;
|
||
PolyConvert(poly, *pline);
|
||
AcDbEntity *pCir=NULL;
|
||
AcDbObjectId id;
|
||
acdbGetObjectId(id, ent);
|
||
if(acdbOpenObject(pCir, id, AcDb::kForWrite)==Acad::eOk && pCir) {
|
||
pline->setPropertiesFrom(pCir);
|
||
Acad::ErrorStatus es=pCir->handOverTo(pline);
|
||
if(es==Acad::eObjectToBeDeleted) {
|
||
pline->close();
|
||
delete pCir;
|
||
ads_rett();
|
||
} else {
|
||
pCir->close();
|
||
delete pline;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if(rbArg)
|
||
ads_relrb(rbArg);
|
||
return RTNORM;
|
||
}
|
||
int TDocStatus()
|
||
{
|
||
DocStatus();
|
||
ads_retvoid();
|
||
return RTNORM;
|
||
}
|
||
int ApplyLayerChange()
|
||
{
|
||
extern void InitLayers(BOOL bTrue);
|
||
InitLayers(FALSE);
|
||
InitLayers(TRUE);
|
||
return RTNORM;
|
||
}
|
||
int DragTitle()
|
||
{
|
||
extern TARCH_IMPEXP int DragMovePickSet(PickSet &ss, const TCHAR *pszPrompt,
|
||
const XPoint &ptBase, XPoint &ptFinal);
|
||
|
||
resbuf *rbArg=ads_getargs();
|
||
if(rbArg && rbArg->restype==RTPICKS) {
|
||
PickSet ss(SS_FREE);
|
||
ss = rbArg->resval.rlname;
|
||
|
||
//modified by whl for UCS
|
||
XPoint ptLow, ptUp;
|
||
double angle=Ucs2Wcs(0.0);
|
||
if(fabs(angle)>0.00001)
|
||
{
|
||
ads_matrix mat;
|
||
XPoint pt;
|
||
pt.GetRotationMatrix(angle,mat);
|
||
XPushVar<int> osmode(_T("OSMODE"), 0);
|
||
SHads_command(RTSTR, _T(".ROTATE"), RTPICKS, (TLong_ptr*)ss, RTSTR, _T(""),RT3DPOINT,&pt, RTREAL, -angle*180/PI, RTNONE);
|
||
ss.GetExtend(ptLow, ptUp);
|
||
SHads_command(RTSTR, _T("ROTATE"), RTPICKS, (TLong_ptr*)ss, RTSTR, _T(""),RT3DPOINT,&pt, RTREAL, angle*180/PI, RTNONE);
|
||
ptLow.TransformBy(mat);
|
||
}
|
||
else
|
||
ss.GetExtend(ptLow,ptUp);
|
||
|
||
XPoint ptLimMin;
|
||
VERIFY(xg_getvar(_T("LIMMIN"), ptLimMin)==RTNORM);
|
||
adsout << _T("\n图框位置<") << Dist2Str(ptLimMin.x) << _T(",") <<
|
||
Dist2Str(ptLimMin.y) << _T(">:");
|
||
XPoint xp;
|
||
int nRet= TchExport::DragMovePickSet(ss, _T(""), Wcs2Ucs(ptLow), xp);
|
||
if(nRet==RTNORM) ;
|
||
else if(nRet==RTNONE) {
|
||
ptLow=Wcs2Ucs(ptLow);
|
||
XPushVar<int> osmode(_T("OSMODE"), 0);
|
||
SHads_command(RTSTR, _T(".MOVE"), RTPICKS, (TLong_ptr *)ss, RTSTR, _T(""),
|
||
RT3DPOINT, &ptLow, RT3DPOINT, &ptLimMin, RTNONE);
|
||
}
|
||
else ss.Erase();
|
||
}
|
||
if(rbArg)
|
||
ads_relrb(rbArg);
|
||
ads_retvoid();
|
||
return RTNORM;
|
||
}
|
||
//////////////////////////////////////////////////////////////
|
||
// 配合二维工具集
|
||
// 窗-门-高窗循环切换
|
||
int GetWDState()
|
||
{
|
||
int _wdins=1;
|
||
if(xg_getsym(_T("_wdins"), &_wdins)!=RTNORM) {
|
||
_wdins=1;
|
||
xg_putsym(_T("_wdins"), 1);
|
||
}
|
||
return ads_retint(_wdins);
|
||
}
|
||
|
||
int SetWDState()
|
||
{
|
||
int _wdins=1;
|
||
if(xg_getsym(_T("_wdins"), &_wdins)==RTNORM) {
|
||
_wdins++;
|
||
if(_wdins>3)
|
||
_wdins=1;
|
||
xg_putsym(_T("_wdins"), _wdins);
|
||
} else {
|
||
_wdins=1;
|
||
xg_putsym(_T("_wdins"), 1);
|
||
}
|
||
|
||
|
||
return ads_retint(_wdins);
|
||
}
|
||
// 自调开关
|
||
int GetDamnu1()
|
||
{
|
||
resbuf *v=NULL;
|
||
if(ads_getsym(_T("_dim_auto"), &v)!=RTNORM || !v)
|
||
return ads_retint(0);
|
||
ads_retint(v->restype==RTNIL? 0 : 1);
|
||
ads_relrb(v);
|
||
//int _dim_auto=1; // t--自调开, nil--自调关
|
||
return RTNORM;
|
||
}
|
||
int SetDamnu1()
|
||
{
|
||
resbuf *v=NULL;
|
||
if(ads_getsym(_T("_dim_auto"), &v)!=RTNORM || !v) {
|
||
resbuf *rb = ads_buildlist(RTT, NULL);
|
||
//rb.restype=RTT;
|
||
ads_putsym(_T("_dim_auto"), rb);
|
||
ads_retint(1);
|
||
ads_relrb(rb);
|
||
} else {
|
||
int nVal= v->restype==RTNIL? 0 : 1;
|
||
|
||
nVal=!nVal;
|
||
//resbuf rb;
|
||
v->restype = nVal? RTT:RTNIL;
|
||
VERIFY(ads_putsym(_T("_dim_auto"), v)==RTNORM);
|
||
ads_retint(nVal);
|
||
ads_relrb(v);
|
||
|
||
}
|
||
return RTNORM;
|
||
}
|
||
// _up_down: t--上调, nil--下调
|
||
int GetLineThick()
|
||
{
|
||
double nThick=DocGetHighBold();
|
||
ads_retreal(nThick);
|
||
return RTNORM;
|
||
}
|
||
//////////////////////////////////////////////////////////////////////////////
|
||
TARCH_IMPEXP void ToggleOsnapWall()
|
||
{
|
||
DocSetWallOsnapType(!g_nOsnapType);
|
||
adsout << _T("<墙体捕捉") << (g_nOsnapType? _T("边线>") : _T("基线>"));
|
||
int nCmdActive=0;
|
||
xg_getvar(_T("CMDACTIVE"), &nCmdActive);
|
||
if(!nCmdActive)
|
||
acedPostCommandPrompt();
|
||
|
||
CRegProperty regProp(GetRegLocation(), _T("Settings"));
|
||
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
||
regProp.SetValue(_T("OsnapWall"), g_nOsnapType);
|
||
}
|
||
void TogIntWall()
|
||
{
|
||
DocSetInt3DWallVisible(!g_bIntWall3DVisible);
|
||
RBList mask(RTDXF0, _T("ATS_WALL,ATS_CURTAIN_WALL,ATS_OPENING"), NULL);
|
||
PickSet ss(SS_FREE);
|
||
if(ss.Get(_T("X"), NULL, NULL, mask)==RTNORM) {
|
||
UpdateGraphic(ss);
|
||
}
|
||
}
|
||
// Command:
|
||
void CurLayerHeight()
|
||
{
|
||
double nHeight=DocGetLHeight();
|
||
if(GetDist(_T("\n当前层高"), nHeight, RSG_NONEG|RSG_NOZERO)==RTNORM) {
|
||
DocSetLHeight(nHeight);
|
||
}
|
||
}
|
||
void Text2Base()
|
||
{
|
||
double nDist2Base=DocGetText2Base();
|
||
if(GetReal(_T("\n文字距离基线"), nDist2Base, RSG_NONEG|RSG_NOZERO)==RTNORM) {
|
||
DocSetText2Base(nDist2Base);
|
||
}
|
||
}
|
||
void DblClkEdit()
|
||
{
|
||
int nAns=YesNoQuestion(_T("\n鼠标双击是否进行对象编辑"),g_bDblClkEditObj);
|
||
if(nAns==RTCAN)
|
||
return;
|
||
g_bDblClkEditObj=nAns!=Q_NO;
|
||
}
|
||
|
||
int LevelLine()
|
||
{
|
||
int nAns=YesNoQuestion(_T("\n是否隐去层间线"), !DocGetLevelLine());
|
||
if(nAns==RTCAN)
|
||
return RTNORM;
|
||
DocSetLevelLine(nAns==Q_NO);
|
||
return RTNORM;
|
||
}
|
||
TARCH_IMPEXP const TCHAR * GetRegLocation()
|
||
{
|
||
return (const TCHAR *)g_szRegLoc;
|
||
}
|
||
TARCH_IMPEXP int GetCustomFlag()
|
||
{
|
||
return g_nCustomFlag;
|
||
|
||
}
|
||
// Command:
|
||
void CurPScale()
|
||
{
|
||
double nHeight=DocGetPScale();
|
||
if(GetReal(_T("\n当前比例"), nHeight, RSG_NONEG|RSG_NOZERO)==RTNORM) {
|
||
if(DocSetPScale(nHeight))
|
||
xg_setvar(_T("HPSCALE"), nHeight);
|
||
}
|
||
DocStatus();
|
||
}
|
||
|
||
|
||
int SpaceSwitch()
|
||
{
|
||
PickSet ssSpaces(SS_FREE);
|
||
RBList spaceMask(RTDXF0, _T("ATS_SPACE"), NULL);
|
||
ssSpaces.Get(_T("X"), NULL, NULL, spaceMask);
|
||
|
||
int nSpFlag=DocGetSpaceDispMode();
|
||
if(nSpFlag&SPF_CODE) {
|
||
nSpFlag &= ~SPF_CODE;
|
||
} else {
|
||
nSpFlag |= SPF_CODE;
|
||
}
|
||
DocSetSpaceDispMode(nSpFlag);
|
||
UpdateGraphic(ssSpaces);
|
||
return RTNORM;
|
||
}
|
||
|
||
int IsAcad2002sc()
|
||
{
|
||
extern double g_nAcadVer;
|
||
// sg modify 120228,自R19平台起,API进行了调整,下面的函数作废了
|
||
//const TCHAR *pszRegAcad=acrxProductKey();
|
||
const TCHAR *pszRegAcad=NULL;
|
||
#if (ADS > 18)
|
||
pszRegAcad = acdbHostApplicationServices()->getMachineRegistryProductRootKey();
|
||
#else
|
||
pszRegAcad = acrxProductKey();
|
||
#endif
|
||
|
||
ASSERT(pszRegAcad);
|
||
XString sRegAcad, sReg1, sReg2;
|
||
sRegAcad=pszRegAcad;
|
||
BOOL bCont=FALSE;;
|
||
int nCount=sRegAcad.Length();
|
||
for(int n=nCount-1; n>=0; n--) {
|
||
if(sRegAcad[n]==_T('\\')) {
|
||
if(n==nCount-1)
|
||
return RTERROR;
|
||
StrCpy(sReg1, sRegAcad, &sRegAcad[n]);
|
||
StrCpy(sReg2, &sRegAcad[n+1], NULL);
|
||
bCont=TRUE;
|
||
break;
|
||
}
|
||
}
|
||
if(!bCont)
|
||
return RTERROR;
|
||
CString csLangAbbrev;
|
||
CRegProperty regProp(sReg1, sReg2);
|
||
regProp.SetTopRootKey(HKEY_LOCAL_MACHINE);
|
||
regProp.GetValue(_T("LangAbbrev"), csLangAbbrev);
|
||
if(_tcsicmp(csLangAbbrev, _T("chs"))==0 && fabs(TchGeLib::g_nAcadVer-15.06)<1.0E-6)
|
||
ads_rett();
|
||
else
|
||
ads_retnil();
|
||
return RTNORM;
|
||
}
|
||
|
||
// sg add 091222,增加一个版本信息的命令,主要考虑知道插件的版本信息
|
||
void TPlugBbxx()
|
||
{
|
||
XString sTchIni;
|
||
if (!FindFile(_T("tch.ini"), sTchIni))
|
||
{
|
||
acutPrintf(_T("找不到上华配置文件,无法获取版本信息! "));
|
||
return;
|
||
}
|
||
|
||
// 获得标题
|
||
CString sTittle;
|
||
GetPrivateProfileString(_T("Product"), _T("Title"), _T("TPlugIn8.0"),
|
||
sTittle.GetBuffer(MAX_PATH), MAX_PATH, sTchIni);
|
||
sTittle.ReleaseBuffer();
|
||
|
||
// 获得版本信息
|
||
CString sSubVer;
|
||
GetPrivateProfileString(_T("Product"), _T("SubVer"), _T("Build091225"),
|
||
sSubVer.GetBuffer(MAX_PATH), MAX_PATH, sTchIni);
|
||
sSubVer.ReleaseBuffer();
|
||
|
||
// 对版本信息进行组合
|
||
CString sResult;
|
||
sResult = sTittle + _T(" ") + sSubVer;
|
||
|
||
// 输出
|
||
acutPrintf(sResult);
|
||
}
|
||
//监控系统消息类 和 选择集类声明
|
||
int THookMsg::s_iValue = -1;
|
||
THookMsg::THookMsg()
|
||
{
|
||
acedRegisterFilterWinMsg(ListenMsg);
|
||
}
|
||
THookMsg::~THookMsg()
|
||
{
|
||
acedRemoveFilterWinMsg(ListenMsg);
|
||
}
|
||
int THookMsg::GetValue()
|
||
{
|
||
int iRe = s_iValue;
|
||
s_iValue = -1;
|
||
return iRe;
|
||
}
|
||
#if ADS > 22
|
||
bool THookMsg::ListenMsg(MSG* pMsg)
|
||
#else
|
||
BOOL THookMsg::ListenMsg(MSG* pMsg)
|
||
#endif
|
||
{
|
||
switch (pMsg->message)
|
||
{
|
||
case WM_RBUTTONDOWN:
|
||
{
|
||
s_iValue = 1;
|
||
}
|
||
break;
|
||
case WM_LBUTTONDOWN:
|
||
{
|
||
s_iValue = 0;
|
||
}
|
||
break;
|
||
case WM_KEYDOWN:
|
||
{
|
||
if (pMsg->wParam == VK_RETURN || pMsg->wParam == VK_SPACE)
|
||
{
|
||
s_iValue = 2;
|
||
}
|
||
else if (pMsg->wParam == VK_ESCAPE)
|
||
{
|
||
s_iValue = 3;
|
||
}
|
||
}
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
return(false);//消息继续传递下去
|
||
} |