Esempio n. 1
0
        //找到复用梁
        public List <string> GetItemAsync(string kval)
        {
            List <string>      vs     = new List <string>();
            MxDrawSelectionSet select = new MxDrawSelectionSet();
            MxDrawResbuf       filter = new MxDrawResbuf();

            filter.AddStringEx("TEXT,MTEXT", 5020);
            select.Select2(MCAD_McSelect.mcSelectionSetAll, null, null, null, filter);
            for (int i = 0; i < select.Count; i++)
            {
                MxDrawEntity entity = select.Item(i);
                if (entity == null)
                {
                    continue;
                }
                if (entity.ObjectName == "McDbText")
                {
                    MxDrawText tx = entity as MxDrawText;
                    if (tx.TextString.Trim() != "" && kval.Contains(tx.TextString))
                    {
                        vs.Add(tx.handle);
                    }
                }
            }
            return(vs);
        }
Esempio n. 2
0
        //选择范围
        private void T1007()
        {
            axMxDrawX1.DynWorldDraw += AxMxDrawX1_DynWorldDraw;//添加动态画框事件
            axMxDrawX1.AddLayer("tkbox");
            MxDrawPoint pt1 = axMxDrawX1.GetPoint(false, 0, 0, "开始坐标...") as MxDrawPoint;

            if (pt1 == null)
            {
                return;
            }
            MxDrawUiPrPoint scpt = new MxDrawUiPrPoint();

            scpt.message   = "终点坐标...";
            scpt.basePoint = pt1;
            scpt.setUseBasePt(false);
            var spdata = scpt.InitUserDraw("SelectRangeBox");

            axMxDrawX1.SetSysVarLong("ORTHOMODE", 0);
            spdata.SetPoint("BasePoint", pt1);
            if (scpt.go() != MCAD_McUiPrStatus.mcOk)
            {
                return;
            }
            spdata.Draw();

            //放大
            axMxDrawX1.ZoomWindow(pt1.x, pt1.y, spdata.DragPoint.x, spdata.DragPoint.y);
            PublicValue = new
            {
                Lx = pt1.x,
                Ly = pt1.y,
                Lz = pt1.z,
                Rx = spdata.DragPoint.x,
                Ry = spdata.DragPoint.y,
                Rz = spdata.DragPoint.z
            };
            //删除选择框
            MxDrawSelectionSet ss     = new MxDrawSelectionSet();
            MxDrawResbuf       filter = new MxDrawResbuf();

            filter.AddStringEx("tkbox", 8);
            ss.Select(MCAD_McSelect.mcSelectionSetAll, null, null, filter);
            for (int i = 0; i < ss.Count; i++)
            {
                axMxDrawX1.Erase(ss.Item(i).ObjectID);
            }
            //删掉画框的图层
            MxDrawDatabase          database = axMxDrawX1.GetDatabase() as MxDrawDatabase;
            IMxDrawLayerTableRecord layer    = database.GetLayerTable().GetAt("tkbox", false);

            if (layer != null)
            {
                layer.Erase();
            }
            return;
        }
Esempio n. 3
0
        private void AxMxDrawX1_MouseEvent1(object sender, _DMxDrawXEvents_MouseEventEvent e)
        {
            if (e.lType == 2 && (Control.ModifierKeys & Keys.Control) == Keys.Control)
            {
                MxDrawSelectionSet mxDrawSelection = new MxDrawSelectionSet();
                MxDrawResbuf       filter          = new MxDrawResbuf();
                filter.AddStringEx("HLT_BEAM_CLINE", 8);
                MxDrawPoint point = new MxDrawPoint
                {
                    x = e.dX,
                    y = e.dY,
                };
                mxDrawSelection.SelectAtPoint(point, filter);
                if (mxDrawSelection.Count > 0)
                {
                    axMxDrawX1.TwinkeEnt(mxDrawSelection.Item(0).ObjectID);

                    onePeaceEdit.LineID = mxDrawSelection.Item(0).handle;
                }
                axMxDrawX1.MouseEvent -= AxMxDrawX1_MouseEvent1;
            }
        }
Esempio n. 4
0
        private void Delete_layer()
        {
            MxDrawSelectionSet scn    = new MxDrawSelectionSet();
            MxDrawResbuf       filter = new MxDrawResbuf();

            filter.AddStringEx("HLT_BEAM_CLINE", 8);
            scn.Select(MCAD_McSelect.mcSelectionSetWindow, null, null, filter);
            for (int i = 0; i < scn.Count; i++)
            {
                scn.Item(i).Erase();
            }
            // 得到数据库对象.
            MxDrawDatabase database = (MxDrawDatabase)axMxDrawX1.GetDatabase();
            // 得到层表.
            MxDrawLayerTable layerTable = database.GetLayerTable();
            // 得到层。
            MxDrawLayerTableRecord layer = layerTable.GetAt("HLT_BEAM_CLINE", false);

            if (layer != null)
            {
                layer.Erase();
            }
        }
