Exemplo n.º 1
0
        internal AcadPaperSpace FriendAddAcadObjectBlockPaperSpace0(ref string nrstrErrMsg, double nvdblObjectID = -1.0)
        {
            AcadLayout dobjAcadLayout2;
            AcadBlock  dobjAcadBlock3;

            if (mobjAcadPaperSpace0 == null)
            {
                string dstrBlockName = "*Paper_Space0";
                dobjAcadBlock3 = (AcadBlock)FriendGetItem(dstrBlockName);
                if (dobjAcadBlock3 == null)
                {
                    dobjAcadBlock3 = FriendAddAcadObject(ref nrstrErrMsg, dstrBlockName, Conversions.ToDouble(Interaction.IIf(nvdblObjectID == -1.0, base.Database.FriendGetNextObjectID, nvdblObjectID)));
                    if (dobjAcadBlock3 == null)
                    {
                        goto IL_00c7;
                    }
                    dobjAcadLayout2 = base.Database.Layouts.Layout2;
                    AcadLayout acadLayout = dobjAcadLayout2;
                    acadLayout.TabOrder = 2;
                    acadLayout.FriendLetPaperSpaceObjectID = dobjAcadBlock3.ObjectID;
                    acadLayout = null;
                    AcadBlock acadBlock = dobjAcadBlock3;
                    acadBlock.FriendLetLayoutObjectID = dobjAcadLayout2.ObjectID;
                    acadBlock = null;
                }
            }
            goto IL_00c7;
IL_00c7:
            dobjAcadLayout2 = null;
            dobjAcadBlock3  = null;
            return(mobjAcadPaperSpace0);
        }
Exemplo n.º 2
0
        private void InternListBlockData(AcadBlock vobjAcadBlock, ref int rlngIdx)
        {
            AcadBlock acadBlock = vobjAcadBlock;

            InternAddToDictLine(ref rlngIdx, 2, acadBlock.Name);
            InternAddToDictLine(ref rlngIdx, 70, acadBlock.Flags70);
            object dvarPoint = RuntimeHelpers.GetObjectValue(acadBlock.Origin);

            InternAddToDictLine(ref rlngIdx, 10, RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(dvarPoint, new object[1]
            {
                0
            }, null)));
            InternAddToDictLine(ref rlngIdx, 20, RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(dvarPoint, new object[1]
            {
                1
            }, null)));
            InternAddToDictLine(ref rlngIdx, 30, RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(dvarPoint, new object[1]
            {
                2
            }, null)));
            InternAddToDictLine(ref rlngIdx, 3, acadBlock.Name);
            InternAddToDictLine(ref rlngIdx, 1, acadBlock.PathName);
            if (Operators.CompareString(acadBlock.Comment, null, TextCompare: false) != 0)
            {
                InternAddToDictLine(ref rlngIdx, 4, acadBlock.Comment);
            }
            acadBlock = null;
        }
Exemplo n.º 3
0
        private bool InternAddAcadObjectBlockEnd(ref AcadBlock robjAcadBlock, double vdblObjectID, double vdblOwnerID, int vlngPaperSpace, string vstrLayer, string vstrLinetype, int vlngColor, object vvarLinetypeScale, int vlngVisible, int vlngRGB, Enums.AcLineWeight vnumLineweight, string vstrPlotStyleNameReference, Dictionary <object, object> vobjDictReactors, ref string nrstrErrMsg)
        {
            AcadBlockEnd dobjAcadBlockEnd2           = robjAcadBlock.FriendAddAcadObjectBlockEnd(ref nrstrErrMsg, vdblObjectID, nvblnWithoutObjectID: false);
            bool         InternAddAcadObjectBlockEnd = default(bool);

            if (dobjAcadBlockEnd2 == null)
            {
                nrstrErrMsg = "Das Objekt konnte nicht hinzugefügt werden.";
            }
            else
            {
                AcadBlockEnd acadBlockEnd = dobjAcadBlockEnd2;
                acadBlockEnd.FriendLetIsPaperSpace = (vlngPaperSpace == 1);
                acadBlockEnd.Layer         = vstrLayer;
                acadBlockEnd.Linetype      = vstrLinetype;
                acadBlockEnd.Color         = (Enums.AcColor)vlngColor;
                acadBlockEnd.LinetypeScale = RuntimeHelpers.GetObjectValue(vvarLinetypeScale);
                acadBlockEnd.Visible       = (vlngVisible == 0);
                acadBlockEnd.FriendLetRGB  = vlngRGB;
                acadBlockEnd.Lineweight    = vnumLineweight;
                acadBlockEnd.FriendLetPlotStyleNameReference = vstrPlotStyleNameReference;
                acadBlockEnd.FriendSetDictReactors           = vobjDictReactors;
                acadBlockEnd = null;
                InternAddAcadObjectBlockEnd = true;
            }
            dobjAcadBlockEnd2 = null;
            return(InternAddAcadObjectBlockEnd);
        }
