Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
        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);
            }
        }