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

91 lines
2.0 KiB
C++

#include "StdAfx.h"
#include "DrawLandScapeDlg.h"
#include "LandScapeStyle.h"
#include "GlwGlobalVariable.h"
#include "UndergroundRampDlg.h"
void LandScapeDraw()
{
CDrawLandScapeDlg dlg(acedGetAcadFrame());
{
CAcModuleResourceOverride vTemp;
dlg.Create(dlg.IDD, acedGetAcadFrame());
}
dlg.ShowWindow(SW_SHOW);
acedGetAcadDwgView()->SetFocus();
BOOL bRet = TRUE;
if(!GET_GLOBAL_VARIABLE(CLandScapeStyle))
SET_GLOBAL_VARIABLE(CLandScapeStyle, new CLandScapeStyle);
CLandScapeStyle* pLandScape = GET_GLOBAL_VARIABLE(CLandScapeStyle);
while (1)
{
dlg.UpdateData();
pLandScape->SetDlgData(_AS_MM(dlg.GetRoadWidth()), dlg.GetRoadWidthMM(), dlg.GetWidthPercent(), dlg.GetGap(), dlg.GetLandScapeId(),
dlg.GetRoadLineState(), dlg.GetAutoAdjustState(), dlg.GetBlockWidth(), dlg.GetBlockLen(),
dlg.GetUnitRealWidth(), dlg.GetIsUnitPercent());
int eType = dlg.GetDrawType();
dlg.m_bExit = TRUE;
switch (eType)
{
case 1:
{
bRet = pLandScape->dynamicDraw();//动态绘制
}
break;
case 2:
{
bRet = pLandScape->selectPath();//选择路径
break;
}
default:
break;
}
if (!bRet && dlg.m_bExit) //命令结束
{
break;
}
}
if (IsWindow(dlg.m_hWnd))
{
dlg.DestroyWindow();
}
}
// 插入块函数
AcDbObjectId InsertBlock(CString &csBlkName)
{
AcApDocument *pDoc = acDocManager->curDocument();
AcDbObjectId blockId;
// 找到sys路径下的dwg文件
CString szFileName = _T("总图.TKW"),
sLibFile = g_sDwbPath;
sLibFile = sLibFile.Left(sLibFile.GetLength() - 5) + _T("\\DWB\\") + szFileName;
XString xsBlkName;
szFileName = (const TCHAR *)(XPathParser(csBlkName).m_sFileName);
sLibFile = g_sDwbPath;
CString csPath = sLibFile.Left(sLibFile.GetLength() - 5) + _T("\\DWB\\");
csPath += szFileName;
// 锁定文档
acDocManager->lockDocument(pDoc);
int nRet = LoadDwbBlock(csPath, xsBlkName);
if (nRet == RTNORM)
{
blockId = InitBlock(xsBlkName);
}
acDocManager->unlockDocument(pDoc);
return blockId;
}
void UnGroundRamp()
{
CUndergroundRampDlg dlg;
dlg.DoModal();
}