Exemplo n.º 4
0
        private void InternListSection(ref int rlngIdx)
        {
            AcadBlock dobjAcadBlock4 = (AcadBlock)mobjAcadBlocks.Item("*Model_Space");

            InternListBlockBegin(dobjAcadBlock4.BlockBegin, ref rlngIdx);
            InternListBlockData(dobjAcadBlock4, ref rlngIdx);
            InternListBlockEnd(dobjAcadBlock4.BlockEnd, ref rlngIdx);
            IEnumerator enumerator = default(IEnumerator);

            try
            {
                enumerator = mobjAcadBlocks.GetValues().GetEnumerator();
                while (enumerator.MoveNext())
                {
                    dobjAcadBlock4 = (AcadBlock)enumerator.Current;
                    if (LikeOperator.LikeString(dobjAcadBlock4.Name, "[*]Paper_Space*", CompareMethod.Binary))
                    {
                        InternListBlockBegin(dobjAcadBlock4.BlockBegin, ref rlngIdx);
                        InternListBlockData(dobjAcadBlock4, ref rlngIdx);
                        hwpDxf_List.BkDXFList_AcadBlockEntities(mstrAcadVer, dobjAcadBlock4, ref rlngIdx, ref mobjDictReadCodes, ref mobjDictReadValues);
                        InternListBlockEnd(dobjAcadBlock4.BlockEnd, ref rlngIdx);
                    }
                }
            }
            finally
            {
                if (enumerator is IDisposable)
                {
                    (enumerator as IDisposable).Dispose();
                }
            }
            IEnumerator enumerator2 = default(IEnumerator);

            try
            {
                enumerator2 = mobjAcadBlocks.GetValues().GetEnumerator();
                while (enumerator2.MoveNext())
                {
                    dobjAcadBlock4 = (AcadBlock)enumerator2.Current;
                    if (!LikeOperator.LikeString(dobjAcadBlock4.Name, "[*]Model_Space", CompareMethod.Binary) & !LikeOperator.LikeString(dobjAcadBlock4.Name, "[*]Paper_Space*", CompareMethod.Binary))
                    {
                        InternListBlockBegin(dobjAcadBlock4.BlockBegin, ref rlngIdx);
                        InternListBlockData(dobjAcadBlock4, ref rlngIdx);
                        hwpDxf_List.BkDXFList_AcadBlockEntities(mstrAcadVer, dobjAcadBlock4, ref rlngIdx, ref mobjDictReadCodes, ref mobjDictReadValues);
                        InternListBlockEnd(dobjAcadBlock4.BlockEnd, ref rlngIdx);
                    }
                }
            }
            finally
            {
                if (enumerator2 is IDisposable)
                {
                    (enumerator2 as IDisposable).Dispose();
                }
            }
            dobjAcadBlock4 = null;
        }
Exemplo n.º 5
0
 internal void FriendQuit()
 {
     if (mblnOpened)
     {
         mobjAcadBlock.FriendQuit();
         mobjAcadBlock = null;
         mblnOpened    = false;
     }
 }
