Exemple #1
0
        //获取支座
        public MxDrawPolyline GetSeatForRange(MxDrawPoint pt, MxDrawPoint spt)
        {
            double             range1 = 2000, range2 = 300;
            MxDrawSelectionSet collect = new MxDrawSelectionSet();
            MxDrawResbuf       filter  = new MxDrawResbuf();
            MxDrawLayerTable   layer   = (Program.MainForm.axMxDrawX1.GetDatabase() as MxDrawDatabase).GetLayerTable();
            MxDrawPoint        start   = new MxDrawPoint
            {
                x = pt.x + range1,
                y = pt.y + range1,
                z = pt.z
            };
            MxDrawPoint end = new MxDrawPoint
            {
                x = pt.x - range1,
                y = pt.y - range1,
                z = pt.z
            };

            //Program.MainForm.axMxDrawX1.DrawLine(start.x, start.y, start.x, start.y);
            //Program.MainForm.axMxDrawX1.DrawLine(start.x, start.y, start.x, end.y);
            //Program.MainForm.axMxDrawX1.DrawLine(start.x, end.y, end.x, end.y);
            //Program.MainForm.axMxDrawX1.DrawLine(end.x, end.y, end.x, start.y);
            //Program.MainForm.axMxDrawX1.DrawLine(end.x, start.y, start.x, start.y);
            collect.Select(MCAD_McSelect.mcSelectionSetCrossing, start, end, filter);
            MxDrawEntity entity;

            //MxDrawLayerTable layer = (Program.MainForm.axMxDrawX1.GetDatabase() as MxDrawDatabase).GetLayerTable();
            //MxDrawLayerTableRecord dd;
            for (int i = 0; i < collect.Count; i++)
            {
                entity = collect.Item(i);
                if (entity == null)
                {
                    continue;
                }
                if (entity.ObjectName == "McDbPolyline")
                {
                    MxDrawPolyline         polyline = entity as MxDrawPolyline;
                    MxDrawLayerTableRecord dd       = layer.GetAt(entity.Layer);
                    if (dd.Color.colorIndex != 9)
                    {
                        MxDrawPoint st = polyline.GetStartPoint();
                        MxDrawPoint et = polyline.GetEndPoint();
                        if (st.x == et.x && st.y == et.y)
                        {
                            return(polyline);
                        }
                    }
                }
            }
            return(new MxDrawPolyline());
        }