Esempio n. 5
0
        //选择集
        private void AxMxDrawX1_MouseEvent(object sender, _DMxDrawXEvents_MouseEventEvent e)
        {
            MxDrawPoint start = new MxDrawPoint(), end = new MxDrawPoint();

            if (PublicValue != null)
            {
                dynamic c = PublicValue;
                start.x = c.Lx;
                start.y = c.Ly;
                start.z = c.Lz;
                end.x   = c.Rx;
                end.y   = c.Ry;
                end.z   = c.Rz;
            }
            {
                MxDrawSelectionSet mxDrawSelection;
                MxDrawResbuf       filter;
                MxDrawPoint        point;
                if (e.lType == 2 && (Control.ModifierKeys & Keys.Control) == Keys.Control)
                {
                    mxDrawSelection = new MxDrawSelectionSet();
                    filter          = new MxDrawResbuf();
                    point           = new MxDrawPoint();
                    point.x         = e.dX; point.y = e.dY;
                    mxDrawSelection.SelectAtPoint(point, filter);
                    //MessageBox.Show(mxDrawSelection.Count.ToString());
                    if (mxDrawSelection.Count > 0)
                    {
                        if (start.x != 0 && end.x != 0)
                        {
                            if (!MathSience.IsContains(point, start, end))
                            {
                                return;
                            }
                        }
                        //MessageBox.Show(mxDrawSelection.Item(0).handle.ToString());
                        axMxDrawX1.TwinkeEnt(mxDrawSelection.Item(0).ObjectID);
                        if (BeamType == "change_line")
                        {
                            if (beam.beam.side_lines.Find(x => x == mxDrawSelection.Item(0).handle) == null)
                            {
                                beam.beam.side_lines.Add(mxDrawSelection.Item(0).handle);
                            }
                            else
                            {
                                axMxDrawX1.StopTwinkeEnt(mxDrawSelection.Item(0).ObjectID);
                                beam.beam.side_lines.Remove(mxDrawSelection.Item(0).handle);
                            }
                        }
                        if (BeamType == "change_dim")
                        {
                            if (beam.beam.dim_texts.Find(x => x == mxDrawSelection.Item(0).handle) == null)
                            {
                                beam.beam.dim_texts.Add(mxDrawSelection.Item(0).handle);
                            }
                            else
                            {
                                axMxDrawX1.StopTwinkeEnt(mxDrawSelection.Item(0).ObjectID);
                                beam.beam.dim_texts.Remove(mxDrawSelection.Item(0).handle);
                            }
                        }
                        if (BeamType == "change_seat")
                        {
                            if (beam.beam.seat_lines.Find(x => x == mxDrawSelection.Item(0).handle) == null)
                            {
                                beam.beam.seat_lines.Add(mxDrawSelection.Item(0).handle);
                            }
                            else
                            {
                                axMxDrawX1.StopTwinkeEnt(mxDrawSelection.Item(0).ObjectID);
                                beam.beam.seat_lines.Remove(mxDrawSelection.Item(0).handle);
                            }
                        }
                    }
                }
                else if (e.lType == 2 && (Control.ModifierKeys & Keys.Shift) == Keys.Shift)
                {
                    //dynamic pt = PublicValue;
                    //MxDrawPoint sp = new MxDrawPoint { x = pt.Lx, y = pt.Ly };
                    //MxDrawPoint ep = new MxDrawPoint { x = pt.Rx, y = pt.Ry };
                    mxDrawSelection = new MxDrawSelectionSet();
                    filter          = new MxDrawResbuf();
                    point           = new MxDrawPoint();
                    point.x         = e.dX; point.y = e.dY;
                    mxDrawSelection.SelectAtPoint(point, filter);
                    if (mxDrawSelection.Count > 0)
                    {
                        MxDrawEntity entity = mxDrawSelection.Item(0);
                        //MessageBox.Show(entity.Layer);
                        filter          = new MxDrawResbuf();
                        mxDrawSelection = new MxDrawSelectionSet();
                        filter.AddStringEx(entity.Layer, 8);//
                        if (start.x == 0)
                        {
                            mxDrawSelection.Select(MCAD_McSelect.mcSelectionSetAll, null, null, filter);//获取此图层元素
                        }
                        else
                        {
                            mxDrawSelection.Select(MCAD_McSelect.mcSelectionSetWindow, start, end, filter);//获取此图层元素
                        }
                        for (int i = 0; i < mxDrawSelection.Count; i++)
                        {
                            axMxDrawX1.TwinkeEnt(mxDrawSelection.Item(i).ObjectID);
                            if (BeamType == "change_line")
                            {
                                if (beam.beam.side_lines.Find(x => x == mxDrawSelection.Item(i).handle) == null)
                                {
                                    beam.beam.side_lines.Add(mxDrawSelection.Item(i).handle);
                                }
                                else
                                {
                                    axMxDrawX1.StopTwinkeEnt(mxDrawSelection.Item(i).ObjectID);
                                    beam.beam.side_lines.Remove(mxDrawSelection.Item(i).handle);
                                }
                            }
                            if (BeamType == "change_dim")
                            {
                                if (beam.beam.dim_texts.Find(x => x == mxDrawSelection.Item(i).handle) == null)
                                {
                                    beam.beam.dim_texts.Add(mxDrawSelection.Item(i).handle);
                                }
                                else
                                {
                                    axMxDrawX1.StopTwinkeEnt(mxDrawSelection.Item(i).ObjectID);
                                    beam.beam.dim_texts.Remove(mxDrawSelection.Item(i).handle);
                                }
                            }
                            if (BeamType == "change_seat")
                            {
                                if (beam.beam.seat_lines.Find(x => x == mxDrawSelection.Item(i).handle) == null)
                                {
                                    beam.beam.seat_lines.Add(mxDrawSelection.Item(i).handle);
                                }
                                else
                                {
                                    axMxDrawX1.StopTwinkeEnt(mxDrawSelection.Item(i).ObjectID);
                                    beam.beam.seat_lines.Remove(mxDrawSelection.Item(i).handle);
                                }
                            }
                            //beam.beam.seat_lines.Add(mxDrawSelection.Item(i).handle);
                            //选中元素
                            //axMxDrawX1.AddCurrentSelect(mxDrawSelection.Item(i).ObjectID, false, false);
                        }
                    }
                }
                //axMxDrawX1.SendStringToExecute("");
            };
        }