Exemplo n.º 6
0
        public static AcadLWPolyline DrawDonut(AcadBlock space,
                                               double inRad,
                                               double outRad,
                                               double cenPt1,
                                               double cenPt2)
        {
            double width, radius, PI;

            double[]       tmp = new double[2];
            double[]       v   = new double[4];
            AcadLWPolyline pl;

            double[] basePnt = new double[3];

            try
            {
                //Switch to terminals layer
                gbl_doc.ActiveLayer = TerminalsLayer;

                basePnt[0] = cenPt1;
                basePnt[1] = cenPt2;
                basePnt[2] = 0.0;
                PI         = Math.Atan(1) * 4;
                width      = (outRad - inRad) / 2;
                radius     = (inRad + width) / 2;
                tmp        = (double[])gbl_doc.Utility.PolarPoint(basePnt,
                                                                  PI, radius);

                v[0] = tmp[0];
                v[1] = tmp[1];
                tmp  = (double[])gbl_doc.Utility.PolarPoint(basePnt,
                                                            0, radius);
                v[2] = tmp[0];
                v[3] = tmp[1];
                pl   = space.AddLightWeightPolyline(v);



                pl.Closed = true;
                pl.SetWidth(0, width, width);
                pl.SetBulge(0, -1);
                pl.SetWidth(1, width, width);
                pl.SetBulge(1, -1);

                //Switch to other layer
                gbl_doc.ActiveLayer = SwitchLayer;

                return(pl);
            }

            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(null);
            }
        }
Exemplo n.º 7
0
        private bool InternReadOneBlock(ref int rlngIdx, ref string nrstrErrMsg)
        {
            nrstrErrMsg = null;
            Dictionary <object, object> dobjDictReactors = new Dictionary <object, object>();
            bool   dblnError         = default(bool);
            bool   dblnStop          = default(bool);
            double ddblObjectID      = default(double);
            double ddblOwnerID       = default(double);
            int    dlngPaperSpace    = default(int);
            string dstrLayer         = default(string);
            string dstrLineType      = default(string);
            int    dlngColor         = default(int);
            object dvarLinetypeScale = default(object);
            int    dlngVisible       = default(int);
            int    dlngRGB           = default(int);

            Enums.AcLineWeight dnumLineweight             = default(Enums.AcLineWeight);
            string             dstrPlotStyleNameReference = default(string);
            AcadBlock          dobjAcadBlock = default(AcadBlock);

            while (rlngIdx <= mlngSecEnd && !dblnError && !dblnStop)
            {
                if (!InternReadBlockBeginOrEnd("AcDbBlockBegin", ref rlngIdx, ref ddblObjectID, ref ddblOwnerID, ref dlngPaperSpace, ref dstrLayer, ref dstrLineType, ref dlngColor, ref dvarLinetypeScale, ref dlngVisible, ref dlngRGB, ref dnumLineweight, ref dstrPlotStyleNameReference, ref dobjDictReactors, ref nrstrErrMsg))
                {
                    dblnError = true;
                }
                else if (!InternReadBlockData(ref rlngIdx, ref dobjAcadBlock, ref nrstrErrMsg))
                {
                    dblnError = true;
                }
                else if (!InternAddAcadObjectBlockBegin(ref dobjAcadBlock, ddblObjectID, ddblOwnerID, dlngPaperSpace, dstrLayer, dstrLineType, dlngColor, RuntimeHelpers.GetObjectValue(dvarLinetypeScale), dlngVisible, dlngRGB, dnumLineweight, dstrPlotStyleNameReference, dobjDictReactors, ref nrstrErrMsg))
                {
                    dblnError = true;
                }
                else if (!InternReadBlockEntities(ref rlngIdx, ref dobjAcadBlock, ref nrstrErrMsg))
                {
                    dblnError = true;
                }
                else if (!InternReadBlockBeginOrEnd("AcDbBlockEnd", ref rlngIdx, ref ddblObjectID, ref ddblOwnerID, ref dlngPaperSpace, ref dstrLayer, ref dstrLineType, ref dlngColor, ref dvarLinetypeScale, ref dlngVisible, ref dlngRGB, ref dnumLineweight, ref dstrPlotStyleNameReference, ref dobjDictReactors, ref nrstrErrMsg))
                {
                    dblnError = true;
                }
                else if (!InternAddAcadObjectBlockEnd(ref dobjAcadBlock, ddblObjectID, ddblOwnerID, dlngPaperSpace, dstrLayer, dstrLineType, dlngColor, RuntimeHelpers.GetObjectValue(dvarLinetypeScale), dlngVisible, dlngRGB, dnumLineweight, dstrPlotStyleNameReference, dobjDictReactors, ref nrstrErrMsg))
                {
                    dblnError = true;
                }
                else
                {
                    dblnStop = true;
                }
            }
            bool InternReadOneBlock = !dblnError;

            dobjAcadBlock = null;
            return(InternReadOneBlock);
        }
