Files
envi-code/SourceCode/Code2026/tg_shs/shs_public/ArxMain.cpp
T
2026-09-28 15:28:50 +08:00

1493 lines
63 KiB
C++

#include "stdafx.h"
#include "tapi.h"
#include "teldef.h"
#include "twtdef.h"
#include <actrans.h>
#include <rxregsvc.h>
#include "DbMTextNew.h"
extern int CALLBACK EnumFontFamExProc2(ENUMLOGFONTEX *lplf, NEWTEXTMETRICEX *lpntme,
int FontType, LONG lParam);
//**********************************************************************************************************
// 全局变量
//**********************************************************************************************************
double g_nInsBlkRotate = 0;
int g_iToolbarPos = 1;
BOOL g_bToolbar = TRUE;
BOOL g_bTgOsnap = TRUE;
extern TARCH_IMPEXP int g_bDownloadT3Split; // cet 2012.8.17 add 转T3上华文字中英文打断
CString g_csDwbPath, g_csSysPath, g_csInsBlkName;
CString g_csLineTypeStyle = _T("TG_LINETYPE");
CString g_csLineTypeChnShx = _T("HZTXT");
CString g_csLineTypeEngShx = _T("SIMPLEX");
double g_dLineTypeHeight = 3;
double g_dLineTypeScale = 0.8;
double g_nDimHeight = 3.5, g_nScaleDim = 0.8;
//**********************************************************************************************************
// 电气全局变量
//**********************************************************************************************************
//
#define MAX_LENGTH 37 //导线设置的数据总数
double g_dBusLineWidth = 2.0, g_dSysLineWidth = 0.35;
double g_dBlkThickWidth = 0.20,g_dChamAngle = 100;
double g_nEqBlkLength=500, g_nEq2WallDist=0, g_nPointDia=2.0,
g_nTerminalDia=2.0, g_nWireDimScale =1,
g_nWireNumHeight = 3.5;
double g_dWireWidthLighting = 2.0,g_dWireWidthGround = 2.0;
int g_iLastBlkMaxNum = 6, g_iWireBreak = 225,
g_iWireTextType = 0, g_iWireNumType = 1,
g_iPlanWireIndex = 0, g_iGourdWireLineType = 1, g_iLightingWireLineType = 1;
BOOL g_bJoin2Wire = FALSE, g_bAskInsBlk = FALSE, g_bThickEquip = FALSE,
g_bWireAskInfo = FALSE, g_bDimWireSimple = FALSE,
g_bCloseLnGrid = FALSE, g_bDrawWireDiv = FALSE, g_bRotateAttrib = FALSE;
BOOL g_bLineTypeByLayer = FALSE;
BOOL g_bIsChamAngle = FALSE; //是否倒角
BOOL g_bNeedUser[33] = {FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE,
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, FALSE,
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
FALSE, FALSE, FALSE, };
CString g_csTextAttr = _T("_TEL_ATTDEF"); //块属性字
CString g_csTelFontStyle = _T("_TEL_DIM"); //电气标注样式 引出标注使用
CString g_csBlkAttrTypeChnShx = _T("GBCBIG"); //块属性字中文字体
CString g_csBlkAttrTypeEngShx = _T("GBENOR"); //块属性字英文字体
CString g_csDimStyle = _T("_TEL_DIM");
CString g_csDimChnShx = _T("HZTXT");
CString g_csDimEngShx = _T("SIMPLEX");
//
//保存值时只需将值保存在对应的全局变量中,在程序退出时统一保存到注册表中
//索引 英文图层 图层
// 0: LAY_WIRE_ILLUME 照明 g_bNeedUser(是否激活) 索引 值
// 1: LAY_WIRE_POWER 动力 0 WIRE-消防电话
// 2: LAY_WIRE_FIRE 消防 1 WIRE-消防广播
// 3: LAY_WIRE_WEAK 弱电-通讯 2 WIRE-消防控制
// 4: LAY_WIRE_EMERG 照明-应急 3 WIRE-消防电源
// 5: LAY_WIRE_TEL 消防-电话 4 WIRE-电视
// 6: LAY_WIRE_BROAD 消防-广播 5 WIRE-消防信号
// 7: LAY_WIRE_CTRL 消防-控制 6 WIRE-动力控制
// 8: LAY_WIRE_SOURCE 消防-电源 7 WIRE-动力母线
// 9: LAY_WIRE_USER1 弱电-电视 8 WIRE-网络
// 10: LAY_WIRE_USER2 弱电-网络 9 WIRE-信号
// 11: LAY_WIRE_USER3 动力-控制 10 WIRE-安防
// 12: LAY_WIRE_USER4 动力-母线 11 WIRE-广播
// 13: LAY_WIRE_USER5 弱电-信号 12 WIRE-控制
// 14: LAY_WIRE_USER6 弱电-安防 13 WIRE-电话
// 15: LAY_WIRE_USER7 弱电-广播 14 WIRE-综合布线
// 16: LAY_WIRE_USER8 消防-信号 15 普通照明
// 17: LAY_WIRE_SOCKET 插座 16 应急照明
// 18: LAY_WIRE_USER9 弱电-控制 17 动力
// 19: LAY_WIRE_USER10 弱电-电话 18 插座
// 20: LAY_WIRE_USER11 弱电-综合布线 19 通讯
// 21: LAY_WIRE_OPTICAL_CABLE 光缆 20 WIRE-弱电其他
// 22: LAY_WIRE_THUNDER 避雷线 21 WIRE-视频
// 23: LAY_WIRE_GROUND 接地线 22 WIRE-会议
// 24: LAY_WIRE_USER15 弱电其他 23 WIRE-卫星电视
// 25: LAY_WIRE_USER13 视频 24 消防
// 26: LAY_WIRE_USER12 会议 25 WIRE-消防报警
// 27: LAY_WIRE_USER14 卫星电视 26 WIRE-消防联动
// 28: LAY_WIRE_USER16 消防报警 27 WIRE-消防信号3
// 29: LAY_WIRE_USER17 消防联动 28 WIRE-消防信号4
// 30: LAY_WIRE_USER18 消防信号3 29 WIRE-消防信号5
// 31: LAY_WIRE_USER19 消防信号4 30 WIRE-消防手控
// 32: LAY_WIRE_USER20 消防信号5 31 WIRE-消防气体
// 33: LAY_WIRE_USER21 消防手控 32 WIRE-消防火灾
// 34: LAY_WIRE_USER22 消防气体
// 35: LAY_WIRE_USER23 消防火灾
// 36: LAY_WIRE_USER24 备用
CString g_csUserName[15] = { _T("消防电话"), _T("消防广播"), _T("消防控制"), _T("消防电源")
, _T("电视"), _T("网络"), _T("动力控制"), _T("动力母线")
, _T("信号"), _T("安防"), _T("广播"), _T("启泵")};
CString g_csLineType[MAX_LENGTH] = { _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS")
, _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS")
, _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS")
, _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS")
, _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS")
, _T("CONTINUOUS"), _T("CONTINUOUS"), _T("TG_LP"), _T("TG_E")
, _T("CONTINUOUS"), _T("TG_V"), _T("CONTINUOUS"), _T("TG_TV")
, _T("TG_S1"), _T("TG_S2"), _T("TG_S3"), _T("TG_S4")
, _T("TG_S5"), _T("TG_C"), _T("CONTINUOUS"), _T("CONTINUOUS")
,_T("CONTINUOUS"),};
double g_nWireWidth[MAX_LENGTH] = { 0.35, 0.25, 0.35, 0.5, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35,
0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35,
0.35, 0.5, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35,
0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, };//导线线宽
CString g_csWireLoop[MAX_LENGTH] = {_T("WL1"), _T("WP1"), _T("XF1"), _T("WP1"),
_T("WP1"), _T("XF1"), _T("XF1"), _T("XF1"),_T("XF1"),
_T("TP1"), _T("TP1"), _T("TP1"), _T("WP1"),
_T("TP1"), _T("WP1"), _T("TP1"), _T("WP1"),
_T("WP1"), _T("TP1"), _T("TP1"), _T("TP1"), _T("GW1"),
_T(""), _T(""), _T("TP1"), _T("TP1"),
_T("TP1"), _T("TP1"), _T("XF1"), _T("XF1"),
_T("XF1"), _T("XF1"), _T("XF1"), _T("XF1"),
_T("XF1"), _T("XF1"), _T("WL1"),}; //回路编号
CString g_csWireDimType[MAX_LENGTH] = {_T("BV"), _T("YJV"), _T("BV"), _T("YJV"),
_T("BV"), _T("BV"), _T("BV"), _T("BV"),
_T("BV"), _T("SYWV-75"), _T("UTP6"), _T("BV"),//mod liaoy 171010 UTB6->UTP6
_T("BV"), _T("RVS"),_T("SYWV-75"), _T("BV"), _T("RVS"),
_T("BV"), _T("KVV"), _T("RVS"), _T("UTP6"), _T("GJXV"),//mod liaoy 171010 UTB6->UTP6
_T("热镀锌圆钢"),_T("热镀锌扁钢"), _T("BV"), _T("BV"),
_T("BV"), _T("BV"), _T("BV"), _T("BV"),
_T("RVS"), _T("RVS"), _T("RVS"), _T("RVS"),
_T("RVS"), _T("RVS"), _T("BV"),}; //导线型号
CString g_csWireDimArea[MAX_LENGTH] = {_T("3x2.5"), _T("4x16"), _T("2x2.5"), _T("2x2.5"),
_T("3x2.5"), _T("2x2.5"), _T("2x2.5"), _T("2x2.5"),
_T("2x2.5"), _T("5C"), _T(""), _T("3x2.5"),
_T("3x2.5"), _T("2x1.5"), _T("5"),_T("2x2.5"),_T("2x1.5"),
_T("3x2.5"), _T("4x2.5"), _T("2x0.5"), _T(""), _T("1B6a")
,_T("Φ10"), _T("40*4"), _T("2x2.5"), _T("2x2.5"),
_T("2x2.5"), _T("2x2.5"), _T("2x2.5"), _T("2x2.5"),
_T("2x1.5"), _T("2x1.5"), _T("2x1.5"), _T("2x1.5"),
_T("2x1.5"), _T("2x1.5"), _T("2x2.5"),};//导线规格
CString g_csWireDimMode[MAX_LENGTH] = {_T("SC"), _T("SC"), _T("SC"), _T("SC"),
_T("SC"), _T("SC"), _T("SC"), _T("SC"),
_T("SC"), _T("SC"), _T("SC"), _T("SC"),
_T("SC"), _T("SC"), _T("SC"), _T("SC"),_T("SC"),
_T("SC"), _T("SC"), _T("SC"), _T("SC"),_T(""),
_T(""), _T(""), _T("SC"), _T("SC"),
_T("SC"), _T("SC"), _T("SC"), _T("SC"),
_T("SC"), _T("SC"), _T("SC"), _T("SC"),
_T("SC"), _T("SC"), _T("SC"),}; //配线方式
CString g_csWireDimPlace[MAX_LENGTH] = {_T("FC"), _T("CC"), _T("WC"), _T("FC"),
_T("FC"), _T("WC"), _T("WC"), _T("WC"),
_T("WC"), _T("FC"), _T("FC"), _T("WC"),
_T("WC"), _T("FC"), _T("WC"), _T("WC"),
_T("WC"), _T("WC"), _T("WC"), _T("SC"),_T("FC"),
_T(""), _T(""), _T(""), _T("WC"),
_T("WC"), _T("WC"), _T("WC"), _T("WC"),
_T("WC"), _T("WC"), _T("WC"), _T("WC"),
_T("WC"), _T("WC"), _T("WC"), _T("WC"),}; //敷设部位
CString g_csWireDimRadius[MAX_LENGTH] = {_T("15"), _T("25"), _T("15"), _T("15"),
_T("15"), _T("15"), _T("15"), _T("15"),
_T("15"), _T("15"), _T("15"),_T("15"),
_T("15"), _T("15"), _T("15"),_T("15"),
_T("20"), _T("15"), _T("20"),_T("15"),_T("15"),
_T(""), _T(""), _T(""), _T("15"),
_T("15"), _T("15"), _T("15"), _T("15"),
_T("15"), _T("20"), _T("20"), _T("20"),
_T("20"), _T("20"), _T("20")_T("15"),}; //穿管直径
CString g_csWireLineNum[MAX_LENGTH] = { _T(""),_T(""),_T(""),_T(""),_T(""),_T(""),_T(""),_T(""),
_T(""),_T(""),_T(""),_T(""),_T(""),_T(""),_T(""),_T(""),
_T(""),_T(""),_T(""),_T(""),_T(""),_T(""),_T(""),_T(""),
_T(""),_T(""),_T(""),_T(""),_T(""),_T(""),_T(""),_T(""),
_T(""),_T(""),_T(""),_T(""),_T(""),};
int g_iWireDimNorm[MAX_LENGTH] = {0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0
, 0, 1, 0, 0, 0, 0, 0, 0, 0,0,0,0,0,1,1,1,1,1,1,1,1,0, };//普通、阻燃、耐火
//
//**********************************************************************************************************
// 给排水全局变量
//**********************************************************************************************************
double g_nSprinklerRadius = 125, g_nDrainPtRadius = 25, g_nDoubleDist = -1, g_nValveScale=1.2,
g_nStandPipe2Wall = 100, g_nBreakPipeWidth = 2, g_nPipeTextBreak = 0.5,
g_nDnDimDist2Pipe = 2, g_nWellRadius = 8, g_nDimCirDiam = 4, g_nFeedCircleScale = 1,
g_nCurPipeWidth = 0.8, g_nElbowRate = 1, g_dDbPipeLineWidth = 0.35;
int g_iDefaultPipeDn = 25, g_iElbowType = 0, g_iVPipeDimStyle = 0, g_iSprinklerDistMod = 50, g_nSinataryDataType = 0;
int g_iDimPipeLinePos = 0;// 管底标注和井底标注位置 0:井中心1:井与管线的交点处
int g_iDimPipeBaseLineAng = 0;// 管底标注基线角度 0:随支管角度 1:水平角度
BOOL g_bIsElevDimChangeByPipeElev = true;// 单注标高是否随管线标高联动
double g_dVPipeDimDn2Label = 3;
int g_iDimPipeGradientType = 0, g_iDimShortPipeGradientType = 0, g_iDimPipeLen = 5; //室外管线标注样式
int g_iDimWellNamePos = 0, g_iDimWellNameAngle = 0; //井编号距井上下位置
double g_dDimWellNameDist = 2.0; //井编号距离
int g_iDimWellEleType = 1, g_iDimWellEleLeadAngle = 0;//管底标注样式
int g_nAlignTypeForVPipeDim4 = 2; // 立管标注样式4中管径的对齐方式 cet 2012-4-19
int g_nAlignTypeForWellDim = 0; // 井标注对齐方式 0:居中 1:端对齐
double g_dWellDimText2Base = 1.0; // 井标注(管底标注)文字距线距离
CString g_csVerticalSectionHead = _T("井编号 设计地面标高(m) 埋设深度(m) 覆土厚度(m) 管标高(m) 管道长度(m) 管径(mm) 管道坡度 备注");
CString g_csVerticalSectionHeadFeed = _T("井编号 设计地面标高(m) 覆土厚度(m) 管标高(m) 管道长度(m) 管径(mm) 备注");
//室外标注设置
// 管线坡度标注样式
int g_nDimPipeGradientType = 1;
// 短管坡度标注样式
int g_nDimShortPipeGradientType = 0;
// 管线管径标注样式
int g_nDimPipeDnType = 1;
// 短线管径标注样式
int g_nDimShortPipeDnType = 1;
// 管线管长标注样式
//int g_nDimPipeLenType = 5;
// 短线管长标注样式
int g_nDimShortPipeLenType = 0;
// 管线标注分隔符样式
int g_nDimPipeLabelType = 0;
// 短线标注分隔符样式
int g_nDimShortPipeLabelType = 0;
// 管线标注排列方式
int g_nDimPipeDrawType = 0;
// 1: LAY_PIPE_FEED 给水 J
// 2: LAY_PIPE_HEADFEED 热给水 RJ
// 3: LAY_PIPE_HEADBACK 热回水 RH
// 4: LAY_PIPE_DIRT 污水 W
// 5: LAY_PIPE_USELESS 废水 F
// 6: LAY_PIPE_RAIN 雨水 Y
// 7: LAY_PIPE_USED 中水 Z
// 8: LAY_PIPE_FIRE 消防 X
// 9: LAY_PIPE_SPRINKLE 自喷 ZP
// 10: LAY_PIPE_COAGULATE 凝结 N
// 11: LAY_PIPE_DRINK 直饮 ZY
// 12: LAY_PIPE_PRESSDIRT 压力污 YW
// 13: LAY_PIPE_PRESSUSELESS 压力废 YF
// 14: LAY_PIPE_PRESSRAIN 压力雨 YY
// 15: LAY_PIPE_OTHER 其它 T
// 16: LAY_PIPE_USER1 市政给水 SJ
// 17: LAY_PIPE_USER2 循环给水 XJ
// 18: LAY_PIPE_FEED2 给水中区 J
// 19: LAY_PIPE_FEED3 给水高区 J
// 20: LAY_PIPE_HEADFEED2 热给水中区 RJ
// 21: LAY_PIPE_HEADFEED3 热给水高区 RJ
// 22: LAY_PIPE_HEADBACK2 热回水中区 RH
// 23: LAY_PIPE_HEADBACK3 热回水高区 RH
// 24: LAY_PIPE_FIRE2 消防中区 X
// 25: LAY_PIPE_FIRE3 消防高区 X
// 26: LAY_PIPE_SPRINKLE2 自喷中区 ZP
// 27: LAY_PIPE_SPRINKLE3 自喷高区 ZP
// 28: LAY_PIPE_USED2 中水中区 Z
// 29: LAY_PIPE_USED3 中水高区 Z
// 30: LAY_PIPE_USER3 冷却 XH
// 31: LAY_PIPE_USER4 气体灭火 MH
// 32: LAY_PIPE_USER5 蒸汽 Z
// 33: LAY_PIPE_USER6 雨淋 YL
// 34: LAY_PIPE_USER7 通气 T
// 35: LAY_PIPE_USER8 水景 SJ
double g_nPipeWidth[35] = { 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35,
0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35,
0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35,
0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35, 0.35,
0.35, 0.35, 0.35};
CString g_csPipeDim[35] = { _T("J"), _T("RJ"), _T("RH"), _T("W"), _T("F"), _T("Y"), _T("Z"), _T("X"),
_T("ZP"), _T("N"), _T("ZY"), _T("YW"), _T("YF"), _T("YY"), _T("T"), _T("SJ"),
_T("XJ"), _T("J"), _T("J"), _T("RJ"), _T("RJ"), _T("RH"), _T("RH"), _T("X"),
_T("X"), _T("ZP"), _T("ZP"), _T("Z"), _T("Z"), _T("XH"), _T("MH"), _T("Z"),
_T("YL"), _T("T"), _T("SJ")};
int g_iPipeMaterial[35] = { 7, 7, 7, 10, 2, 2, 7, 0,
0, 0, 11, 0, 0, 0, 0, 7,
0, 0, 0, 0, 0, 0, 0, 0,
0, 7, 0, 2, 7};
BOOL g_bPipeDouble[35] = { 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0};
double g_nPipeRadius[35] = { 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,
0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,0.5,
0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,0.5,
0.5, 0.5, 0.5, 0.5, 0.5,0.5, 0.5, 0.5,
0.5, 0.5, 0.5};
CString g_csPipeName[7] = {_T("凝结"), _T("直饮"), _T("压力污"), _T("压力废"), _T("压力雨"),_T("市政给"), _T("循环给"),};
CString g_csTwtLineType[35] = {_T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"),
_T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"),
_T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"),
_T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"),
_T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"),
_T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"),
_T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"),
_T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS"),
_T("CONTINUOUS"), _T("CONTINUOUS"), _T("CONTINUOUS")};
BOOL g_bIsPipeThick = FALSE, g_bEquipByScale = TRUE, g_bBlk3D = TRUE, g_bIsPipeCanalThick = FALSE;
BOOL g_bIsPipeDimCir = FALSE, g_bIsFeedPoint = FALSE, g_bStandPipeArc = TRUE, g_bDimWellOnlyEle = FALSE;
//标注文字样式
CString g_csPipeDnStyle = _T("_TWT_PIPEDN");
CString g_csVPipeStyle = _T("_TWT_SERIAL");
CString g_csPipeTextStyle = _T("_TWT_PIPETEXT");
CString g_csCircleTextStyle = _T("_TWT_CIRCLE");
CString g_csSanTextStyle = _T("_TWT_SANITARY");
CString g_csDimWellStyle = _T("_TWT_WELL");
CString g_csSheetStyle = _T("_TWT_SHEET");
CString g_csTwtDimStyle = _T("_TWT_DIM");
CString g_csEleDimStyle = _T("_TWT_DIM_ELE"); //2012-7-2 陈恩涛add
CString g_csPipeDnChn = _T("HZTXT");
CString g_csPipeDnEng = _T("SIMPLEX");
CString g_csVPipeChn = _T("HZTXT");
CString g_csVPipeEng = _T("COMPLEX");
CString g_csPipeTextChn = _T("HZTXT");
CString g_csPipeTextEng = _T("SIMPLEX");
CString g_csCircleTextChn = _T("HZTXT");
CString g_csCircleTextEng = _T("COMPLEX");
CString g_csSanTextChn = _T("宋体");
CString g_csSanTextEng = _T("");
CString g_csDimWellChn = _T("HZTXT");
CString g_csDimWellEng = _T("SIMPLEX");
CString g_csSheetChn = _T("HZTXT");
CString g_csSheetEng = _T("SIMPLEX");
CString g_csDimChn = _T("HZTXT");
CString g_csDimEng = _T("SIMPLEX");
CString g_csEleDimChn = _T("HZTXT"); ///
CString g_csEleDimEng = _T("SIMPLEX"); ///
double g_nPipeDnHeight = 3.5;
double g_nPipeDnScale = 0.8;
double g_nVPipeHeight = 3.5;
double g_nVPipeScale = 0.8;
double g_nPipeTextHeight = 3.5;
double g_nPipeTextScale = 0.8;
double g_nCircleTextHeight = 3.5;
double g_nCircleTextScale = 1.1;
double g_nSanTextHeight = 3.5;
double g_nSanTextScale = 0.8;
double g_nDimWellHeight = 3.5;
double g_nDimWellScale = 0.8;
double g_nSheetHeight = 3.5;
double g_nSheetScale = 0.8;
double g_nTwtDimHeight = 3.5;
double g_nDimScale = 0.8;
double g_nEleDimHeight = 3.5; ////
double g_nEleDimScale = 0.8; ////
//extern void ReadVPipeDimDnShow(); cet 2016.5.19 del
//**********************************************************************************************************
// 文件中读取线型
BOOL ReadTwtLineType()
{
XString fullFile;
int nCount = 0;
CString csLayer[] = {LAY_PIPE_FEED, LAY_PIPE_HEADFEED, LAY_PIPE_HEADBACK, LAY_PIPE_DIRT, LAY_PIPE_USELESS,
LAY_PIPE_RAIN, LAY_PIPE_USED, LAY_PIPE_FIRE, LAY_PIPE_SPRINKLE, LAY_PIPE_COAGULATE,
LAY_PIPE_DRINK, LAY_PIPE_PRESSDIRT, LAY_PIPE_PRESSUSELESS, LAY_PIPE_PRESSRAIN, LAY_PIPE_OTHER,
LAY_PIPE_USER1, LAY_PIPE_USER2, LAY_PIPE_FEED2, LAY_PIPE_FEED3, LAY_PIPE_HEADFEED2,
LAY_PIPE_HEADFEED3, LAY_PIPE_HEADBACK2, LAY_PIPE_HEADBACK3, LAY_PIPE_FIRE2, LAY_PIPE_FIRE3,
LAY_PIPE_SPRINKLE2, LAY_PIPE_SPRINKLE3, LAY_PIPE_USED2, LAY_PIPE_USED3, LAY_PIPE_USER3,
LAY_PIPE_USER4, LAY_PIPE_USER5, LAY_PIPE_USER6, LAY_PIPE_USER7, LAY_PIPE_USER8
};
if(FindFile(_T("LAYERDEF.DAT"), fullFile))
{
FILE *fp=fopen(_AS(fullFile), "r");
if(!fp)
return FALSE;
while(!feof(fp))
{
char sBuf[256]="";
TCHAR eName[256]=_T(""),sLineType[256]=_T("");
fgets(sBuf, 255, fp);
if(sBuf[0])
{
CT_strnth(TString(sBuf), 2, eName);
CT_strnth(TString(sBuf), 4, sLineType);
}
if (_tcscmp(sLineType,_T("")) == 0)
{
_tcscpy(sLineType,_T("Continuous"));
}
for (int i = 0;i < 35;++i)
{
if (_tcscmp(eName,csLayer[i]) == 0)
{
g_csTwtLineType[i] = sLineType;
nCount++;
}
}
if(nCount == 35)
{
break;
}
}
fclose(fp);
}
else
return FALSE;
return TRUE;
}
void ReadTwtSettingData()
{
CRegProperty regProp(GetRegLocation(), _T("TWTConfig"));
regProp.SetTopRootKey(HKEY_CURRENT_USER);
regProp.GetValue(_T("IsLineTypeByLayer"), g_bLineTypeByLayer);
regProp.GetValue(_T("LineTypeChnShx"), g_csLineTypeChnShx);
regProp.GetValue(_T("LineTypeEngShx"), g_csLineTypeEngShx);
regProp.GetValue(_T("LineTypeHeight"), g_dLineTypeHeight);
regProp.GetValue(_T("LineTypeScale"), g_dLineTypeScale);
regProp.GetValue(_T("Pipe1Width"), g_nPipeWidth[0]);
regProp.GetValue(_T("Pipe2Width"), g_nPipeWidth[1]);
regProp.GetValue(_T("Pipe3Width"), g_nPipeWidth[2]);
regProp.GetValue(_T("Pipe4Width"), g_nPipeWidth[3]);
regProp.GetValue(_T("Pipe5Width"), g_nPipeWidth[4]);
regProp.GetValue(_T("Pipe6Width"), g_nPipeWidth[5]);
regProp.GetValue(_T("Pipe7Width"), g_nPipeWidth[6]);
regProp.GetValue(_T("Pipe8Width"), g_nPipeWidth[7]);
regProp.GetValue(_T("Pipe9Width"), g_nPipeWidth[8]);
regProp.GetValue(_T("Pipe10Width"), g_nPipeWidth[9]);
regProp.GetValue(_T("Pipe11Width"), g_nPipeWidth[10]);
regProp.GetValue(_T("Pipe12Width"), g_nPipeWidth[11]);
regProp.GetValue(_T("Pipe13Width"), g_nPipeWidth[12]);
regProp.GetValue(_T("Pipe14Width"), g_nPipeWidth[13]);
regProp.GetValue(_T("Pipe15Width"), g_nPipeWidth[14]);
regProp.GetValue(_T("Pipe16Width"), g_nPipeWidth[15]);
regProp.GetValue(_T("Pipe17Width"), g_nPipeWidth[16]);
regProp.GetValue(_T("Pipe18Width"), g_nPipeWidth[17]);
regProp.GetValue(_T("Pipe19Width"), g_nPipeWidth[18]);
regProp.GetValue(_T("Pipe20Width"), g_nPipeWidth[19]);
regProp.GetValue(_T("Pipe21Width"), g_nPipeWidth[20]);
regProp.GetValue(_T("Pipe22Width"), g_nPipeWidth[21]);
regProp.GetValue(_T("Pipe23Width"), g_nPipeWidth[22]);
regProp.GetValue(_T("Pipe24Width"), g_nPipeWidth[23]);
regProp.GetValue(_T("Pipe25Width"), g_nPipeWidth[24]);
regProp.GetValue(_T("Pipe26Width"), g_nPipeWidth[25]);
regProp.GetValue(_T("Pipe27Width"), g_nPipeWidth[26]);
regProp.GetValue(_T("Pipe28Width"), g_nPipeWidth[27]);
regProp.GetValue(_T("Pipe29Width"), g_nPipeWidth[28]);
regProp.GetValue(_T("Pipe30Width"), g_nPipeWidth[29]);
regProp.GetValue(_T("Pipe31Width"), g_nPipeWidth[30]);
regProp.GetValue(_T("Pipe32Width"), g_nPipeWidth[31]);
regProp.GetValue(_T("Pipe33Width"), g_nPipeWidth[32]);
regProp.GetValue(_T("Pipe34Width"), g_nPipeWidth[33]);
regProp.GetValue(_T("Pipe35Width"), g_nPipeWidth[34]);
regProp.GetValue(_T("Pipe1Radius"), g_nPipeRadius[0]);
regProp.GetValue(_T("Pipe2Radius"), g_nPipeRadius[1]);
regProp.GetValue(_T("Pipe3Radius"), g_nPipeRadius[2]);
regProp.GetValue(_T("Pipe4Radius"), g_nPipeRadius[3]);
regProp.GetValue(_T("Pipe5Radius"), g_nPipeRadius[4]);
regProp.GetValue(_T("Pipe6Radius"), g_nPipeRadius[5]);
regProp.GetValue(_T("Pipe7Radius"), g_nPipeRadius[6]);
regProp.GetValue(_T("Pipe8Radius"), g_nPipeRadius[7]);
regProp.GetValue(_T("Pipe9Radius"), g_nPipeRadius[8]);
regProp.GetValue(_T("Pipe10Radius"), g_nPipeRadius[9]);
regProp.GetValue(_T("Pipe11Radius"), g_nPipeRadius[10]);
regProp.GetValue(_T("Pipe12Radius"), g_nPipeRadius[11]);
regProp.GetValue(_T("Pipe13Radius"), g_nPipeRadius[12]);
regProp.GetValue(_T("Pipe14Radius"), g_nPipeRadius[13]);
regProp.GetValue(_T("Pipe15Radius"), g_nPipeRadius[14]);
regProp.GetValue(_T("Pipe16Radius"), g_nPipeRadius[15]);
regProp.GetValue(_T("Pipe17Radius"), g_nPipeRadius[16]);
regProp.GetValue(_T("Pipe18Radius"), g_nPipeRadius[17]);
regProp.GetValue(_T("Pipe19Radius"), g_nPipeRadius[18]);
regProp.GetValue(_T("Pipe20Radius"), g_nPipeRadius[19]);
regProp.GetValue(_T("Pipe21Radius"), g_nPipeRadius[20]);
regProp.GetValue(_T("Pipe22Radius"), g_nPipeRadius[21]);
regProp.GetValue(_T("Pipe23Radius"), g_nPipeRadius[22]);
regProp.GetValue(_T("Pipe24Radius"), g_nPipeRadius[23]);
regProp.GetValue(_T("Pipe25Radius"), g_nPipeRadius[24]);
regProp.GetValue(_T("Pipe26Radius"), g_nPipeRadius[25]);
regProp.GetValue(_T("Pipe27Radius"), g_nPipeRadius[26]);
regProp.GetValue(_T("Pipe28Radius"), g_nPipeRadius[27]);
regProp.GetValue(_T("Pipe29Radius"), g_nPipeRadius[28]);
regProp.GetValue(_T("Pipe30Radius"), g_nPipeRadius[29]);
regProp.GetValue(_T("Pipe31Radius"), g_nPipeRadius[30]);
regProp.GetValue(_T("Pipe32Radius"), g_nPipeRadius[31]);
regProp.GetValue(_T("Pipe33Radius"), g_nPipeRadius[32]);
regProp.GetValue(_T("Pipe34Radius"), g_nPipeRadius[33]);
regProp.GetValue(_T("Pipe35Radius"), g_nPipeRadius[34]);
/* regProp.GetValue(_T("PipeLineType1"), g_csTwtLineType[0]);
regProp.GetValue(_T("PipeLineType2"), g_csTwtLineType[1]);
regProp.GetValue(_T("PipeLineType3"), g_csTwtLineType[2]);
regProp.GetValue(_T("PipeLineType4"), g_csTwtLineType[3]);
regProp.GetValue(_T("PipeLineType5"), g_csTwtLineType[4]);
regProp.GetValue(_T("PipeLineType6"), g_csTwtLineType[5]);
regProp.GetValue(_T("PipeLineType7"), g_csTwtLineType[6]);
regProp.GetValue(_T("PipeLineType8"), g_csTwtLineType[7]);
regProp.GetValue(_T("PipeLineType9"), g_csTwtLineType[8]);
regProp.GetValue(_T("PipeLineType10"), g_csTwtLineType[9]);
regProp.GetValue(_T("PipeLineType11"), g_csTwtLineType[10]);
regProp.GetValue(_T("PipeLineType12"), g_csTwtLineType[11]);
regProp.GetValue(_T("PipeLineType13"), g_csTwtLineType[12]);
regProp.GetValue(_T("PipeLineType14"), g_csTwtLineType[13]);
regProp.GetValue(_T("PipeLineType15"), g_csTwtLineType[14]);
regProp.GetValue(_T("PipeLineType16"), g_csTwtLineType[15]);
regProp.GetValue(_T("PipeLineType17"), g_csTwtLineType[16]);
regProp.GetValue(_T("PipeLineType18"), g_csTwtLineType[17]);
regProp.GetValue(_T("PipeLineType19"), g_csTwtLineType[18]);
regProp.GetValue(_T("PipeLineType20"), g_csTwtLineType[19]);
regProp.GetValue(_T("PipeLineType21"), g_csTwtLineType[20]);
regProp.GetValue(_T("PipeLineType22"), g_csTwtLineType[21]);
regProp.GetValue(_T("PipeLineType23"), g_csTwtLineType[22]);
regProp.GetValue(_T("PipeLineType24"), g_csTwtLineType[23]);
regProp.GetValue(_T("PipeLineType25"), g_csTwtLineType[24]);
regProp.GetValue(_T("PipeLineType26"), g_csTwtLineType[25]);
regProp.GetValue(_T("PipeLineType27"), g_csTwtLineType[26]);
regProp.GetValue(_T("PipeLineType28"), g_csTwtLineType[27]);
regProp.GetValue(_T("PipeLineType29"), g_csTwtLineType[28]);
*/
ReadTwtLineType();
//ReadVPipeDimDnShow(); cet 2016.5.19 del
regProp.GetValue(_T("Pipe1Dim"), g_csPipeDim[0]);
regProp.GetValue(_T("Pipe2Dim"), g_csPipeDim[1]);
regProp.GetValue(_T("Pipe3Dim"), g_csPipeDim[2]);
regProp.GetValue(_T("Pipe4Dim"), g_csPipeDim[3]);
regProp.GetValue(_T("Pipe5Dim"), g_csPipeDim[4]);
regProp.GetValue(_T("Pipe6Dim"), g_csPipeDim[5]);
regProp.GetValue(_T("Pipe7Dim"), g_csPipeDim[6]);
regProp.GetValue(_T("Pipe8Dim"), g_csPipeDim[7]);
regProp.GetValue(_T("Pipe9Dim"), g_csPipeDim[8]);
regProp.GetValue(_T("Pipe10Dim"), g_csPipeDim[9]);
regProp.GetValue(_T("Pipe11Dim"), g_csPipeDim[10]);
regProp.GetValue(_T("Pipe12Dim"), g_csPipeDim[11]);
regProp.GetValue(_T("Pipe13Dim"), g_csPipeDim[12]);
regProp.GetValue(_T("Pipe14Dim"), g_csPipeDim[13]);
regProp.GetValue(_T("Pipe15Dim"), g_csPipeDim[14]);
regProp.GetValue(_T("Pipe16Dim"), g_csPipeDim[15]);
regProp.GetValue(_T("Pipe17Dim"), g_csPipeDim[16]);
regProp.GetValue(_T("Pipe18Dim"), g_csPipeDim[17]);
regProp.GetValue(_T("Pipe19Dim"), g_csPipeDim[18]);
regProp.GetValue(_T("Pipe20Dim"), g_csPipeDim[19]);
regProp.GetValue(_T("Pipe21Dim"), g_csPipeDim[20]);
regProp.GetValue(_T("Pipe22Dim"), g_csPipeDim[21]);
regProp.GetValue(_T("Pipe23Dim"), g_csPipeDim[22]);
regProp.GetValue(_T("Pipe24Dim"), g_csPipeDim[23]);
regProp.GetValue(_T("Pipe25Dim"), g_csPipeDim[24]);
regProp.GetValue(_T("Pipe26Dim"), g_csPipeDim[25]);
regProp.GetValue(_T("Pipe27Dim"), g_csPipeDim[26]);
regProp.GetValue(_T("Pipe28Dim"), g_csPipeDim[27]);
regProp.GetValue(_T("Pipe29Dim"), g_csPipeDim[28]);
regProp.GetValue(_T("Pipe30Dim"), g_csPipeDim[29]);
regProp.GetValue(_T("Pipe31Dim"), g_csPipeDim[30]);
regProp.GetValue(_T("Pipe32Dim"), g_csPipeDim[31]);
regProp.GetValue(_T("Pipe33Dim"), g_csPipeDim[32]);
regProp.GetValue(_T("Pipe34Dim"), g_csPipeDim[33]);
regProp.GetValue(_T("Pipe35Dim"), g_csPipeDim[34]);
regProp.GetValue(_T("Pipe1Name"), g_csPipeName[0]);
regProp.GetValue(_T("Pipe2Name"), g_csPipeName[1]);
regProp.GetValue(_T("Pipe3Name"), g_csPipeName[2]);
regProp.GetValue(_T("Pipe4Name"), g_csPipeName[3]);
regProp.GetValue(_T("Pipe5Name"), g_csPipeName[4]);
regProp.GetValue(_T("Pipe6Name"), g_csPipeName[5]);
regProp.GetValue(_T("Pipe7Name"), g_csPipeName[6]);
regProp.GetValue(_T("Pipe1Material"), g_iPipeMaterial[0]);
regProp.GetValue(_T("Pipe2Material"), g_iPipeMaterial[1]);
regProp.GetValue(_T("Pipe3Material"), g_iPipeMaterial[2]);
regProp.GetValue(_T("Pipe4Material"), g_iPipeMaterial[3]);
regProp.GetValue(_T("Pipe5Material"), g_iPipeMaterial[4]);
regProp.GetValue(_T("Pipe6Material"), g_iPipeMaterial[5]);
regProp.GetValue(_T("Pipe7Material"), g_iPipeMaterial[6]);
regProp.GetValue(_T("Pipe8Material"), g_iPipeMaterial[7]);
regProp.GetValue(_T("Pipe9Material"), g_iPipeMaterial[8]);
regProp.GetValue(_T("Pipe10Material"), g_iPipeMaterial[9]);
regProp.GetValue(_T("Pipe11Material"), g_iPipeMaterial[10]);
regProp.GetValue(_T("Pipe12Material"), g_iPipeMaterial[11]);
regProp.GetValue(_T("Pipe13Material"), g_iPipeMaterial[12]);
regProp.GetValue(_T("Pipe14Material"), g_iPipeMaterial[13]);
regProp.GetValue(_T("Pipe15Material"), g_iPipeMaterial[14]);
regProp.GetValue(_T("Pipe16Material"), g_iPipeMaterial[15]);
regProp.GetValue(_T("Pipe17Material"), g_iPipeMaterial[16]);
regProp.GetValue(_T("Pipe18Material"), g_iPipeMaterial[17]);
regProp.GetValue(_T("Pipe19Material"), g_iPipeMaterial[18]);
regProp.GetValue(_T("Pipe20Material"), g_iPipeMaterial[19]);
regProp.GetValue(_T("Pipe21Material"), g_iPipeMaterial[20]);
regProp.GetValue(_T("Pipe22Material"), g_iPipeMaterial[21]);
regProp.GetValue(_T("Pipe23Material"), g_iPipeMaterial[22]);
regProp.GetValue(_T("Pipe24Material"), g_iPipeMaterial[23]);
regProp.GetValue(_T("Pipe25Material"), g_iPipeMaterial[24]);
regProp.GetValue(_T("Pipe26Material"), g_iPipeMaterial[25]);
regProp.GetValue(_T("Pipe27Material"), g_iPipeMaterial[26]);
regProp.GetValue(_T("Pipe28Material"), g_iPipeMaterial[27]);
regProp.GetValue(_T("Pipe29Material"), g_iPipeMaterial[28]);
regProp.GetValue(_T("Pipe30Material"), g_iPipeMaterial[29]);
regProp.GetValue(_T("Pipe31Material"), g_iPipeMaterial[30]);
regProp.GetValue(_T("Pipe32Material"), g_iPipeMaterial[31]);
regProp.GetValue(_T("Pipe33Material"), g_iPipeMaterial[32]);
regProp.GetValue(_T("Pipe34Material"), g_iPipeMaterial[33]);
regProp.GetValue(_T("Pipe35Material"), g_iPipeMaterial[34]);
regProp.GetValue(_T("IsDoublePipe1"), g_bPipeDouble[0]);
regProp.GetValue(_T("IsDoublePipe2"), g_bPipeDouble[1]);
regProp.GetValue(_T("IsDoublePipe3"), g_bPipeDouble[2]);
regProp.GetValue(_T("IsDoublePipe4"), g_bPipeDouble[3]);
regProp.GetValue(_T("IsDoublePipe5"), g_bPipeDouble[4]);
regProp.GetValue(_T("IsDoublePipe6"), g_bPipeDouble[5]);
regProp.GetValue(_T("IsDoublePipe7"), g_bPipeDouble[6]);
regProp.GetValue(_T("IsDoublePipe8"), g_bPipeDouble[7]);
// regProp.GetValue(_T("IsDoublePipe9"), g_bPipeDouble[8]);
// regProp.GetValue(_T("IsDoublePipe10"), g_bPipeDouble[9]);
// regProp.GetValue(_T("IsDoublePipe11"), g_bPipeDouble[10]);
// regProp.GetValue(_T("IsDoublePipe12"), g_bPipeDouble[11]);
// regProp.GetValue(_T("IsDoublePipe13"), g_bPipeDouble[12]);
// regProp.GetValue(_T("IsDoublePipe14"), g_bPipeDouble[13]);
// regProp.GetValue(_T("IsDoublePipe15"), g_bPipeDouble[14]);
// regProp.GetValue(_T("IsDoublePipe16"), g_bPipeDouble[15]);
// regProp.GetValue(_T("IsDoublePipe17"), g_bPipeDouble[16]);
regProp.GetValue(_T("PipeDnChn"), g_csPipeDnChn);
regProp.GetValue(_T("VPipeChn"), g_csVPipeChn);
regProp.GetValue(_T("PipeTextChn"), g_csPipeTextChn);
regProp.GetValue(_T("CircleTextChn"), g_csCircleTextChn);
regProp.GetValue(_T("DimWellChn"), g_csDimWellChn);
regProp.GetValue(_T("SheetChn"), g_csSheetChn);
regProp.GetValue(_T("DimChn"), g_csDimChn); ///
regProp.GetValue(_T("EleDimChn"), g_csEleDimChn);
regProp.GetValue(_T("SanTextChn"), g_csSanTextChn); // cet 2014.5.5 add
regProp.GetValue(_T("PipeDnEng"), g_csPipeDnEng);
regProp.GetValue(_T("VPipeEng"), g_csVPipeEng);
regProp.GetValue(_T("PipeTextEng"), g_csPipeTextEng);
regProp.GetValue(_T("CircleTextEng"), g_csCircleTextEng);
regProp.GetValue(_T("DimWellEng"), g_csDimWellEng);
regProp.GetValue(_T("SheetEng"), g_csSheetEng);
regProp.GetValue(_T("DimEng"), g_csDimEng);
regProp.GetValue(_T("EleDimEng"), g_csEleDimEng);///
regProp.GetValue(_T("SanTextEng"), g_csSanTextEng); // cet 2014.5.5 add
regProp.GetValue(_T("PipeDnHeight"), g_nPipeDnHeight);
regProp.GetValue(_T("VPipeHeight"), g_nVPipeHeight);
regProp.GetValue(_T("PipeTextHeight"), g_nPipeTextHeight);
regProp.GetValue(_T("CircleTextHeight"), g_nCircleTextHeight);
regProp.GetValue(_T("DimWellHeight"), g_nDimWellHeight);
regProp.GetValue(_T("SheetHeight"), g_nSheetHeight);
regProp.GetValue(_T("DimHeight"), g_nTwtDimHeight);
regProp.GetValue(_T("SanTextHeight"), g_nSanTextHeight);
regProp.GetValue(_T("EleDimHeight"), g_nEleDimHeight); ///
regProp.GetValue(_T("SanTextHeight"), g_nSanTextHeight); // cet 2014.5.5 add
regProp.GetValue(_T("PipeDnScale"), g_nPipeDnScale);
regProp.GetValue(_T("VPipeScale"), g_nVPipeScale);
regProp.GetValue(_T("PipeTextScale"), g_nPipeTextScale);
regProp.GetValue(_T("CircleTextScale"), g_nCircleTextScale);
regProp.GetValue(_T("DimWellScale"), g_nDimWellScale);
regProp.GetValue(_T("SheetScale"), g_nSheetScale);
regProp.GetValue(_T("DimScale"), g_nDimScale);
regProp.GetValue(_T("SanTextScale"), g_nSanTextScale);
regProp.GetValue(_T("EleDimScale"), g_nEleDimScale); ///
regProp.GetValue(_T("SanTextScale"), g_nSanTextScale); // cet 2014.5.5 add
regProp.GetValue(_T("DnDimDist2Pipe"), g_nDnDimDist2Pipe);
// regProp.GetValue(_T("Dist2Wall"), g_nStandPipe2Wall);
regProp.GetValue(_T("SprinklerRadius"), g_nSprinklerRadius);
regProp.GetValue(_T("ToolbarPos"), g_iToolbarPos);
regProp.GetValue(_T("IsPipeDimCir"), g_bIsPipeDimCir);
regProp.GetValue(_T("WellRadius"), g_nWellRadius);
regProp.GetValue(_T("DimCirDiam"), g_nDimCirDiam);
regProp.GetValue(_T("DefaultPipeDn"), g_iDefaultPipeDn);
regProp.GetValue(_T("FeedCircleScale"), g_nFeedCircleScale);
regProp.GetValue(_T("FeedPoint"), g_bIsFeedPoint);
regProp.GetValue(_T("Blk3D"), g_bBlk3D);
regProp.GetValue(_T("DrainPtRadius"), g_nDrainPtRadius);
regProp.GetValue(_T("DimPipeGradientType"), g_iDimPipeGradientType);
regProp.GetValue(_T("IsStandPipeArc"), g_bStandPipeArc);
regProp.GetValue(_T("IsDimWellOnlyEle"), g_bDimWellOnlyEle);
regProp.GetValue(_T("VerticalSectionHead"), g_csVerticalSectionHead);
regProp.GetValue(_T("VerticalSectionHeadFeed"), g_csVerticalSectionHeadFeed);
regProp.GetValue(_T("ElbowRate"), g_nElbowRate);
regProp.GetValue(_T("DbPipeLineWidth"), g_dDbPipeLineWidth); // cet
regProp.GetValue(_T("SanitaryDataType"), g_nSinataryDataType); // zxl 2012.12.05 add
regProp.GetValue(_T("VPipeDimStyle"), g_iVPipeDimStyle);
regProp.GetValue(_T("SprinklerDistMod"), g_iSprinklerDistMod);
regProp.GetValue(_T("DimPipeLen"), g_iDimPipeLen);
regProp.GetValue(_T("DimShortPipeGradientType"), g_iDimShortPipeGradientType);
regProp.GetValue(_T("DimWellNameAngle"), g_iDimWellNameAngle);
regProp.GetValue(_T("DimWellNameDist"), g_dDimWellNameDist);
regProp.GetValue(_T("DimWellNamePos"), g_iDimWellNamePos);
regProp.GetValue(_T("DimWellEleType"), g_iDimWellEleType);
regProp.GetValue(_T("AlignTypeForVPipeDim4"), g_nAlignTypeForVPipeDim4);
regProp.GetValue(_T("AlignTypeForWellDim"), g_nAlignTypeForWellDim);
regProp.GetValue(_T("WellDimText2Base"), g_dWellDimText2Base); // cet 2018.1.12 add
regProp.GetValue(_T("DimWellEleLeadAngle"), g_iDimWellEleLeadAngle);
regProp.GetValue(_T("ValveScale"), g_nValveScale);
regProp.GetValue(_T("DimPipeDnType"),g_nDimPipeDnType);
regProp.GetValue(_T("DimShortPipeDnType"),g_nDimShortPipeDnType);
// regProp.GetValue(_T("DimPipeLenType"),g_nDimPipeLenType);
regProp.GetValue(_T("DimShortPipeLenType"),g_nDimShortPipeLenType);
regProp.GetValue(_T("DimPipeGradientType"),g_nDimPipeGradientType);
regProp.GetValue(_T("DimShortPipeGradientType"),g_nDimShortPipeGradientType);
regProp.GetValue(_T("DimPipeLabelType"),g_nDimPipeLabelType);
regProp.GetValue(_T("DimShortPipeLabelType"),g_nDimShortPipeLabelType);
regProp.GetValue(_T("DimPipeDrawType"),g_nDimPipeDrawType);
regProp.GetValue(_T("DimPipeLinePos"), g_iDimPipeLinePos); //ZXL ADD
regProp.GetValue(_T("DimPipeBaseLineAng"), g_iDimPipeBaseLineAng);//ZXL ADD
regProp.GetValue(_T("VPipeDimDn2Label"), g_dVPipeDimDn2Label);//ZXL ADD 2013-8-26
regProp.GetValue(_T("IsElevDimChangeByPipeElev"), g_bIsElevDimChangeByPipeElev);//ZXL ADD
if(!regProp.GetValue(_T("Toolbar"), g_bToolbar))
g_bToolbar = TRUE;
if(!regProp.GetValue(_T("TgOsnap"), g_bTgOsnap))
g_bTgOsnap = TRUE;
if(!regProp.GetValue(_T("DownloadT3Split"), g_bDownloadT3Split))
g_bDownloadT3Split = 1;
}
BOOL LoadLayerLineType()
{
XString fullFile;
int nCount = 0;
CString csLayer[] = {LAY_WIRE_ILLUME,LAY_WIRE_POWER,LAY_WIRE_FIRE,LAY_WIRE_WEAK,
LAY_WIRE_EMERG,LAY_WIRE_TEL,LAY_WIRE_BROAD,LAY_WIRE_CTRL,
LAY_WIRE_SOURCE,LAY_WIRE_USER1,LAY_WIRE_USER2,LAY_WIRE_USER3, LAY_WIRE_USER4,
LAY_WIRE_USER5,LAY_WIRE_USER6,LAY_WIRE_USER7,LAY_WIRE_USER8,
LAY_WIRE_SOCKET,LAY_WIRE_USER9,LAY_WIRE_USER10,LAY_WIRE_USER11,LAY_WIRE_OPTICAL_CABLE
,LAY_WIRE_THUNDER,LAY_WIRE_GROUND,LAY_WIRE_USER15,LAY_WIRE_USER13,LAY_WIRE_USER12,
LAY_WIRE_USER14,LAY_WIRE_USER16,LAY_WIRE_USER17,LAY_WIRE_USER18,LAY_WIRE_USER19,
LAY_WIRE_USER20,LAY_WIRE_USER21,LAY_WIRE_USER22,LAY_WIRE_USER23,LAY_WIRE_USER24};
if(FindFile(_T("layerdef.dat"), fullFile))
{
FILE *fp=fopen(_AS(fullFile), "r");
if(!fp)
return FALSE;
while(!feof(fp))
{
char sBuf[256]="";
TCHAR eName[256]=_T(""),sLineType[256]=_T("");
fgets(sBuf, 255, fp);
if(sBuf[0])
{
CT_strnth(TString(sBuf), 2, eName);
CT_strnth(TString(sBuf), 4, sLineType);
}
if (_tcscmp(sLineType,_T("")) == 0)
{
_tcscpy(sLineType,_T("Continuous"));
}
for (int i = 0;i < MAX_LENGTH;++i)
{
if (_tcscmp(eName,csLayer[i]) == 0)
{
g_csLineType[i] = sLineType;
nCount++;
}
}
if (nCount == MAX_LENGTH)
{
break;
}
}
fclose(fp);
}
else
return FALSE;
return TRUE;
}
void ReadTelSettingData()
{
LoadLayerLineType();
CRegProperty regProp(GetRegLocation(), _T("TElecConfig"));
regProp.SetTopRootKey(HKEY_CURRENT_USER);
regProp.GetValue(_T("GourdWireLineType"), g_iGourdWireLineType);
regProp.GetValue(_T("LightingWireLineType"), g_iLightingWireLineType);
regProp.GetValue(_T("BusLineWidth"), g_dBusLineWidth);
regProp.GetValue(_T("SysLineWidth"), g_dSysLineWidth);
regProp.GetValue(_T("BlkLineWidth"), g_dBlkThickWidth);
regProp.GetValue(_T("EqBlkLength"), g_nEqBlkLength);
regProp.GetValue(_T("Eq2WallDist"), g_nEq2WallDist);
regProp.GetValue(_T("PointDia"), g_nPointDia);
regProp.GetValue(_T("TerminalDia"), g_nTerminalDia);
regProp.GetValue(_T("WireDimScale"), g_nWireDimScale);
regProp.GetValue(_T("TextHeight_Dim"), g_nDimHeight);
regProp.GetValue(_T("WHScale_Dim"), g_nScaleDim);
regProp.GetValue(_T("WireNumHeight"), g_nWireNumHeight);
regProp.GetValue(_T("LastBlkMaxNum"), g_iLastBlkMaxNum);
regProp.GetValue(_T("WireBreak"), g_iWireBreak);
regProp.GetValue(_T("WireTextType"), g_iWireTextType);
regProp.GetValue(_T("WireNumType"), g_iWireNumType);
regProp.GetValue(_T("PlanWireIndex"), g_iPlanWireIndex);
regProp.GetValue(_T("IsJoin2Wire"), g_bJoin2Wire);
regProp.GetValue(_T("RotateAttrib"), g_bRotateAttrib);
regProp.GetValue(_T("IsAskInsBlk"), g_bAskInsBlk);
regProp.GetValue(_T("ThickEquip"), g_bThickEquip);
regProp.GetValue(_T("WireAskInfo"), g_bWireAskInfo);
regProp.GetValue(_T("CloseLnGrid"), g_bCloseLnGrid);
regProp.GetValue(_T("IsDrawWireDiv"), g_bDrawWireDiv);
regProp.GetValue(_T("IsLineTypeByLayer"), g_bLineTypeByLayer);
regProp.GetValue(_T("LineTypeChnShx"), g_csLineTypeChnShx);
regProp.GetValue(_T("LineTypeEngShx"), g_csLineTypeEngShx);
regProp.GetValue(_T("LineTypeHeight"), g_dLineTypeHeight);
regProp.GetValue(_T("LineTypeScale"), g_dLineTypeScale);
regProp.GetValue(_T("TextStyle_Chn"), g_csDimChnShx);
regProp.GetValue(_T("TextStyle_Eng"), g_csDimEngShx);
regProp.GetValue(_T("TextAttrStyle"),g_csTextAttr);
regProp.GetValue(_T("TelecFontStyle"),g_csTelFontStyle);
regProp.GetValue(_T("IsNeedChamAngle"),g_bIsChamAngle);
regProp.GetValue(_T("ChamferAngle"),g_dChamAngle);
regProp.GetValue(_T("TextAttrStyle_ChnShx"),g_csBlkAttrTypeChnShx);
regProp.GetValue(_T("TextAttrStyle_Eng"),g_csBlkAttrTypeEngShx);
if(!regProp.GetValue(_T("DimWireSimple"), g_bDimWireSimple))
regProp.SetValue(_T("DimWireSimple"), g_bDimWireSimple);//此处需要设置一下,否则注册表无此项直接进行导线标注时会造成简标情况的发生
if(!regProp.GetValue(_T("DownloadT3Split"), g_bDownloadT3Split))
g_bDownloadT3Split = 1;
CString sValue;
for (int i = 0 ; i < MAX_LENGTH; i++)
{
//线宽
sValue.Empty();
sValue.Format(_T("Wire%dWidth"),i+1);
regProp.GetValue(sValue, g_nWireWidth[i]);
//型号
sValue.Empty();
sValue.Format(_T("Wire%dDimType"),i+1);
regProp.GetValue(sValue, g_csWireDimType[i]);
//规格
sValue.Empty();
sValue.Format(_T("Wire%dDimArea"),i+1);
regProp.GetValue(sValue, g_csWireDimArea[i]);
//配线方式
sValue.Empty();
sValue.Format(_T("Wire%dDimMode"),i+1);
regProp.GetValue(sValue, g_csWireDimMode[i]);
//敷设部位
sValue.Empty();
sValue.Format(_T("Wire%dDimPlace"),i+1);
regProp.GetValue(sValue, g_csWireDimPlace[i]);
//穿管直径
sValue.Empty();
sValue.Format(_T("Wire%dDimRadius"),i+1);
regProp.GetValue(sValue, g_csWireDimRadius[i]);
//普通,阻燃,耐火
sValue.Empty();
sValue.Format(_T("Wire%dDimNorm"),i+1);
regProp.GetValue(sValue, g_iWireDimNorm[i]);
//回路编号
sValue.Empty();
sValue.Format(_T("Wire%dLoop"),i+1);
regProp.GetValue(sValue, g_csWireLoop[i]);
//导线根数
sValue.Empty();
sValue.Format(_T("Wire%dLineNum"),i+1);
regProp.GetValue(sValue, g_csWireLineNum[i]);
}
//是否激活
for (int j = 0 ; j < 34; j++)
{
sValue.Empty();
sValue.Format(_T("NeedUser%d"),j+1);
regProp.GetValue(sValue, g_bNeedUser[j]);
}
XSymbolList lstStyle(_T("STYLE"));
if(lstStyle.Index(g_csDimStyle) < 0)
g_csDimStyle = _T("_TEL_DIM");
}
void SaveTelSettingData()
{
CRegProperty regProp(GetRegLocation(), _T("TElecConfig"));
regProp.SetTopRootKey(HKEY_CURRENT_USER);
regProp.SetValue(_T("GourdWireLineType"), g_iGourdWireLineType);
regProp.SetValue(_T("LightingWireLineType"), g_iLightingWireLineType);
regProp.SetValue(_T("BusLineWidth"), g_dBusLineWidth);
regProp.SetValue(_T("SysLineWidth"), g_dSysLineWidth);
regProp.SetValue(_T("BlkLineWidth"), g_dBlkThickWidth);
regProp.SetValue(_T("EqBlkLength"), g_nEqBlkLength);
regProp.SetValue(_T("Eq2WallDist"), g_nEq2WallDist);
regProp.SetValue(_T("PointDia"), g_nPointDia);
regProp.SetValue(_T("TerminalDia"), g_nTerminalDia);
regProp.SetValue(_T("WireDimScale"), g_nWireDimScale);
regProp.SetValue(_T("TextHeight_Dim"), g_nDimHeight);
regProp.SetValue(_T("WHScale_Dim"), g_nScaleDim);
regProp.SetValue(_T("WireNumHeight"), g_nWireNumHeight);
regProp.SetValue(_T("LastBlkMaxNum"), g_iLastBlkMaxNum);
regProp.SetValue(_T("WireBreak"), g_iWireBreak);
regProp.SetValue(_T("WireTextType"), g_iWireTextType);
regProp.SetValue(_T("WireNumType"), g_iWireNumType);
regProp.SetValue(_T("PlanWireIndex"), g_iPlanWireIndex);
regProp.SetValue(_T("IsJoin2Wire"), g_bJoin2Wire);
regProp.SetValue(_T("RotateAttrib"), g_bRotateAttrib);
regProp.SetValue(_T("IsAskInsBlk"), g_bAskInsBlk);
regProp.SetValue(_T("ThickEquip"), g_bThickEquip);
regProp.SetValue(_T("WireAskInfo"), g_bWireAskInfo);
regProp.SetValue(_T("DimWireSimple"), g_bDimWireSimple);
regProp.SetValue(_T("CloseLnGrid"), g_bCloseLnGrid);
regProp.SetValue(_T("IsDrawWireDiv"), g_bDrawWireDiv);
regProp.SetValue(_T("IsLineTypeByLayer"), g_bLineTypeByLayer);
regProp.SetValue(_T("LineTypeChnShx"), g_csLineTypeChnShx);
regProp.SetValue(_T("LineTypeEngShx"), g_csLineTypeEngShx);
regProp.SetValue(_T("LineTypeHeight"), g_dLineTypeHeight);
regProp.SetValue(_T("LineTypeScale"), g_dLineTypeScale);
regProp.SetValue(_T("TextStyle_Chn"), g_csDimChnShx);
regProp.SetValue(_T("TextStyle_Eng"), g_csDimEngShx);
regProp.SetValue(_T("TextAttrStyle"),g_csTextAttr);
regProp.SetValue(_T("TelecFontStyle"),g_csTelFontStyle);
regProp.SetValue(_T("IsNeedChamAngle"),g_bIsChamAngle);
regProp.SetValue(_T("ChamferAngle"),g_dChamAngle);
regProp.SetValue(_T("TextAttrStyle_ChnShx"),g_csBlkAttrTypeChnShx);
regProp.SetValue(_T("TextAttrStyle_Eng"),g_csBlkAttrTypeEngShx);
CString sValue;
for (int i = 0 ; i < MAX_LENGTH; i++)
{
//线宽
sValue.Empty();
sValue.Format(_T("Wire%dWidth"),i+1);
regProp.SetValue(sValue, g_nWireWidth[i]);
//型号
sValue.Empty();
sValue.Format(_T("Wire%dDimType"),i+1);
regProp.SetValue(sValue, g_csWireDimType[i]);
//规格
sValue.Empty();
sValue.Format(_T("Wire%dDimArea"),i+1);
regProp.SetValue(sValue, g_csWireDimArea[i]);
//配线方式
sValue.Empty();
sValue.Format(_T("Wire%dDimMode"),i+1);
regProp.SetValue(sValue, g_csWireDimMode[i]);
//敷设部位
sValue.Empty();
sValue.Format(_T("Wire%dDimPlace"),i+1);
regProp.SetValue(sValue, g_csWireDimPlace[i]);
//穿管直径
sValue.Empty();
sValue.Format(_T("Wire%dDimRadius"),i+1);
regProp.SetValue(sValue, g_csWireDimRadius[i]);
//普通,阻燃,耐火
sValue.Empty();
sValue.Format(_T("Wire%dDimNorm"),i+1);
regProp.SetValue(sValue, g_iWireDimNorm[i]);
//回路编号
sValue.Empty();
sValue.Format(_T("Wire%dLoop"),i+1);
regProp.SetValue(sValue, g_csWireLoop[i]);
//导线根数
sValue.Empty();
sValue.Format(_T("Wire%dLineNum"),i+1);
regProp.SetValue(sValue, g_csWireLineNum[i]);
}
//是否激活
for (int j = 0 ; j < 34; j++)
{
sValue.Empty();
sValue.Format(_T("NeedUser%d"),j+1);
regProp.SetValue(sValue, g_bNeedUser[j]);
}
}
AcDbObjectId InitLineTypeTextAttrStyle()
{
AcDbObjectId idRet=GetTextStyleId(g_csTextAttr);
if(idRet == NULL) {
g_lstWinfont.Reset();
g_lstCharset.Reset();
g_lstPitch.Reset();
CDC *pDC = acedGetAcadDwgView()->GetDC();
ASSERT(pDC);
LOGFONT lf;
ZeroMemory(&lf,sizeof(lf));
lf.lfCharSet = DEFAULT_CHARSET;
EnumFontFamiliesEx(pDC->m_hDC, &lf,
(FONTENUMPROC)EnumFontFamExProc2, NULL, 0);
acedGetAcadDwgView()->ReleaseDC(pDC);
AcDbTextStyleTableRecord *pStyle=new AcDbTextStyleTableRecord;
pStyle->setName(g_csTextAttr);
pStyle->setTextSize(3);
int idx = g_lstWinfont.Index(g_csBlkAttrTypeChnShx);
if(idx < 0){
pStyle->setFileName(g_csBlkAttrTypeEngShx);
pStyle->setBigFontFileName(g_csBlkAttrTypeChnShx);
}
else{
int iCharset = *g_lstCharset[idx];
int iPitch = *g_lstPitch[idx];
#if ADS > 20
pStyle->setFont(g_csBlkAttrTypeChnShx, false, false, (Charset)iCharset, (Autodesk::AutoCAD::PAL::FontUtils::FontPitch)iPitch, Autodesk::AutoCAD::PAL::FontUtils::FontFamily::kDoNotCare);
#else
pStyle->setFont(g_csBlkAttrTypeChnShx, FALSE, FALSE, iCharset, iPitch);
#endif
// modify by cq 2017-01-05 支持CAD2017
}
pStyle->setXScale(0.8);
idRet = AddTextStyle(pStyle, TRUE);
}
return idRet;
}
extern TARCH_IMPEXP int g_nProductId;
/*
//extern TARCH_IMPEXP TCHAR g_sDwbPath[];
MY_RES_HERE;
#if (ADS<=14)
extern "C" HINSTANCE _hdllInstance;
#else
extern "C" {
HINSTANCE _hdllInstance;
}
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
_hdllInstance = hInstance;
return 1; // ok
}
#endif
extern BOOL InitModule(HINSTANCE, DWORD, LPVOID);
static AFX_EXTENSION_MODULE arxmfcDLL;
extern BOOL InitModule(HINSTANCE hInstance, DWORD dwReason, LPVOID)
{
if (dwReason == DLL_PROCESS_ATTACH){
if (!AfxInitExtensionModule(arxmfcDLL, hInstance))
return 0;
CTemporaryResourceOverride::SetDefaultResource(_hdllInstance);
new CDynLinkLibrary(arxmfcDLL);
}else if (dwReason == DLL_PROCESS_DETACH){
AfxTermExtensionModule(arxmfcDLL);
}
return 1;
}
*/
HINSTANCE _hdllInstance = NULL ;
AC_IMPLEMENT_EXTENSION_MODULE(arxmfcDLL);
extern void InitAol(const TCHAR *szAppName);
extern "C"
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
_hdllInstance = hInstance;
arxmfcDLL.AttachInstance(hInstance);
// Insert this DLL into the resource chain
// new CDynLinkLibrary(arxmfcDLL);
//Init for AOL
InitAol(TCHXD);
InitGeLib();
//InitAcUiDLL();
}
else if (dwReason == DLL_PROCESS_DETACH)
{
arxmfcDLL.DetachInstance();
}
return TRUE;
}
// 以下是命令函数
//图层
extern void OpenAllLayer(); // 开所有层
extern void OpenLayer(); // 打开图层
extern void OpenSelLayer(); // 开非选层
extern void CloseSelLayer(); // 关所选层
extern void LockNoSelLayer(); // 锁非选层
extern void LockSelLayer(); // 锁所选层
extern void UnLockSelLayer(); // 解锁图层
extern void EraseSelLayer(); // 删所选层图元
extern void ChangeLayer(); // 改为上华层
extern void ConvertLayer(); // 图层转换
extern void ChangeLayer2Twt(); // 图层转换
extern void LayerMan(); // 图层颜色
extern void DefineLayer(); // 定义图层
extern void MergeLayer(); // 合并图层
//图层工具
extern void LayerTools(); // 图层工具
extern void DestroyLayerManBar();
//条件图
extern void SetTArchLayTag(); // 设置建筑标识
extern void ClearTArchLayTag(); // 清除建筑标识
extern void LoadTch(); // 转条件图
extern void Column2Null(); // 柱子空心
extern void DelWindowText(); // 删门窗名
//线型
extern void SetDashLine(); // 线型比例
extern void LineTypeMan(); // 线型管理
extern int InvokeLineTypeMan(); // 线型库LISP
extern void ReviseLineType(); // 修正线形
extern void Continue2Dash(); // 虚实变换
extern void LineTypeLibCmd(); // 线型库
extern int InvokeLineTypeLibCmd(); // 线型管理LISP
//统计表格
extern void MergeCountSheet(); // 统计合并
extern void CountSheetFind(); // 统计查询
//公共命令
extern void SetToolbarCmd(); // 设置工具条
extern void SetToolbarPos();
extern void TgDragCopy(); // 上华拷贝
extern void SelObjectCmd(); // 过滤选择
extern void SplitDwg(); // 备档拆图
extern void ProtectDwg(); // 图纸保护
extern void UnlockProtectDwg(); // 图纸解锁
extern void DrawCustomPoly(); // 绘多段线
extern void BrushBlock(); // 图块刷
extern void LoadConfigCmd(); // 加载高级选项
extern void SetSnapAngByLineCmd(); // 依线正交
extern void SaveSettingCmd(); // 导出设置
extern void ReadSettingCmd(); // 导入设置
extern void ChangeBlkColorCmd(); // 图块改色
extern void ChangeBlkNameCmd(); // 图块改名
extern void RemoveDupEntity(); // 消重图元
extern void ModifyElev(); // 设置标高
extern void FloorOper(); // 楼层设置
extern void SetFloorBasePt(); // 楼层基点
extern void CopyByFloorBasePt(); // 楼层复制
extern void ChangeUnitCmd(); // 单位换算
extern void CloneExternRefEnts(); // 图层克隆
extern void CheckPipeMultDim(); // 检查多管标注
extern void LineTypeExport(); // 线型导出 2017.4.13 陈恩涛
//文字
extern void ModifyTextCmd(); // 修改文字
extern void PlusTextCmd(); // 递增文字
extern void EqualTextHeight(); // 统一字高
extern void InsertTextCmd(); // 专业文字
extern void TextAlignment(); // 文字对齐
//系统变量
extern void SetOldDrawingIndex(); // 设置轴号
extern void CheckPlot(); // 打印检查
extern void CheckTextStyle(); // 文字样式检查
extern void CheckDictionary(); // 字典检查
extern void TgMakeSlide(); // 造幻灯片
extern void CatchScreenCmd(); // 上华抓屏
extern void SetTgMode(); // 加密设置
extern void TgDwgLibEx(); // 上华图集
extern void CompareDwgCmd(); // 图纸比对
//extern void ComparePartOfDwgCmd(); // 局部比对
extern void DrawOpeningBy2Wall(); // 补门窗
extern void StandardCheck(); // 标准检查
extern void TextMLine(); // 多行文字
extern void testBlock(); // 多行文字
extern BOOL GetToolbarVisible();
extern void UnloadToolbar();
extern void UpdateToolBar(); // 工具条升级
extern int InvokeDataStore();
extern int InvokeTgDwgLib();
int EditMutiText(AcDbObjectId id);
int EditFloorRect(AcDbObjectId id); // cet 2013.1.8 add
static AecObjectEditMethod g_pOldEditMutiText = NULL;
static AecObjectEditMethod g_pOldEditFloorRect = NULL; // cet 2013.1.8 add
static extern_fun cmdtab[] = {
{_T("ILineTypeMan"), InvokeLineTypeMan}, //线型库LISP
{_T("ITypeLibCmd"), InvokeLineTypeLibCmd},// 线型管理LISP
{_T("ITgDwgLib"), InvokeTgDwgLib},
{_T("IDataStore"), InvokeDataStore},
};
static ArxCommandTable g_acedCmdTable[] = {
{_T("OpenSelLayer"), OpenSelLayer, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET},
{_T("CloseSelLayer"), CloseSelLayer, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET},
{_T("EraseSelLayer"), EraseSelLayer, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET},
{_T("ChangeLayer"), ChangeLayer, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET},
{_T("gjt"), SetToolbarCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 工具条
{_T("ztjt"), LoadTch, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 转条件图 2003.11.6 转移
{_T("tcys"), LayerMan, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 图层颜色 2003.11.6 转移
{_T("xsbh2"), Continue2Dash, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, // 虚实变换 2003.11.10 转移
{_T("xgwz"), ModifyTextCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET | ACRX_CMD_REDRAW}, //修改文字
{_T("dzwz2"), PlusTextCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //递增文字 2003.6.16
{_T("tyzg2"), EqualTextHeight, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //统一字高 2003.8.6
{_T("zywz"), InsertTextCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //专业文字 2002.4.23
{_T("xxbl"), SetDashLine, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //线型比例 2001.11.27
{_T("tzkb"), TgDragCopy, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //上华拷贝 2003.11.19
{_T("zzkx"), Column2Null, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //柱子空心 2004.3.11
{_T("smcm"), DelWindowText, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //删门窗名 2004.4.5
{_T("OpenAllLayer"), OpenAllLayer, ACRX_CMD_TRANSPARENT }, //打开全部层 2005.1.27
{_T("UnLockSelLayer"), UnLockSelLayer, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //解锁图层 2005.1.28
{_T("LockSelLayer"), LockSelLayer, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //锁定图层 2005.1.28
{_T("OpenLayer"), OpenLayer, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //打开图层 2005.3.9
{_T("ConvertLayer"), ConvertLayer, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //图层转换 2005.3.10
{_T("ChangeLayer2Twt"), ChangeLayer2Twt, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET },//图层转换 2005.3.14
{_T("dyjc"), CheckPlot, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //打印检查 2005.3.24
{_T("zdjc"), CheckDictionary, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //字典检查 2005.5.18
{_T("TgMakeSlide"), TgMakeSlide, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET },//造块时自动生成幻灯片
{_T("SetTgMode"), SetTgMode, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //修改上华加密模式
{_T("xxgl"), LineTypeMan, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //线型管理 2005.11.3
{_T("glxz"), SelObjectCmd, ACRX_CMD_MODAL| ACRX_CMD_REDRAW }, //过滤选择 2005.12.5
{_T("tzzp"), CatchScreenCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //上华抓屏 2006.4.4
{_T("xzxx"), ReviseLineType, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //修正线形 2006.7.31
{_T("bdct"), SplitDwg, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //备档拆图 2006.11.2
{_T("tzbh2"), ProtectDwg, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //图纸保护 2006.11.7
{_T("tzjs"), UnlockProtectDwg, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //图纸解锁 2006.11.7
{_T("hddx"), DrawCustomPoly, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //绘多段线 2006.11.23
{_T("SetTArchLayTag"), SetTArchLayTag, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //设置建筑标识 2006.12.1
{_T("ClearTArchLayTag"),ClearTArchLayTag, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //取消建筑标识 2010.5.10
{_T("xxk"), LineTypeLibCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //线型库 2006.12.1
{_T("tzbd"), CompareDwgCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //图纸比对 2007.3.5
// {_T("jbbd"), ComparePartOfDwgCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET },//局部比对 2007.12.10
{_T("tks"), BrushBlock, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //图块刷 2007.3.6
{_T("sfxc"), LockNoSelLayer, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //锁非选层 2007.3.15
{_T("DefineLayer"), DefineLayer, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET },//定义图层 2007.5.22
{_T("hbtc"), MergeLayer, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //合并图层 2007.6.4
{_T("hbtj"), MergeCountSheet, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //统计合并 2007.6.19
{_T("tztj"), TgDwgLibEx, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //上华图集 2007.6.19
{_T("tcgj"), LayerTools, ACRX_CMD_MODAL}, //图层工具 2007.12.18
{_T("yxzj"), SetSnapAngByLineCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET}, //依线正交 2008.1.24
// {_T("tloadconfig"), LoadConfigCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //加载高级选项 2007.9.3
{_T("tjcx"), CountSheetFind, ACRX_CMD_MODAL| ACRX_CMD_REDRAW}, //统计查询 2008.1.24
{_T("ztjc"), CheckTextStyle, ACRX_CMD_MODAL| ACRX_CMD_REDRAW}, //字体检查 2008.7.29 2011.4.7改名
{_T("dcsz"), SaveSettingCmd, ACRX_CMD_MODAL| ACRX_CMD_REDRAW}, //导出设置 2008.8.14
{_T("drsz"), ReadSettingCmd, ACRX_CMD_MODAL| ACRX_CMD_REDRAW}, //导入设置 2008.8.20
{_T("lcjd"), SetFloorBasePt, ACRX_CMD_MODAL| ACRX_CMD_REDRAW}, //楼层基点 2009.2.28
{_T("lcfz"), CopyByFloorBasePt, ACRX_CMD_MODAL| ACRX_CMD_REDRAW| ACRX_CMD_USEPICKSET}, //楼层复制 2009.2.29
{_T("dkgs"), ChangeBlkColorCmd, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //图块改色 2002.11.7 2009-3-2转移
{_T("xcty2"), RemoveDupEntity, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //消重图元 2009.8.29
{_T("szbg"), ModifyElev, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //设置标高 2009.8.30
{_T("SetOldDrawingIndex"), SetOldDrawingIndex, ACRX_CMD_MODAL}, //设置轴号 2010.6.1
{_T("yszt"), DrawOpeningBy2Wall, ACRX_CMD_MODAL}, //补门窗 2010.8.26
{_T("wzdq"), TextAlignment, ACRX_CMD_MODAL| ACRX_CMD_REDRAW}, //文字对齐 2010.12.9 cet移植
{_T("tkgm2"), ChangeBlkNameCmd, ACRX_CMD_MODAL| ACRX_CMD_REDRAW}, //图块改名 2011.6.24
{_T("lcsz"), FloorOper, ACRX_CMD_MODAL| ACRX_CMD_REDRAW}, //楼层设置 2011.10.11 鲍士雷移植
{_T("dwhs"), ChangeUnitCmd, ACRX_CMD_MODAL| ACRX_CMD_REDRAW}, //单位换算 2012.1.5 沈睿移植暖通
{_T("bzjc"), StandardCheck, ACRX_CMD_MODAL| ACRX_CMD_REDRAW}, //标准检查 2012.5.14 李小龙
{_T("gjtsj"), UpdateToolBar, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //工具条升级 2012.07.10 郑晓龙
{_T("fywz"), TextMLine, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //多行文字 2012.12.28 郑晓龙
{_T("tckl"), CloneExternRefEnts, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //图层克隆 2013.5.3 陈恩涛
{_T("dgjc"), CheckPipeMultDim, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //检查多管标注 2015.10.23 陈恩涛
{_T("xxdc"), LineTypeExport, ACRX_CMD_MODAL| ACRX_CMD_USEPICKSET }, //线型导出 2017.4.13 陈恩涛
};
//TARCH_IMPEXP XString GetFullCmdName(const TCHAR *szName);
void OnLoadApp()
{
// if(g_nProtectCode == 0){
// return;
// }
CString csConfigName;
if(g_nProductId==16)
csConfigName = _T("TElecConfig");
else if(g_nProductId==14)
csConfigName = _T("TwtConfig");
else if(g_nProductId==15)
csConfigName = _T("THvacConfig");
else if(g_nProductId==1)
csConfigName = _T("Settings");
BOOL bToolbar(TRUE);
CRegProperty regProp(GetRegLocation(), (const TCHAR*)csConfigName);
regProp.SetTopRootKey(HKEY_CURRENT_USER);
if(!regProp.GetValue(_T("Toolbar"), bToolbar))
bToolbar = TRUE;
g_csDwbPath = g_sDwbPath;
//g_csSysPath = g_sDwbPath;//sr 2010-8-20 原先 g_csSysPath = g_sAppPath 在64位下-7就不合适了
//g_csSysPath = g_csSysPath.Left(g_csSysPath.GetLength() - 5) + _T("\\sys\\");
g_csSysPath = g_sAppPath;
g_csSysPath.TrimRight(_T("\\"));
int nPos = g_csSysPath.ReverseFind(_T('\\'));
if (nPos >= 0)
{
g_csSysPath = g_csSysPath.Left(nPos) + _T("\\sys\\");
}
if(g_nProductId == 16)
{
ReadTelSettingData();
InitLineTypeTextAttrStyle();
}
else if(g_nProductId == 14)
ReadTwtSettingData();
if(bToolbar && (g_nProductId == 14 || g_nProductId == 15 || g_nProductId == 16))
CreateToolbars();
for(int i=0; i<ELEMENTS(g_acedCmdTable); i++) {
// cet 2017.1.9 add 给排水在水专业其他工程中,重新实现了以下命令
if (g_nProductId == 14 &&
(_tcsicmp(g_acedCmdTable[i].szCmdGlobal, _T("tjcx")) == 0 ||
_tcsicmp(g_acedCmdTable[i].szCmdGlobal, _T("hbtj")) == 0 ))
{
continue;
}
acedRegCmds->addCommand(_T("TAPI_CMD"), g_acedCmdTable[i].szCmdGlobal,
g_acedCmdTable[i].szCmdGlobal, g_acedCmdTable[i].nCmdFlag, g_acedCmdTable[i].pFun);
}
if(g_nProductId==14 || g_nProductId==16)//各专业可以自定义TXX_TLoadConfig
{
XString sCmd=GetFullCmdName(_T("TLoadConfig"));
acedRegCmds->addCommand(_T("TAPI_CMD"),sCmd ,sCmd,
ACRX_CMD_TRANSPARENT, LoadConfigCmd, NULL, ELEMENTS(g_acedCmdTable));
}
g_pOldEditMutiText = TDbMTextNew::SetEditMethod(EditMutiText);
g_pOldEditFloorRect = TDbFloorRect::SetEditMethod(EditFloorRect); // cet 2013.1.8 add
AfxInitRichEdit();// zxl 2013.01.29 add 提供CRICHEDITCTRL支持
}
void OnUnloadApp()
{
acedRegCmds->removeGroup(_T("TAPI_CMD"));
UnloadToolbar();
DestroyLayerManBar();
SaveTelSettingData();
TDbMTextNew::SetEditMethod(g_pOldEditMutiText);
TDbFloorRect::SetEditMethod(g_pOldEditFloorRect); // cet 2013.1.8 add
}
int OnDoFunc()
{
int cindex = ads_getfuncode();
int nRet=RTNORM;
if (cindex >= 0 && cindex < ELEMENTS(cmdtab)) {
if(cmdtab[cindex].cmdname[1]==_T(':')) {
XPushUndo vTemp;
(*cmdtab[cindex].cmdfunc)();
ads_retvoid();
} else {
(*cmdtab[cindex].cmdfunc)();
}
nRet = RTNORM;
}
else nRet=RTERROR;
return nRet;
}
int OnDwgLoaded()
{
for(int i=0;i<ELEMENTS(cmdtab); i++) {
ads_defun(cmdtab[i].cmdname,i);
}
if (g_nProductId == 16)
InitLineTypeTextAttrStyle();
return RTNORM;
}
void UnloadDwgMsg()
{
SetToolbarPos();
}
//////////////////////////////////////////////////////////////
//
// Entry point
//
//////////////////////////////////////////////////////////////
extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
{
switch (msg) {
case AcRx::kInitAppMsg:
acrxUnlockApplication(pkt);
#if(ADS>14)
acrxDynamicLinker->registerAppMDIAware(pkt);
#endif
// InitModule(_hdllInstance, DLL_PROCESS_ATTACH, NULL);
OnLoadApp();
break;
case AcRx::kLoadDwgMsg:
OnDwgLoaded();
break;
case AcRx::kInvkSubrMsg:
OnDoFunc();
break;
case AcRx::kSaveMsg:
break;
case AcRx::kUnloadDwgMsg: //Bug no message coming
UnloadDwgMsg();
break;
case AcRx::kPreQuitMsg:
// SetToolbarVisible(FALSE);
break;
case AcRx::kUnloadAppMsg:
OnUnloadApp();
// InitModule(_hdllInstance, DLL_PROCESS_DETACH, NULL);
break;
}
return AcRx::kRetOK;
}