嗨,Pkohut,
我放在这个线程顶部的代码有点简化,以显示我正在遵循的步骤。
实际上,我正在检查每个步骤的返回代码,并在出现问题时记录消息。
但是日志记录根本没有显示错误消息,表明一切顺利。
只有最后一个LogString()报告“0”关联对象。(意味着日志记录确实有效)
所以,仍然不明白这应该如何真正工作。
我真的可以使用一个提示(或两个)
Arno
见下文:
- Acad::ErrorStatus CadDrawing::AddHatch(const AcGePoint2dArray& Points, const AcGeDoubleArray& bulges)
- {
- Acad::ErrorStatus es = Acad::eNullHandle;
-
- if (NULL != m_pCurDb)
- {
- AcDbObjectPointer hatch;
- AcDbObjectIdArray dbObjIds;
- if ((es = hatch.create()) != Acad::eOk)
- {
- LogString(L"Failed to create hatch\n");
- return es;
- }
-
- if ((es = hatch->setNormal(AcGeVector3d::kZAxis)) != Acad::eOk)
- {
- LogString(L"Failed to set hatch Normal vector\n");
- return es;
- }
-
- if ((es = hatch->setElevation(0.0)) != Acad::eOk)
- {
- LogString(L"Failed to set hatch Elevation vector\n");
- return es;
- }
-
- if ((es = hatch->setPattern(AcDbHatch::kPreDefined, _T("SOLID"))) != Acad::eOk)
- {
- LogString(L"Failed to set hatch Pattern to SOLID\n");
- return es;
- }
-
- if ((es = hatch->setHatchStyle(AcDbHatch::kNormal)) != Acad::eOk)
- {
- LogString(L"Failed to set hatch style\n");
- return es;
- }
-
- if ((es = hatch->setAssociative(true)) != Acad::eOk)
- {
- LogString(L"Failed to set hatch assiciative\n");
- return es;
- }
-
- if ((es = hatch->appendLoop(AcDbHatch::kExternal, Points, bulges)) != Acad::eOk)
- {
- LogString(L"Failed to appendloop to hatch. Error (%i)\n", es);
- return es;
- }
-
- //setting current layer, color etc....
- if ((es = setEntityCurProperties(hatch.object())) != Acad::eOk)
- {
- LogString(L"Failed to set hatch properties\n");
- return es;
- }
- if ((es = hatch->evaluateHatch()) != Acad::eOk)
- {
- LogString(L"Failed to evaluate hatch\n");
- return es;
- }
- if ((es = m_CurSpace->appendAcDbEntity(hatch)) != Acad::eOk)
- {
- LogString(L"Failed to append hatch to block (%s)\n", LPCTSTR(m_CurSpaceName));
- return es;
- }
-
- if ((es = hatch->getAssocObjIds(dbObjIds)) != Acad::eOk)
- {
- LogString(L"Failed to get hatch AssocObjIds\n");
- return es;
- }
- LogString(L"The Hatch has %i AssocObjIds\n", dbObjIds.length());
- return es;
- }
-
- return es;
- }
|