Exemplo n.º 8
0
        private void InternListTable(ref int rlngIdx)
        {
            AcadBlock dobjAcadBlock4 = (AcadBlock)mobjAcadBlocks.FriendGetItem("*Model_Space");

            if (dobjAcadBlock4 != null)
            {
                InternListBlock(ref rlngIdx, dobjAcadBlock4);
            }
            dobjAcadBlock4 = (AcadBlock)mobjAcadBlocks.FriendGetItem("*Paper_Space");
            int dlngCount = 0;

            while (dobjAcadBlock4 != null)
            {
                InternListBlock(ref rlngIdx, dobjAcadBlock4);
                dobjAcadBlock4 = (AcadBlock)mobjAcadBlocks.FriendGetItem("*Paper_Space" + Conversions.ToString(dlngCount));
                dlngCount      = checked (dlngCount + 1);
            }
            IEnumerator enumerator = default(IEnumerator);

            try
            {
                enumerator = mobjAcadBlocks.GetValues().GetEnumerator();
                while (enumerator.MoveNext())
                {
                    dobjAcadBlock4 = (AcadBlock)enumerator.Current;
                    string dstrName = dobjAcadBlock4.Name;
                    if (!LikeOperator.LikeString(dstrName, "[*]Model_Space", CompareMethod.Binary) & !LikeOperator.LikeString(dstrName, "[*]Paper_Space*", CompareMethod.Binary))
                    {
                        InternListBlock(ref rlngIdx, dobjAcadBlock4);
                    }
                }
            }
            finally
            {
                if (enumerator is IDisposable)
                {
                    (enumerator as IDisposable).Dispose();
                }
            }
            dobjAcadBlock4 = null;
        }
Exemplo n.º 9
0
        private void InternListBlock(ref int rlngIdx, AcadBlock vobjAcadBlock)
        {
            AcadBlock acadBlock = vobjAcadBlock;

            InternAddToDictLine(ref rlngIdx, 0, acadBlock.DXFName);
            InternAddToDictLine(ref rlngIdx, 5, acadBlock.Handle);
            hwpDxf_List.BkDXFList_Reactors((Dictionary <object, object>)acadBlock.DictReactors, ref rlngIdx, ref mobjDictReadCodes, ref mobjDictReadValues);
            hwpDxf_List.BkDXFList_XDictionary((Dictionary <object, object>)acadBlock.DictXDictionaries, ref rlngIdx, ref mobjDictReadCodes, ref mobjDictReadValues);
            InternAddToDictLine(ref rlngIdx, 330, acadBlock.OwnerID);
            InternAddToDictLine(ref rlngIdx, 100, acadBlock.SuperiorObjectName);
            InternAddToDictLine(ref rlngIdx, 100, acadBlock.ObjectName);
            InternAddToDictLine(ref rlngIdx, 2, acadBlock.Name);
            InternAddToDictLine(ref rlngIdx, 340, acadBlock.LayoutObjectID);
            hwpDxf_List.BkDXFList_PreviewIcon((Dictionary <object, object>)acadBlock.FriendGetDictPreviewIcon, ref rlngIdx, ref mobjDictReadCodes, ref mobjDictReadValues);
            hwpDxf_List.BkDXFList_Blkrefs((Dictionary <object, object>)acadBlock.FriendGetDictBlkrefs, ref rlngIdx, ref mobjDictReadCodes, ref mobjDictReadValues);
            object dvarXDataType  = default(object);
            object dvarXDataValue = default(object);

            acadBlock.GetXData(null, ref dvarXDataType, ref dvarXDataValue);
            hwpDxf_List.BkDXFList_XData(RuntimeHelpers.GetObjectValue(dvarXDataType), RuntimeHelpers.GetObjectValue(dvarXDataValue), ref rlngIdx, ref mobjDictReadCodes, ref mobjDictReadValues);
            acadBlock = null;
        }
