134 lines
2.7 KiB
C++
134 lines
2.7 KiB
C++
#include "stdafx.h"
|
|
#include "FxtSettingDlg.h"
|
|
#include "EarThwormDef.h"
|
|
#include "uiiado.h"
|
|
#include "CoreTools.h"
|
|
#include "KTCadUtility.h"
|
|
#include "AecDbCurveBase.h"
|
|
#include "AecDbEntityBase.h"
|
|
|
|
CSettingFXT::CSettingFXT(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CSettingFXT::IDD, pParent)
|
|
, m_sFXT(_T("无设置"))
|
|
{
|
|
}
|
|
|
|
void CSettingFXT::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Control(pDX, IDC_COMBO, m_cmbFXT);
|
|
DDX_Text(pDX, IDC_COMBO, m_sFXT);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CSettingFXT, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CSettingFXT::OnBnClickedOk)
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CSettingFXT::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
std::vector<CString> ar;
|
|
CoreTools::getAllSubSystems(ar);
|
|
|
|
m_cmbFXT.ResetContent();
|
|
m_cmbFXT.AddString(m_sFXT);
|
|
for (size_t i(0); i < ar.size(); ++i)
|
|
m_cmbFXT.AddString(ar[i]);
|
|
|
|
m_cmbFXT.SetCurSel(0);
|
|
|
|
UpdateData(FALSE);
|
|
return TRUE;
|
|
}
|
|
|
|
void CSettingFXT::OnBnClickedOk()
|
|
{
|
|
if (!UpdateData(TRUE)) return;
|
|
OnOK();
|
|
}
|
|
|
|
void CSettingFXT::settingFXT()
|
|
{
|
|
CAcModuleResourceOverride myResources;
|
|
|
|
resbuf *pRb = acutBuildList(RTDXF0, _T("AEC_DBWEQUIPMENT,AEC_DBXEQUIPMENT"), 0);
|
|
ads_name ss, ent;
|
|
int nRes = CKTCadUtility::SelectEntities(_T("\n选择设备:"), ss, pRb);
|
|
acutRelRb(pRb);
|
|
if (nRes != RTNORM) return;
|
|
|
|
|
|
AcDbObjectId id;
|
|
Adesk::Int32 lLen(0L);
|
|
acedSSLength(ss, &lLen);
|
|
|
|
if (lLen <= 0) return;
|
|
|
|
CString sCurrent(_T("*多种*")), sOld(_T("")), sNew(_T(""));
|
|
|
|
for (long i = 0; i < lLen; ++i)
|
|
{
|
|
if (acedSSName(ss, i, ent) != RTNORM) continue;
|
|
if (acdbGetObjectId(id, ent) != Acad::eOk) continue;
|
|
AcDbObjectPointer<AcDbEntity> ent(id, AcDb::kForWrite);
|
|
if (ent.openStatus() != Acad::eOk) continue;
|
|
|
|
sNew.Empty();
|
|
AecDbCurveBase *pCrvBase = AecDbCurveBase::cast(ent.object());
|
|
if (pCrvBase)
|
|
{
|
|
pCrvBase->GetAt(PIPE_SYS, sNew);
|
|
}
|
|
AecDbEntityBase *pEntBase = AecDbEntityBase::cast(ent.object());
|
|
if (pEntBase)
|
|
{
|
|
pEntBase->GetAt(PIPE_SYS, sNew);
|
|
}
|
|
if (sNew.IsEmpty()) sNew = _T("无设置");
|
|
// 第一个
|
|
if (i == 0)
|
|
{
|
|
sOld = sNew;
|
|
}
|
|
|
|
if (sOld != sNew)
|
|
{
|
|
sCurrent = _T("*多种*");
|
|
break;
|
|
}
|
|
else
|
|
sCurrent = sNew;
|
|
}
|
|
|
|
CSettingFXT dlg;
|
|
dlg.m_sFXT = sCurrent;
|
|
if (dlg.DoModal() != IDOK) return;
|
|
|
|
|
|
for (long i = 0; i < lLen; ++i)
|
|
{
|
|
if (acedSSName(ss, i, ent) != RTNORM) continue;
|
|
if (acdbGetObjectId(id, ent) != Acad::eOk) continue;
|
|
AcDbObjectPointer<AcDbEntity> ent(id, AcDb::kForWrite);
|
|
if (ent.openStatus() != Acad::eOk) continue;
|
|
|
|
AecDbCurveBase *pCrvBase = AecDbCurveBase::cast(ent.object());
|
|
if (pCrvBase)
|
|
{
|
|
pCrvBase->SetAt(PIPE_SYS, dlg.m_sFXT);
|
|
continue;
|
|
}
|
|
AecDbEntityBase *pEntBase = AecDbEntityBase::cast(ent.object());
|
|
if (pEntBase)
|
|
{
|
|
pEntBase->SetAt(PIPE_SYS, dlg.m_sFXT);
|
|
continue;
|
|
}
|
|
}
|
|
|
|
acedSSFree(ss);
|
|
|
|
}
|
|
|