Esempio n. 1
0
        fData_pnts3d(Dictionary <float, FEATUREDATA> fData, Alignment objAlignRF, Alignment objAlignPL)
        {
            List <Point3d> pnts3d = new List <Point3d>();

            FEATUREDATA fd = default(FEATUREDATA);
            double      fk = 0;

            double dblEasting  = 0;
            double dblNorthing = 0;

            int i = -1;
            int k = fData.Count - 1;

            foreach (KeyValuePair <float, FEATUREDATA> kvp in fData)
            {
                fd = kvp.Value;
                fk = kvp.Key;
                i  = i + 1;
                switch (fd.AlignName)
                {
                case "RF":

                    objAlignRF.PointLocation(fk, fd.Offset, ref dblEasting, ref dblNorthing);

                    pnts3d.Add(new Point3d(dblEasting, dblNorthing, fd.Elev));

                    break;

                case "PL":

                    objAlignPL.PointLocation(fk, fd.Offset, ref dblEasting, ref dblNorthing);

                    pnts3d.Add(new Point3d(dblEasting, dblNorthing, fd.Elev));

                    break;
                }
            }

            return(pnts3d);
        }
Esempio n. 2
0
        wallBrlkinesToSurface(Alignment objAlignPL, Alignment objAlignRF, Alignment objAlignWall)
        {
            FEATUREDATA fDataW0 = new FEATUREDATA();
            FEATUREDATA fDataW1 = new FEATUREDATA();
            FEATUREDATA fDataW2 = new FEATUREDATA();
            FEATUREDATA fDataW3 = new FEATUREDATA();
            FEATUREDATA fDataG0 = new FEATUREDATA();
            FEATUREDATA fDataGB = new FEATUREDATA();

            bool exists = false;

            try
            {
                TinSurface objSurfaceCPNT = Surf.getTinSurface("CPNT-ON", out exists);

                string strLayer = null;
                strLayer = string.Format("{0}-BRKLINE", objAlignPL.Name);
                Layer.manageLayers(strLayer);

                //-------------------------------------GUTTER BREAKLINES -------------------------------------------------------------------------------------------------------------------ADDED TO CPNT

                ObjectIdCollection objEntsGutter     = new ObjectIdCollection();
                ObjectIdCollection objEntsEndsGutter = new ObjectIdCollection();


                for (int i = 0; i < p.dGUTs.Count - 1; i++)
                {
                    if (p.dGUTs[i]["W3"].Count > 1)
                    {
                        objEntsGutter.Add(wu.fData_3dPoly("W3", strLayer, p.dGUTs[i]["W3"], objAlignRF, objAlignPL));
                        objEntsGutter.Add(wu.fData_3dPoly("G0", strLayer, p.dGUTs[i]["G0"], objAlignRF, objAlignPL));
                        objEntsGutter.Add(wu.fData_3dPoly("GB", strLayer, p.dGUTs[i]["GB"], objAlignRF, objAlignPL));

                        objEntsEndsGutter = wdp.makeEndBrklinesWALL(strLayer, objEntsGutter, false);

                        objSurfaceCPNT.BreaklinesDefinition.AddStandardBreaklines(objEntsEndsGutter, 0, 0, 0, 0);
                    }
                }

                objSurfaceCPNT.BreaklinesDefinition.AddStandardBreaklines(objEntsGutter, 0, 0, 0, 0);

                //-------------------------------------WALL BREAKLINES------------------------------------------------------------------------------------------------------------------  NEW SURFACE - WALL

                ObjectIdCollection objEntsWall     = new ObjectIdCollection();
                ObjectIdCollection objEntEndsWall  = new ObjectIdCollection();
                ObjectIdCollection objEntsWallCPNT = new ObjectIdCollection();


                for (int i = 0; i < p.dWALLs.Count - 1; i++)
                {
                    //TEST IS THERE ARE AT LEAST TWO POINTS
                    if (p.dWALLs[i]["W0"].Count > 1)
                    {
                        objEntsWall.Add(wu.fData_3dPoly("W0", strLayer, p.dWALLs[i]["W0"], objAlignRF, objAlignPL));
                        objEntsWall.Add(wu.fData_3dPoly("W1", strLayer, p.dWALLs[i]["W1"], objAlignRF, objAlignPL));
                        objEntsWall.Add(wu.fData_3dPoly("W2", strLayer, p.dWALLs[i]["W2"], objAlignRF, objAlignPL));
                        objEntsWall.Add(wu.fData_3dPoly("W3", strLayer, p.dWALLs[i]["W3"], objAlignRF, objAlignPL));
                        objEntsWall.Add(wu.fData_3dPoly("W4", strLayer, p.dWALLs[i]["W4"], objAlignRF, objAlignPL));
                        objEntsWall.Add(wu.fData_3dPoly("W5", strLayer, p.dWALLs[i]["W5"], objAlignRF, objAlignPL));
                        objEntsWall.Add(wu.fData_3dPoly("W6", strLayer, p.dWALLs[i]["W6"], objAlignRF, objAlignPL));
                        objEntsWall.Add(wu.fData_3dPoly("W7", strLayer, p.dWALLs[i]["W7"], objAlignRF, objAlignPL));
                        objEntsWall.Add(wu.fData_3dPoly("W8", strLayer, p.dWALLs[i]["W8"], objAlignRF, objAlignPL));
                        objEntsWall.Add(wu.fData_3dPoly("W9", strLayer, p.dWALLs[i]["W9"], objAlignRF, objAlignPL));

                        objEntsWallCPNT.Add(objEntsWall[0]);
                        objEntsWallCPNT.Add(objEntsWall[1]);
                        objEntsWallCPNT.Add(objEntsWall[2]);
                        objEntsWallCPNT.Add(objEntsWall[3]);

                        TinSurface objSurfaceWallCut = Surf.getTinSurface(Align.getAlignName("WALL") + "-CUT", out exists);
                        objSurfaceWallCut.BreaklinesDefinition.AddStandardBreaklines(objEntsWall, 0, 0, 0, 0);

                        objEntEndsWall = wdp.makeEndBrklinesWALL(strLayer, objEntsWall, true);
                        objSurfaceWallCut.BreaklinesDefinition.AddStandardBreaklines(objEntEndsWall, 0, 0, 0, 0);
                        //ADD END BREAKLINES

                        objSurfaceCPNT.BreaklinesDefinition.AddStandardBreaklines(objEntsWallCPNT, 0, 0, 0, 0);
                    }
                }

                //-----------------------------------  WALL ENDS  -------------------------------------------------------------------------------------------------------------------

                double dblStaBeg = objAlignRF.StartingStation;
                double dblStaEnd = objAlignRF.EndingStation;
                double dblEasting = 0, dblNorthing = 0;

                if (p.dWALLs[0]["W0"].ContainsKey((float)dblStaBeg))
                {
                    List <Point3d> dblPntsBEG = new List <Point3d>();

                    fDataW0 = p.dWALLs[0]["W0"][(float)dblStaBeg];
                    fDataW1 = p.dWALLs[0]["W1"][(float)dblStaBeg];
                    fDataW2 = p.dWALLs[0]["W2"][(float)dblStaBeg];
                    fDataW3 = p.dWALLs[0]["W3"][(float)dblStaBeg];
                    fDataG0 = p.dGUTs[0]["G0"][(float)dblStaBeg];
                    fDataGB = p.dGUTs[0]["GB"][(float)dblStaBeg];

                    objAlignRF.PointLocation(fDataW0.Station, fDataW0.Offset, ref dblEasting, ref dblNorthing);
                    dblPntsBEG.Add(new Point3d(dblEasting, dblNorthing, fDataW0.Elev));

                    objAlignRF.PointLocation(fDataW1.Station, fDataW1.Offset, ref dblEasting, ref dblNorthing);
                    dblPntsBEG.Add(new Point3d(dblEasting, dblNorthing, fDataW1.Elev));

                    objAlignRF.PointLocation(fDataW2.Station, fDataW2.Offset, ref dblEasting, ref dblNorthing);
                    dblPntsBEG.Add(new Point3d(dblEasting, dblNorthing, fDataW2.Elev));

                    objAlignRF.PointLocation(fDataW3.Station, fDataW3.Offset, ref dblEasting, ref dblNorthing);
                    dblPntsBEG.Add(new Point3d(dblEasting, dblNorthing, fDataW3.Elev));

                    objAlignRF.PointLocation(fDataG0.Station, fDataG0.Offset, ref dblEasting, ref dblNorthing);
                    dblPntsBEG.Add(new Point3d(dblEasting, dblNorthing, fDataG0.Elev));

                    objAlignPL.PointLocation(fDataGB.Station, fDataGB.Offset, ref dblEasting, ref dblNorthing);
                    dblPntsBEG.Add(new Point3d(dblEasting, dblNorthing, fDataGB.Elev));

                    //Wall_Forms.fWall1.PntsWallCutBeg = dblPntsBEG;
                }

                int j = p.dWALLs.Count - 1;


                if (j > 1)
                {
                    if (p.dWALLs[j]["W0"].ContainsKey((float)dblStaEnd))
                    {
                        List <Point3d> dblPntsEND = new List <Point3d>();

                        objAlignRF.PointLocation(fDataW0.Station, fDataW0.Offset, ref dblEasting, ref dblNorthing);
                        dblPntsEND.Add(new Point3d(dblEasting, dblNorthing, fDataW0.Elev));

                        objAlignRF.PointLocation(fDataW1.Station, fDataW1.Offset, ref dblEasting, ref dblNorthing);
                        dblPntsEND.Add(new Point3d(dblEasting, dblNorthing, fDataW1.Elev));

                        objAlignRF.PointLocation(fDataW2.Station, fDataW2.Offset, ref dblEasting, ref dblNorthing);
                        dblPntsEND.Add(new Point3d(dblEasting, dblNorthing, fDataW2.Elev));

                        objAlignRF.PointLocation(fDataW3.Station, fDataW3.Offset, ref dblEasting, ref dblNorthing);
                        dblPntsEND.Add(new Point3d(dblEasting, dblNorthing, fDataW3.Elev));

                        objAlignRF.PointLocation(fDataG0.Station, fDataG0.Offset, ref dblEasting, ref dblNorthing);
                        dblPntsEND.Add(new Point3d(dblEasting, dblNorthing, fDataG0.Elev));

                        objAlignPL.PointLocation(fDataGB.Station, fDataGB.Offset, ref dblEasting, ref dblNorthing);
                        dblPntsEND.Add(new Point3d(dblEasting, dblNorthing, fDataGB.Elev));

                        //Wall_Forms.wForms.fWall1.PntsWallCutEnd = dblPntsEND;
                    }
                }

                //-------------------------------------REGULARS----------------------------------------------------------------------------------------------------------------------------------- ADD TO CPNT

                ObjectIdCollection objEntsNOM = new ObjectIdCollection();
                ObjectIdCollection objEntEnds = new ObjectIdCollection();

                objEntsNOM.Add(wu.fData_3dPoly("RF", strLayer, p.dNOM["RF"], objAlignRF, objAlignPL));
                objEntsNOM.Add(wu.fData_3dPoly("RF", strLayer, p.dNOM["FL"], objAlignRF, objAlignPL));
                objEntsNOM.Add(wu.fData_3dPoly("RF", strLayer, p.dNOM["TC"], objAlignRF, objAlignPL));
                objEntsNOM.Add(wu.fData_3dPoly("RF", strLayer, p.dNOM["TOE"], objAlignRF, objAlignPL));
                objEntsNOM.Add(wu.fData_3dPoly("RF", strLayer, p.dNOM["TOP"], objAlignRF, objAlignPL));
                objEntsNOM.Add(wu.fData_3dPoly("RF", strLayer, p.dNOM["PL"], objAlignRF, objAlignPL));

                objEntEnds = wdp.makeEndBrklines(strLayer, objEntsNOM);

                objSurfaceCPNT.BreaklinesDefinition.AddStandardBreaklines(objEntsNOM, 0, 0, 0, 0);
                objSurfaceCPNT.BreaklinesDefinition.AddStandardBreaklines(objEntEnds, 0, 0, 0, 0);
            }
            catch (Autodesk.AutoCAD.Runtime.Exception)
            {
            }
        }