Exemplo n.º 10
0
        internal AcadBlock FriendAddAcadObject(ref string nrstrErrMsg, string vstrName, double nvdblObjectID = -1.0)
        {
            AcadBlock dobjAcadBlock3 = new AcadBlock();

            if (nvdblObjectID == -1.0)
            {
                nvdblObjectID = base.Database.FriendGetNextObjectID;
            }
            AcadBlock acadBlock = dobjAcadBlock3;

            acadBlock.Name = vstrName;
            acadBlock.FriendLetNodeParentID     = base.NodeID;
            acadBlock.FriendLetApplicationIndex = base.FriendGetApplicationIndex;
            acadBlock.FriendLetDocumentIndex    = base.FriendGetDocumentIndex;
            acadBlock.FriendLetDatabaseIndex    = base.FriendGetDatabaseIndex;
            acadBlock.FriendLetOwnerID          = base.ObjectID;
            AcadBlock  acadBlock2      = acadBlock;
            double     vdblObjectID    = nvdblObjectID;
            AcadObject nrobjAcadObject = dobjAcadBlock3;
            bool       flag            = acadBlock2.FriendSetObjectID(vdblObjectID, ref nrobjAcadObject, ref nrstrErrMsg);

            dobjAcadBlock3 = (AcadBlock)nrobjAcadObject;
            bool       dblnValid = default(bool);
            AcadObject dobjAcadObject5;

            if (flag)
            {
                dblnValid = true;
                if (!hwpDxf_Vars.pblnReadDocument)
                {
                    if (dblnValid)
                    {
                        dobjAcadObject5 = acadBlock.FriendAddAcadObjectBlockBegin(ref nrstrErrMsg, -1.0, nvblnWithoutObjectID: false);
                        if (dobjAcadObject5 == null)
                        {
                            dblnValid = false;
                        }
                        dobjAcadObject5 = null;
                    }
                    if (dblnValid)
                    {
                        dobjAcadObject5 = acadBlock.FriendAddAcadObjectBlockEnd(ref nrstrErrMsg, -1.0, nvblnWithoutObjectID: false);
                        if (dobjAcadObject5 == null)
                        {
                            dblnValid = false;
                        }
                        dobjAcadObject5 = null;
                    }
                    if (dblnValid)
                    {
                        acadBlock.FriendNewEntityDictionaries();
                    }
                }
            }
            else
            {
                hwpDxf_Functions.BkDXF_DebugPrint(acadBlock.ObjectName + ": " + nrstrErrMsg);
            }
            acadBlock = null;
            AcadBlock FriendAddAcadObject = default(AcadBlock);

            if (dblnValid)
            {
                AcadTableRecord robjAcadTableRecord = dobjAcadBlock3;
                Add(ref robjAcadTableRecord, vstrName);
                dobjAcadBlock3 = (AcadBlock)robjAcadTableRecord;
                string left = Strings.UCase(vstrName);
                if (Operators.CompareString(left, Strings.UCase("*Model_Space"), TextCompare: false) == 0)
                {
                    if (mobjAcadModelSpace == null)
                    {
                        mobjAcadModelSpace = new AcadModelSpace();
                        mobjAcadModelSpace.FriendInit(ref dobjAcadBlock3);
                    }
                }
                else if (Operators.CompareString(left, Strings.UCase("*Paper_Space"), TextCompare: false) == 0)
                {
                    if (mobjAcadPaperSpace == null)
                    {
                        if (!hwpDxf_Vars.pblnReadDocument)
                        {
                            dobjAcadBlock3.BlockBegin.FriendLetIsPaperSpace = true;
                            dobjAcadBlock3.BlockEnd.FriendLetIsPaperSpace   = true;
                        }
                        mobjAcadPaperSpace = new AcadPaperSpace();
                        mobjAcadPaperSpace.FriendInit(ref dobjAcadBlock3);
                    }
                }
                else if (Operators.CompareString(left, Strings.UCase("*Paper_Space0"), TextCompare: false) == 0 && mobjAcadPaperSpace0 == null)
                {
                    mobjAcadPaperSpace0 = new AcadPaperSpace();
                    mobjAcadPaperSpace0.FriendInit(ref dobjAcadBlock3);
                }
                FriendAddAcadObject = dobjAcadBlock3;
            }
            dobjAcadObject5 = null;
            dobjAcadBlock3  = null;
            return(FriendAddAcadObject);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
 private bool InternReadBlockData(ref int rlngIdx, ref AcadBlock robjAcadBlock, ref string nrstrErrMsg)
 {
     nrstrErrMsg   = null;
     robjAcadBlock = null;
     checked
     {
         bool dblnError = default(bool);
         if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx], 2, TextCompare: false))
         {
             nrstrErrMsg = "Ungültiger Gruppencode für Blockname in Zeile " + Conversions.ToString(rlngIdx * 2 + 1) + ".";
             dblnError   = true;
         }
         else
         {
             string dstrName = Conversions.ToString(mobjDictReadValues[rlngIdx]);
             InternIncreaseIndex(ref rlngIdx, 1);
             robjAcadBlock = (AcadBlock)mobjAcadBlocks.FriendGetItem(dstrName);
             if (robjAcadBlock == null)
             {
                 nrstrErrMsg = "Ungültiger Blockname in Zeile " + Conversions.ToString(rlngIdx * 2) + ".";
                 dblnError   = true;
             }
             else if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx], 70, TextCompare: false))
             {
                 nrstrErrMsg = "Ungültiger Gruppencode für Standard-Flag-Werte in Zeile " + Conversions.ToString(rlngIdx * 2 + 1) + ".";
                 dblnError   = true;
             }
             else
             {
                 int dlngCode70 = Conversions.ToInteger(mobjDictReadValues[rlngIdx]);
                 InternIncreaseIndex(ref rlngIdx, 1);
                 if (Operators.ConditionalCompareObjectEqual(mobjDictReadCodes[rlngIdx], 71, TextCompare: false))
                 {
                     int dlngCode71 = Conversions.ToInteger(mobjDictReadValues[rlngIdx]);
                     InternIncreaseIndex(ref rlngIdx, 1);
                 }
                 if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx], 10, TextCompare: false))
                 {
                     nrstrErrMsg = "Ungültiger Gruppencode für Basispunkt X-Wert in Zeile " + Conversions.ToString(rlngIdx * 2 + 1) + ".";
                     dblnError   = true;
                 }
                 else if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx + 1], 20, TextCompare: false))
                 {
                     nrstrErrMsg = "Ungültiger Gruppencode für Basispunkt Y-Wert in Zeile " + Conversions.ToString(rlngIdx * 2 + 3) + ".";
                     dblnError   = true;
                 }
                 else if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx + 2], 30, TextCompare: false))
                 {
                     nrstrErrMsg = "Ungültiger Gruppencode für Basispunkt Z-Wert 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 Blockname in Zeile " + Conversions.ToString(rlngIdx * 2 + 7) + ".";
                     dblnError   = true;
                 }
                 else if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadValues[rlngIdx + 3], dstrName, TextCompare: false))
                 {
                     nrstrErrMsg = "Ungültiger Blockname in Zeile " + Conversions.ToString(rlngIdx * 2 + 8) + ".";
                     dblnError   = true;
                 }
                 else if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx + 4], 1, TextCompare: false))
                 {
                     nrstrErrMsg = "Ungültiger Gruppencode für XRef-Pfadname in Zeile " + Conversions.ToString(rlngIdx * 2 + 9) + ".";
                     dblnError   = true;
                 }
                 else
                 {
                     bool   flag         = false;
                     double ddblOriginX  = Conversions.ToDouble(mobjDictReadValues[rlngIdx]);
                     double ddblOriginY  = Conversions.ToDouble(mobjDictReadValues[rlngIdx + 1]);
                     double ddblOriginZ  = Conversions.ToDouble(mobjDictReadValues[rlngIdx + 2]);
                     string dstrPathName = Conversions.ToString(mobjDictReadValues[rlngIdx + 4]);
                     InternIncreaseIndex(ref rlngIdx, 5);
                     string dstrComment;
                     if (Operators.ConditionalCompareObjectEqual(mobjDictReadCodes[rlngIdx], 4, TextCompare: false))
                     {
                         dstrComment = Conversions.ToString(mobjDictReadValues[rlngIdx]);
                         InternIncreaseIndex(ref rlngIdx, 1);
                     }
                     else
                     {
                         dstrComment = null;
                     }
                     AcadBlock acadBlock = robjAcadBlock;
                     bool      flag2     = false;
                     acadBlock.Origin = new object[3]
                     {
                         ddblOriginX,
                         ddblOriginY,
                         ddblOriginZ
                     };
                     acadBlock.Comment           = dstrComment;
                     acadBlock.FriendLetPathName = dstrPathName;
                     acadBlock.FriendLetFlags70  = dlngCode70;
                     acadBlock = null;
                 }
             }
         }
         return(!dblnError);
     }
 }
