//找到复用梁 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); }
//选择范围 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; }
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; } }
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(); } }
//选择集 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(""); }; }