private bool InternReadDashes(ref int rlngIdx, ref AcadLineType robjAcadLineType, ref string nrstrErrMsg) { nrstrErrMsg = null; AcadLineTypeDashes dobjAcadLineTypeDashes = robjAcadLineType.Dashes; bool dblnError = default(bool); bool dblnStop = default(bool); while (rlngIdx <= mlngTblEnd && !dblnError && !dblnStop) { int dlngCode = Conversions.ToInteger(mobjDictReadCodes[rlngIdx]); object dvarValue = RuntimeHelpers.GetObjectValue(mobjDictReadValues[rlngIdx]); if (dlngCode != 0 && dlngCode != 0 && dlngCode != 49) { nrstrErrMsg = "Ungültiger Gruppencode für Tabelleneintrag/ende oder Linientypelement in Zeile " + Conversions.ToString(checked (rlngIdx * 2 + 1)) + "."; dblnError = true; } else if (Conversions.ToBoolean(dvarValue is string && Conversions.ToBoolean(Operators.OrObject(Operators.CompareObjectEqual(dvarValue, "ENDTAB", TextCompare: false), Operators.CompareObjectEqual(dvarValue, "LTYPE", TextCompare: false))))) { dblnStop = true; } else if (!InternReadDash(ref rlngIdx, ref dobjAcadLineTypeDashes, ref nrstrErrMsg)) { dblnError = true; } } bool InternReadDashes = !dblnError; dobjAcadLineTypeDashes = null; return(InternReadDashes); }
private void InternListLinetypeDashes(ref int rlngIdx, AcadLineType vobjAcadLineType) { AcadLineTypeDashes dobjAcadLineTypeDashes2 = vobjAcadLineType.Dashes; IEnumerator enumerator = default(IEnumerator); AcadLineTypeDash dobjAcadLineTypeDash2; try { enumerator = dobjAcadLineTypeDashes2.GetValues().GetEnumerator(); while (enumerator.MoveNext()) { dobjAcadLineTypeDash2 = (AcadLineTypeDash)enumerator.Current; AcadLineTypeDash acadLineTypeDash = dobjAcadLineTypeDash2; InternAddToDictLine(ref rlngIdx, 49, RuntimeHelpers.GetObjectValue(acadLineTypeDash.Length)); int dlngCode74 = acadLineTypeDash.Flags74; InternAddToDictLine(ref rlngIdx, 74, dlngCode74); if (dlngCode74 > 0) { InternAddToDictLine(ref rlngIdx, 75, acadLineTypeDash.ShapeNumber); InternAddToDictLine(ref rlngIdx, 340, acadLineTypeDash.ShapeStyle); InternAddToDictLine(ref rlngIdx, 46, RuntimeHelpers.GetObjectValue(acadLineTypeDash.ShapeScale)); InternAddToDictLine(ref rlngIdx, 50, RuntimeHelpers.GetObjectValue(acadLineTypeDash.ShapeRotationDegree)); InternAddToDictLine(ref rlngIdx, 44, RuntimeHelpers.GetObjectValue(acadLineTypeDash.ShapeOffsetX)); InternAddToDictLine(ref rlngIdx, 45, RuntimeHelpers.GetObjectValue(acadLineTypeDash.ShapeOffsetY)); } if ((2 & dlngCode74) == 2) { InternAddToDictLine(ref rlngIdx, 9, acadLineTypeDash.Text); } acadLineTypeDash = null; } } finally { if (enumerator is IDisposable) { (enumerator as IDisposable).Dispose(); } } dobjAcadLineTypeDash2 = null; dobjAcadLineTypeDashes2 = null; }
private void InternListTable(ref int rlngIdx) { IEnumerator enumerator = default(IEnumerator); AcadLineType dobjAcadLinetype2; try { enumerator = mobjAcadLineTypes.GetValues().GetEnumerator(); object dvarXDataType = default(object); object dvarXDataValue = default(object); while (enumerator.MoveNext()) { dobjAcadLinetype2 = (AcadLineType)enumerator.Current; AcadLineType acadLineType = dobjAcadLinetype2; InternAddToDictLine(ref rlngIdx, 0, acadLineType.DXFName); InternAddToDictLine(ref rlngIdx, 5, acadLineType.Handle); hwpDxf_List.BkDXFList_Reactors((Dictionary <object, object>)acadLineType.DictReactors, ref rlngIdx, ref mobjDictReadCodes, ref mobjDictReadValues); hwpDxf_List.BkDXFList_XDictionary((Dictionary <object, object>)acadLineType.DictXDictionaries, ref rlngIdx, ref mobjDictReadCodes, ref mobjDictReadValues); InternAddToDictLine(ref rlngIdx, 330, acadLineType.OwnerID); InternAddToDictLine(ref rlngIdx, 100, acadLineType.SuperiorObjectName); InternAddToDictLine(ref rlngIdx, 100, acadLineType.ObjectName); InternAddToDictLine(ref rlngIdx, 2, acadLineType.Name); InternAddToDictLine(ref rlngIdx, 70, acadLineType.Flags70); InternAddToDictLine(ref rlngIdx, 3, acadLineType.Description); InternAddToDictLine(ref rlngIdx, 72, RuntimeHelpers.GetObjectValue(Interaction.IIf(acadLineType.ScaledToFit, 83, 65))); InternAddToDictLine(ref rlngIdx, 73, acadLineType.NumDashes); InternAddToDictLine(ref rlngIdx, 40, RuntimeHelpers.GetObjectValue(acadLineType.PatternLength)); acadLineType = null; InternListLinetypeDashes(ref rlngIdx, dobjAcadLinetype2); dobjAcadLinetype2.GetXData(null, ref dvarXDataType, ref dvarXDataValue); hwpDxf_List.BkDXFList_XData(RuntimeHelpers.GetObjectValue(dvarXDataType), RuntimeHelpers.GetObjectValue(dvarXDataValue), ref rlngIdx, ref mobjDictReadCodes, ref mobjDictReadValues); } } finally { if (enumerator is IDisposable) { (enumerator as IDisposable).Dispose(); } } dobjAcadLinetype2 = null; }
private bool InternReadLType(double vdblDefOwnerID, ref int rlngIdx, ref AcadLineTypes robjAcadLineTypes, ref string nrstrErrMsg) { nrstrErrMsg = null; Dictionary <object, object> dobjDictReactors2 = new Dictionary <object, object>(); Dictionary <object, object> dobjDictXDictionary2 = new Dictionary <object, object>(); int dlngStartIdx = rlngIdx; checked { double ddblObjectID = default(double); double ddblOwnerID = default(double); bool InternReadLType = default(bool); AcadLineType dobjAcadLinetype2; if (hwpDxf_ReadRef.BkDXFReadRef_AcadSymbolTableRecord(mobjAcadDatabase, vdblDefOwnerID, "LTYPE", mobjDictReadCodes, mobjDictReadValues, ref rlngIdx, ref ddblObjectID, ref ddblOwnerID, ref dobjDictReactors2, ref dobjDictXDictionary2, ref nrstrErrMsg)) { bool dblnError = default(bool); if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx], 100, TextCompare: false)) { nrstrErrMsg = "Ungültiger Gruppencode für Objektname in Zeile " + Conversions.ToString(rlngIdx * 2 + 1) + "."; dblnError = true; } else if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadValues[rlngIdx], "AcDbLinetypeTableRecord", TextCompare: false)) { nrstrErrMsg = "Ungültiger Objektname in Zeile " + Conversions.ToString(rlngIdx * 2 + 2) + "."; dblnError = true; } else if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx + 1], 2, TextCompare: false)) { nrstrErrMsg = "Ungültiger Gruppencode für Linientypname in Zeile " + Conversions.ToString(rlngIdx * 2 + 3) + "."; dblnError = true; } else if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx + 2], 70, TextCompare: false)) { nrstrErrMsg = "Ungültiger Gruppencode für Standard-Flag-Werte in Zeile " + Conversions.ToString(rlngIdx * 2 + 5) + "."; dblnError = true; } else if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx + 3], 3, TextCompare: false)) { nrstrErrMsg = "Ungültiger Gruppencode für Beschreibung in Zeile " + Conversions.ToString(rlngIdx * 2 + 7) + "."; dblnError = true; } else if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx + 4], 72, TextCompare: false)) { nrstrErrMsg = "Ungültiger Gruppencode für Ausrichtungscode in Zeile " + Conversions.ToString(rlngIdx * 2 + 9) + "."; dblnError = true; } else if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx + 5], 73, TextCompare: false)) { nrstrErrMsg = "Ungültiger Gruppencode für Elementeanzahl in Zeile " + Conversions.ToString(rlngIdx * 2 + 11) + "."; dblnError = true; } else if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx + 6], 40, TextCompare: false)) { nrstrErrMsg = "Ungültiger Gruppencode für Musterlänge in Zeile " + Conversions.ToString(rlngIdx * 2 + 13) + "."; dblnError = true; } else { string dstrName = Conversions.ToString(mobjDictReadValues[rlngIdx + 1]); int dlngCode70 = Conversions.ToInteger(mobjDictReadValues[rlngIdx + 2]); string dstrDescription = Conversions.ToString(mobjDictReadValues[rlngIdx + 3]); int dlngScaleToFit = Conversions.ToInteger(mobjDictReadValues[rlngIdx + 4]); int dlngNumDashes = Conversions.ToInteger(mobjDictReadValues[rlngIdx + 5]); bool flag = false; double ddblPatternLength = Conversions.ToDouble(mobjDictReadValues[rlngIdx + 6]); rlngIdx += 7; if (robjAcadLineTypes.FriendNameExist(dstrName)) { nrstrErrMsg = "Linientyp " + dstrName + " ab Zeile " + Conversions.ToString(dlngStartIdx * 2 + 1) + " existiert bereits."; dblnError = true; } else { dobjAcadLinetype2 = robjAcadLineTypes.FriendAddAcadObject(dstrName, ddblObjectID, ref nrstrErrMsg); if (dobjAcadLinetype2 == null) { nrstrErrMsg = "Das Objekt konnte nicht hinzugefügt werden."; dblnError = true; } else { AcadLineType acadLineType = dobjAcadLinetype2; acadLineType.FriendLetFlags70 = dlngCode70; acadLineType.Description = dstrDescription; acadLineType.FriendLetScaledToFit = (dlngScaleToFit == 83); bool flag2 = false; acadLineType.FriendLetPatternLength = ddblPatternLength; acadLineType.FriendSetDictReactors = dobjDictReactors2; acadLineType.FriendSetDictXDictionary = dobjDictXDictionary2; acadLineType = null; if (dlngNumDashes > 0) { if (!InternReadDashes(ref rlngIdx, ref dobjAcadLinetype2, ref nrstrErrMsg)) { dblnError = true; } else if (dlngNumDashes != dobjAcadLinetype2.Dashes.Count) { nrstrErrMsg = "Ungültige Anzahl der Linientypeinträgen vor Zeile " + Conversions.ToString(rlngIdx * 2 + 1) + "."; dblnError = true; } } if (!dblnError) { object dvarXDataType = default(object); object dvarXDataValue = default(object); dblnError = !hwpDxf_ReadBas.BkDXFReadBas_XData(ref rlngIdx, mobjDictReadCodes, mobjDictReadValues, ref dvarXDataType, ref dvarXDataValue, ref nrstrErrMsg); if (!dblnError) { dobjAcadLinetype2.SetXData(RuntimeHelpers.GetObjectValue(dvarXDataType), RuntimeHelpers.GetObjectValue(dvarXDataValue)); } } } } } InternReadLType = !dblnError; } dobjDictReactors2 = null; dobjDictXDictionary2 = null; dobjAcadLinetype2 = null; return(InternReadLType); } }