Beispiel #1
0
        getBldgLimitsAVG(ObjectId idPoly, int intInterval)
        {
            double dblAngTar = 0; int intMark = 0;

            Point3d pnt3dBase0;

            Point3dCollection pnts3dPoly = idPoly.getCoordinates3d();
            Point3dCollection pnts3dRot;

            using (BaseObjs._acadDoc.LockDocument())
            {
                idPoly.getEastWestBaseLineDir(ref dblAngTar, ref intMark);
                pnt3dBase0 = pnts3dPoly[intMark];
                pnts3dRot  = UCsys.TranslateCoordinates(pnts3dPoly, pnt3dBase0, dblAngTar * -1);
            }

            List <double> deltas = UCsys.getObjectExtents(pnts3dRot);

            double dblPntXmin = deltas[0];
            double dblPntYmin = deltas[1];

            int iMax = 1 + (int)System.Math.Truncate(deltas[2] / intInterval);
            int jMax = 1 + (int)System.Math.Truncate(deltas[3] / intInterval);

            Point3d pnt3dBase  = default(Point3d);
            Point3d pnt3dPolar = default(Point3d);

            double dblDY = intInterval;

            Point3dCollection pnts3dRotGrid = new Point3dCollection();
            Point3dCollection pnts3dGrid    = new Point3dCollection();

            for (int j = 0; j <= jMax; j++)
            {
                double dblX = dblPntXmin - (iMax * intInterval - deltas[2]) / 2;
                double dblY = dblPntYmin + (j * dblDY) - (jMax * intInterval - deltas[3]) / 2;

                pnt3dBase = new Point3d(dblX, dblY, 0.0);

                for (int i = 0; i <= iMax; i++)
                {
                    pnt3dPolar = Base_Tools45.Math.traverse(pnt3dBase, 0.0, i * intInterval);
                    pnts3dRotGrid.Add(pnt3dPolar);
                }
            }

            pnts3dGrid = UCsys.TranslateCoordinates(pnts3dRotGrid, pnt3dBase0, dblAngTar);

            return(pnts3dGrid);
        }
Beispiel #2
0
        getBldgLimitsEW(ObjectId idPoly)
        {
            Object obj = null;
            double dblAngTar = 0; int intMark = 0;

            Point3d pnt3dBase0;

            Point3dCollection pnts3dPoly = idPoly.getCoordinates3d();
            Point3dCollection pnts3dRot;

            using (BaseObjs._acadDoc.LockDocument())
            {
                idPoly.getEastWestBaseLineDir(ref dblAngTar, ref intMark);
                pnt3dBase0 = pnts3dPoly[intMark];
                pnts3dRot  = UCsys.TranslateCoordinates(pnts3dPoly, pnt3dBase0, dblAngTar * -1);
            }
            return(obj);
        }