Beispiel #1
0
        makeVolSurface(string strNameBASE, string strNameCOMP, bool boolShowMessage)
        {
            string        nameSurface  = string.Format("VOL_{0}_{1}", strNameBASE, strNameCOMP);
            List <string> nameSurfaces = Surf.getSurfaces();

            for (int i = 0; i < nameSurfaces.Count; i++)
            {
                if (nameSurfaces[i] == nameSurface)
                {
                    Surf.removeSurface(nameSurfaces[i]);
                }
            }

            TinSurface objSurfaceBASE = Surf.getTinSurface(strNameBASE);
            TinSurface objSurfaceCOMP = Surf.getTinSurface(strNameCOMP);

            int lngVolCut  = 0;
            int lngVolFill = 0;

            ObjectId idSurfFill = TinVolumeSurface.Create(nameSurface, objSurfaceBASE.ObjectId, objSurfaceCOMP.ObjectId);

            SelectionSet objSSetLim = EW_Utility1.buildSSetGradingLim();

            ObjectId[]       ids            = objSSetLim.GetObjectIds();
            TinVolumeSurface objSurfaceFILL = null;

            if (ids != null && ids.Length > 0)
            {
                ObjectId idPoly = ids[0];
                idPoly.checkIfClosed();

                ObjectId   idPoly3d = Conv.poly_Poly3d(idPoly, 0, "0");
                ObjectId[] idBndrys = { idPoly3d };
                objSurfaceFILL = (TinVolumeSurface)idSurfFill.getEnt();
                objSurfaceFILL.BoundariesDefinition.AddBoundaries(new ObjectIdCollection(idBndrys), 1.0, Autodesk.Civil.SurfaceBoundaryType.Outer, true);
                objSurfaceFILL.Rebuild();
                idPoly3d.delete();
            }
            else
            {
                MessageBox.Show("GRADING LIMIT not found - OUTER BOUNDARY not added.");
            }

            lngVolCut  = (int)objSurfaceFILL.GetVolumeProperties().UnadjustedCutVolume / 27;
            lngVolFill = (int)objSurfaceFILL.GetVolumeProperties().UnadjustedFillVolume / 27;

            if (boolShowMessage == true)
            {
                string mess = string.Format("Cut: {0} CY     Fill: {1} CY", lngVolCut, lngVolFill);
                MessageBox.Show(mess);
            }

            EW_Main.viewResults("VOL", false);
        }
Beispiel #2
0
        updateVolSurface(string strNameBASE, string strNameCOMP)
        {
            string        nameSurface  = string.Format("VOL_{0}_{1}", strNameBASE, strNameCOMP);
            List <string> nameSurfaces = Surf.getSurfaces();

            for (int i = 0; i < nameSurfaces.Count; i++)
            {
                if (nameSurfaces[i] == nameSurface)
                {
                    Surf.removeSurface(nameSurfaces[i]);
                }
            }

            TinSurface objSurfaceBASE = Surf.getTinSurface(strNameBASE);
            TinSurface objSurfaceCOMP = Surf.getTinSurface(strNameCOMP);

            TinVolumeSurface.Create(nameSurface, objSurfaceBASE.ObjectId, objSurfaceCOMP.ObjectId);
        }
Beispiel #3
0
        private void btn_UpdateCurb_Click(object sender, EventArgs e)
        {
            using (BaseObjs._acadDoc.LockDocument())
            {
                using (Transaction TR = BaseObjs.startTransactionDb())
                {
                    Surf.removeSurface("TEMP");
                    TypedValue[] TVs = new TypedValue[2];

                    TVs[0] = new TypedValue((int)DxfCode.Start, "POLYLINE");
                    TVs[1] = new TypedValue((int)DxfCode.LayerName, "CPNT-BRKLINE-TEMP");

                    Misc.deleteObjs(TVs);

                    TR.Commit();
                }
            }

            wlc.LocateCurb("CPNT", AlignPL, AlignRF);
        }
