嗨,社区,
我想将“概念”视觉风格设置为一个视点,但它没有效果。
在Autocad上,我发现视口上的标签更改为“概念”,但实体没有更改,仍然是默认样式“2D线框”。
这是我的代码:
- void AdjustViewport(const CString& strLayout, int nIndex, const std::vector& vecEnt, const AcGePoint3d& modelCenter)
- {
- AcDbViewport* pViewport = GetViewport(strLayout, nIndex);
- if (pViewport == nullptr)
- {
- ASSERT(pViewport != nullptr);
- return;
- }
- int nRetActiveLayout = acedCommand(RTSTR, _T("layout"), RTSTR, _T(""), RTSTR, _T("testCopy"), 0);
- ASSERT(nRetActiveLayout == RTNORM);
- acedMspace();
- Acad::ErrorStatus es = acedSetCurrentVPort(pViewport);
- ASSERT(es == Acad::eOk);
- int nSetSWISO = acedCommand(RTSTR, _T("-view"), RTSTR, _T("_swiso"), 0);
- ASSERT(nSetSWISO == RTNORM);
- ads_name ssname;
- acedSSAdd( NULL, NULL, ssname );
- GroupSelect(vecEnt, ssname);
- acedSSSetFirst( ssname, NULL );
- int nZOOM = acedCommand(
- RTSTR, _T("_ZOOM"),
- RTSTR, _T("_OBJECT"),
- RTPICKS, ssname,
- RTSTR, _T(""),
- RTNONE);
- ASSERT(nZOOM == RTNORM);
- acedSSFree(ssname);
- acedSSSetFirst( NULL, NULL );
- AcDbObjectId vsId = AcDbObjectId::kNull;
- AcDbDictionaryPointer pNOD(acdbHostApplicationServices()->workingDatabase()->visualStyleDictionaryId(), AcDb::kForRead);
- pNOD->getAt(ACRX_T("Conceptual"), vsId);
- Acad::ErrorStatus esSetVS = pViewport->setVisualStyle(vsId);
- ASSERT(esSetVS == Acad::eOk);
- //SetVisualStyle(vecEnt);
- pViewport->updateDisplay();
- pNOD->close();
- pViewport->close();
- }
请帮忙,thx!
本帖以下内容被隐藏保护;需要你回复后,才能看到! 游客,如果您要查看本帖隐藏内容请 回复 |