Exemplo n.º 13
0
 internal void FriendInit(ref AcadBlock robjAcadBlock)
 {
     mobjAcadBlock = robjAcadBlock;
 }
Exemplo n.º 14
0
        public static AcadLWPolyline DrawDonut(AcadBlock space,
                                                double inRad,
                                                double outRad,
                                                double cenPt1,
                                                double cenPt2)
        {
            double width, radius, PI;
            double[] tmp = new double[2];
            double[] v = new double[4];
            AcadLWPolyline pl;
            double[] basePnt = new double[3];

            try
            {
                //Switch to terminals layer
                gbl_doc.ActiveLayer = TerminalsLayer;

                basePnt[0] = cenPt1;
                basePnt[1] = cenPt2;
                basePnt[2] = 0.0;
                PI = Math.Atan(1) * 4;
                width = (outRad - inRad) / 2;
                radius = (inRad + width) / 2;
                tmp = (double[])gbl_doc.Utility.PolarPoint(basePnt,
                                                       PI, radius);

                v[0] = tmp[0];
                v[1] = tmp[1];
                tmp = (double[])gbl_doc.Utility.PolarPoint(basePnt,
                                                        0, radius);
                v[2] = tmp[0];
                v[3] = tmp[1];
                pl = space.AddLightWeightPolyline(v);

                pl.Closed = true;
                pl.SetWidth(0, width, width);
                pl.SetBulge(0, -1);
                pl.SetWidth(1, width, width);
                pl.SetBulge(1, -1);

                //Switch to other layer
                gbl_doc.ActiveLayer = SwitchLayer;

                return pl;
            }

            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);
                return null;

            }
        }