Beispiel #4
0
        public static void makeSurfaceBOT()
        {
            string strSurfaceName = "BOT";

            EW_CheckSurfaceStyles.checkSurfaceStyles(strSurfaceName);

            Surf.removeSurface("BOT");
            TinSurface objSurfaceBOT = Surf.addTinSurface("BOT", out exists);

            ObjectId idCivilPntGrp = CgPnt_Group.checkPntGroup("BOT");

            objSurfaceBOT.PointGroupsDefinition.AddPointGroup(idCivilPntGrp);

            SelectionSet objSSet = EW_Utility1.buildSSet13();

            ObjectId[]         idsBrksArray = objSSet.GetObjectIds();
            ObjectIdCollection idsBrks      = new ObjectIdCollection();

            foreach (ObjectId id in idsBrksArray)
            {
                idsBrks.Add(id);
            }

            objSurfaceBOT.BreaklinesDefinition.AddStandardBreaklines(idsBrks, 1.0, 0, 0, 0);

            ObjectId idLWPline = EW_Utility1.buildSSetGradingLim().GetObjectIds()[0];

            if (idLWPline != ObjectId.Null)
            {
                ObjectIdCollection ids = new ObjectIdCollection();
                ids.Add(idLWPline);
                objSurfaceBOT.BoundariesDefinition.AddBoundaries(ids, 1, Autodesk.Civil.SurfaceBoundaryType.Outer, true);
                objSurfaceBOT.Rebuild();
            }
            else
            {
                MessageBox.Show("GRADING LIMIT not found - OUTER BOUNDARY not added.");
            }
        }
Beispiel #5
0
        getSurfaceFromXRef(string nameSurf, string strSource)
        {
            string nameXRef = "";

            if (nameSurf == "CPNT-ON")
            {
                nameXRef = "GCAL";
            }
            if (nameSurf == "EXIST")
            {
                nameXRef = "CONT";
            }

            ResultBuffer rb = xRef.getXRefsContainingTargetDwgName(nameXRef);

            TypedValue[] tvs = rb.AsArray();

            switch (tvs.Length)
            {
            case 0:
                Application.ShowAlertDialog(string.Format("{0} not attached", nameXRef = (nameSurf == "CPNT-ON") ? "GCAL" : "CONT"));
                break;

            case 2:
                foreach (TypedValue tv in tvs)
                {
                    if (tv.TypeCode == 1001)
                    {
                        nameXRef = tv.Value.ToString();
                    }
                }

                break;

            default:
                string prompt = string.Format("Multible {0} are attached. Select one to use for staking: ", nameXRef = (nameSurf == "CPNT-ON") ? "GCAL" : "CONT");
                Application.ShowAlertDialog(prompt);
                fPickXref = Forms.Stake_Forms.sForms.fPickXref;
                foreach (TypedValue tv in tvs)
                {
                    if (tv.TypeCode == 1001)
                    {
                        fPickXref.lboxSelectXref.Items.Add(tv.Value.ToString());
                    }
                }
                fPickXref.Text = string.Format("Multible {0} are attached. Select one to use for staking: ", nameXRef = (nameSurf == "CPNT-ON") ? "GCAL" : "CONT");
                Application.ShowModalDialog(null, fPickXref, false);

                nameXRef = fPickXref.nameXRef;
                if (nameXRef == "")
                {
                    return;
                }

                break;
            }

            Surf.removeSurface(nameSurf);
            BlockReference br = xRef.getXRefBlockReference(nameXRef);

            TinSurface s = xRef.getXRefTinSurface(br.Id, nameSurf);

            if (s == null)
            {
                return;
            }
            string nameLayer = string.Format("{0}-SURFACE", nameSurf);

            if (nameSurf == "CPNT-ON")
            {
                nameLayer = "CPNT-SURFACE";
            }
            Layer.manageLayers(nameLayer);

            TinSurface surf      = null;
            string     nameStyle = "CPNT-ON";

            using (Transaction tr = BaseObjs.startTransactionDb())
            {
                if (nameSurf == "CONT")
                {
                    nameStyle = "EXIST";
                }
                ObjectId idStyle = Surf_Styles.getSurfaceStyle(nameStyle);
                ObjectId idSurf  = TinSurface.Create(nameSurf, idStyle);
                surf             = (TinSurface)idSurf.GetObject(OpenMode.ForWrite);
                surf.Layer       = nameLayer;
                surf.Description = string.Format("COPIED FROM {0} - {1}", nameXRef, DateTime.Now);
                tr.Commit();
            }

            surf.PasteSurface(s.ObjectId);

            Layer.manageLayer(nameLayer, layerFrozen: true);
            if (nameSurf == "CPNT-ON")
            {
                if (strSource == "STAKE")
                {
                    sFrms.sForms.fStake.SurfaceCPNT = surf;
                }
            }
        }
Beispiel #6
0
 private static void deleteSurface(Surface surf)
 {
     Surf.removeSurface(surf.Name);
 }