private bool InternReadBlockEntities(ref int rlngIdx, ref AcadBlock robjAcadBlock, ref string nrstrErrMsg) { nrstrErrMsg = null; bool dblnError = default(bool); bool dblnStop = default(bool); AcadPolyfaceMesh dobjAcadPolyfaceMesh = default(AcadPolyfaceMesh); AcadPolygonMesh dobjAcadPolygonMesh = default(AcadPolygonMesh); Acad3DPolyline dobjAcad3DPolyline = default(Acad3DPolyline); AcadPolyline dobjAcadPolyline = default(AcadPolyline); while (rlngIdx <= mlngSecEnd && !dblnError && !dblnStop) { int dlngCode2 = Conversions.ToInteger(mobjDictReadCodes[rlngIdx]); object dvarValue2 = RuntimeHelpers.GetObjectValue(mobjDictReadValues[rlngIdx]); if (dlngCode2 == 0 && Operators.ConditionalCompareObjectEqual(dvarValue2, "ENDBLK", TextCompare: false)) { dblnStop = true; } InternIncreaseIndex(ref rlngIdx, 1); if (dblnStop) { continue; } object left = dvarValue2; if (Operators.ConditionalCompareObjectEqual(left, "ARC", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadArc(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "CIRCLE", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadCircle(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "LINE", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadLine(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "POINT", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadPoint(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "XLINE", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadXline(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "RAY", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadRay(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "LWPOLYLINE", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadLWPolyline(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "POLYLINE", TextCompare: false)) { int dlngAcadPolylineIdx = rlngIdx; dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadPolyline(ref dobjAcadPolyline, ref dobjAcad3DPolyline, ref dobjAcadPolygonMesh, ref dobjAcadPolyfaceMesh, mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); if (dblnError) { continue; } bool dblnAcadPolyline = true; while (rlngIdx <= mlngSecEnd && !dblnError && dblnAcadPolyline) { dlngCode2 = Conversions.ToInteger(mobjDictReadCodes[rlngIdx]); dvarValue2 = RuntimeHelpers.GetObjectValue(mobjDictReadValues[rlngIdx]); if (dlngCode2 != 0) { nrstrErrMsg = "Fehlender Objektnamencode in Zeile " + Conversions.ToString(checked (rlngIdx * 2 + 1)) + "."; dblnError = true; continue; } InternIncreaseIndex(ref rlngIdx, 1); object left2 = dvarValue2; if (Operators.ConditionalCompareObjectEqual(left2, "VERTEX", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadVertex(mobjAcadDatabase, ref rlngIdx, ref dobjAcadPolyline, ref dobjAcad3DPolyline, ref dobjAcadPolygonMesh, ref dobjAcadPolyfaceMesh, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left2, "SEQEND", TextCompare: false)) { AcadDatabase vobjAcadDatabase = mobjAcadDatabase; AcadBlockReference robjAcadBlockReference = null; AcadMInsertBlock robjAcadMInsertBlock = null; dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadSequenceEnd(vobjAcadDatabase, ref rlngIdx, ref robjAcadBlockReference, ref robjAcadMInsertBlock, ref dobjAcadPolyline, ref dobjAcad3DPolyline, ref dobjAcadPolygonMesh, ref dobjAcadPolyfaceMesh, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); dblnAcadPolyline = false; dobjAcadPolyline?.FriendCalcSize(); dobjAcad3DPolyline?.FriendCalcSize(); dobjAcadPolyline = null; dobjAcad3DPolyline = null; dobjAcadPolygonMesh = null; dobjAcadPolyfaceMesh = null; } else { nrstrErrMsg = "Polylinie ohne Sequenzende ab Zeile " + Conversions.ToString(dlngAcadPolylineIdx) + "."; dblnError = true; } } } else if (Operators.ConditionalCompareObjectEqual(left, "MTEXT", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadMText(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "TEXT", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadText(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "ATTDEF", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadAttributeDefinition(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "INSERT", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadBlockReference(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "SHAPE", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadShape(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "ELLIPSE", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadEllipse(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "HATCH", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadHatch(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "SPLINE", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadSpline(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "TRACE", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadTrace(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else if (Operators.ConditionalCompareObjectEqual(left, "SOLID", TextCompare: false)) { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadSolid(mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } else { dblnError = !hwpDxf_ReadEnt.BkDXFReadEnt_AcadUnknownEnt(mlngSecEnd, Conversions.ToString(dvarValue2), mobjAcadDatabase, ref rlngIdx, ref robjAcadBlock, mobjDictReadCodes, mobjDictReadValues, ref nrstrErrMsg); InternCheckIndex(rlngIdx); } } bool InternReadBlockEntities = !dblnError; dobjAcadPolyfaceMesh = null; dobjAcadPolygonMesh = null; dobjAcad3DPolyline = null; dobjAcadPolyline = null; return(InternReadBlockEntities); }