Exemplo n.º 15
0
        private bool InternReadBlockRecord(double vdblDefOwnerID, ref int rlngIdx, ref AcadBlocks robjAcadBlocks, ref string nrstrErrMsg)
        {
            nrstrErrMsg = null;
            Dictionary <object, object> dobjDictReactors2    = new Dictionary <object, object>();
            Dictionary <object, object> dobjDictXDictionary2 = new Dictionary <object, object>();
            Dictionary <object, object> dobjDictPreviewIcon2 = new Dictionary <object, object>();
            Dictionary <object, object> dobjDictBlkrefs2     = new Dictionary <object, object>();
            int dlngStartIdx = rlngIdx;

            checked
            {
                double    ddblObjectID          = default(double);
                double    ddblOwnerID           = default(double);
                bool      InternReadBlockRecord = default(bool);
                AcadBlock dobjAcadBlock2;
                if (hwpDxf_ReadRef.BkDXFReadRef_AcadSymbolTableRecord(mobjAcadDatabase, vdblDefOwnerID, "BLOCK_RECORD", mobjDictReadCodes, mobjDictReadValues, ref rlngIdx, ref ddblObjectID, ref ddblOwnerID, ref dobjDictReactors2, ref dobjDictXDictionary2, ref nrstrErrMsg))
                {
                    bool dblnError;
                    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], "AcDbBlockTableRecord", 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 Blockname in Zeile " + Conversions.ToString(rlngIdx * 2 + 3) + ".";
                        dblnError   = true;
                    }
                    else if (Operators.ConditionalCompareObjectNotEqual(mobjDictReadCodes[rlngIdx + 2], 340, TextCompare: false))
                    {
                        nrstrErrMsg = "Ungültiger Gruppencode für Zeiger auf Layout-Objekt in Zeile " + Conversions.ToString(rlngIdx * 2 + 5) + ".";
                        dblnError   = true;
                    }
                    else
                    {
                        string dstrName           = Conversions.ToString(mobjDictReadValues[rlngIdx + 1]);
                        double ddblLayoutObjectID = Conversions.ToDouble(mobjDictReadValues[rlngIdx + 2]);
                        rlngIdx += 3;
                        hwpDxf_ReadBas.BkDXFReadBas_PreviewIcon(ref rlngIdx, mobjDictReadCodes, mobjDictReadValues, ref dobjDictPreviewIcon2);
                        dblnError = !hwpDxf_ReadBas.BkDXFReadBas_Blkrefs(ref rlngIdx, mobjDictReadCodes, mobjDictReadValues, ref dobjDictBlkrefs2, ref nrstrErrMsg);
                        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)
                            {
                                if (robjAcadBlocks.FriendNameExist(dstrName))
                                {
                                    nrstrErrMsg = "Blockdefinition " + dstrName + " ab Zeile " + Conversions.ToString(dlngStartIdx * 2 + 1) + " existiert bereits.";
                                    dblnError   = true;
                                }
                                else
                                {
                                    dobjAcadBlock2 = robjAcadBlocks.FriendAddAcadObject(ref nrstrErrMsg, dstrName, ddblObjectID);
                                    if (dobjAcadBlock2 == null)
                                    {
                                        nrstrErrMsg = "Das Objekt konnte nicht hinzugefügt werden.";
                                        dblnError   = true;
                                    }
                                    else
                                    {
                                        AcadBlock acadBlock = dobjAcadBlock2;
                                        acadBlock.FriendLetLayoutObjectID  = ddblLayoutObjectID;
                                        acadBlock.FriendSetDictReactors    = dobjDictReactors2;
                                        acadBlock.FriendSetDictXDictionary = dobjDictXDictionary2;
                                        acadBlock.FriendSetDictPreviewIcon = dobjDictPreviewIcon2;
                                        acadBlock.FriendSetDictBlkrefs     = dobjDictBlkrefs2;
                                        acadBlock.SetXData(RuntimeHelpers.GetObjectValue(dvarXDataType), RuntimeHelpers.GetObjectValue(dvarXDataValue));
                                        acadBlock = null;
                                    }
                                }
                            }
                        }
                    }
                    InternReadBlockRecord = !dblnError;
                }
                dobjDictBlkrefs2     = null;
                dobjDictPreviewIcon2 = null;
                dobjDictXDictionary2 = null;
                dobjDictReactors2    = null;
                dobjAcadBlock2       = null;
                return(InternReadBlockRecord);
            }
        }