private void BtnTX_Click(object sender, EventArgs e) { AcadDocument AcadDoc = AcadApp.ActiveDocument; AcadObject pSelectLineobj = pSelectLineobj = GetHX(); if (pSelectLineobj == null) { return; } try { AcadLWPolyline Adlwp = (AcadLWPolyline)pSelectLineobj; double[] AdlwpPoint = (double[])Adlwp.Coordinates; int PointCount = AdlwpPoint.Length / 2; superGridControlCoords.PrimaryGrid.Rows.Clear(); // ISTPoint[] pSTPoints = new ISTPoint[PointCount]; for (int j = 0; j < PointCount; j++) { ISTPoint pSTPoint = new STPointClass() { X = AdlwpPoint[j * 2], Y = AdlwpPoint[j * 2 + 1] }; superGridControlCoords.PrimaryGrid.Rows.Add(new DevComponents.DotNetBar.SuperGrid.GridRow( new object[] { j + 1, Math.Round(AdlwpPoint[j * 2 + 1], 3).ToString("0.000"), Math.Round(AdlwpPoint[j * 2], 3).ToString("0.000") }) { Tag = pSTPoint }); } superGridControlCoords.Tag = Adlwp; TxbTXMJ.Text = Adlwp.Area.ToString("0.00"); } finally { } }
private AcadObject GetHX() { // tableLayoutPanel2.Enabled = false; AcadDocument AcadDoc = AcadApp.ActiveDocument; Microsoft.VisualBasic.Interaction.AppActivate(AcadApp.Caption); object returnObj, pickPoint; string pickPrompt = "获取入库红线"; try { AcadDoc.Utility.GetEntity(out returnObj, out pickPoint, pickPrompt); } catch { return(null); } AcadObject returnCADObj = (AcadObject)returnObj; if (returnCADObj.ObjectName == "AcDbPolyline") { AcadLWPolyline Adlwp = (AcadLWPolyline)returnCADObj; if (!Adlwp.Closed) { return(null); } GeoChange = true; return(returnCADObj); } //Microsoft.VisualBasic.Interaction.AppActivate(this.Text); return(null); }
private ISTGeometry ConvertDBObject(AcadObject pAcadObject) { ISTPointCollection pSTPointCollection = new STPolygonClass(); AcadLWPolyline Adlwp = (AcadLWPolyline)pAcadObject; double[] AdlwpPoint = (double[])Adlwp.Coordinates; int PointCount = AdlwpPoint.Length / 2; for (int j = 0; j < PointCount - 1; j++) { ISTPoint fromPoint = new STPointClass(); fromPoint.X = AdlwpPoint[j * 2]; fromPoint.Y = AdlwpPoint[j * 2 + 1]; ISTPoint toPoint = new STPointClass(); toPoint.X = AdlwpPoint[j * 2 + 2]; toPoint.Y = AdlwpPoint[j * 2 + 3]; if (Adlwp.GetBulge(j) != 0) //添加弧线转折现处理代码 { double Angle = Math.Atan(Adlwp.GetBulge(j)) * 4; string url = HR.Utility.CommonVariables.GetAppSetString("ConvertArcToPolyline"); string data = string.Format("Angle={0}&FromPointX={1}&FromPointY={2}&ToPointX={3}&ToPointY={4}&f=json" , Angle, fromPoint.X, fromPoint.Y, toPoint.X, toPoint.Y); string Request = PostData(url, data); if (Request.Contains("error")) { throw new Exception("调用曲线转折线服务异常"); } XmlNode pPointNode = Newtonsoft.Json.JsonConvert.DeserializeXmlNode(Request); string[] XYs = pPointNode.FirstChild.InnerText.TrimEnd().Split(';'); foreach (string XY in XYs) { string[] pXY = XY.Split(','); ISTPoint pPoint = new STPointClass(); try { pPoint.X = double.Parse(pXY[0]); pPoint.Y = double.Parse(pXY[1]); pSTPointCollection.AddPoint(pPoint); } catch { continue; } } } else { pSTPointCollection.AddPoint(fromPoint); } if (j == PointCount - 2) { pSTPointCollection.AddPoint(toPoint); } } ISTPoint FPoint = new STPointClass(); FPoint.X = AdlwpPoint[0]; FPoint.Y = AdlwpPoint[1]; pSTPointCollection.AddPoint(FPoint); return(pSTPointCollection); }
public static void Test() { AcadApplication AcadApp = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application.22"); AcadDocument doc = AcadApp.ActiveDocument; AcadModelSpace ms = doc.ModelSpace; AcadSelectionSets SelSets = doc.SelectionSets; //SelSets. AcadSelectionSet sles = SelSets.Add("Ssd"); sles.SelectOnScreen(); Console.WriteLine("{0}", sles.Count); List <AcadLWPolyline> curList = new List <AcadLWPolyline>(); foreach (var item in sles) { try { AcadLWPolyline PL = (AcadLWPolyline)item; if (PL.Closed) { curList.Add(PL); } } catch (Exception) { continue; } // Console.WriteLine("Length={0}", L.Length); } sles.Delete(); }
/// <summary> /// Crear un nuevo Polígono en 2D. /// </summary> /// <param name="VerticesList">Vertices del polígono. Ejemplo: (X1,Y1, X2,Y2, X3,Y3 X4,Y4)</param> /// <param name="Layer">Capa del Polígono</param> /// <param name="Closed">Establece si el polígono es cerrado</param> public static void AddPolyline2D(double[] VerticesList, string Layer, bool Closed = true) { if (AcadDoc != null) { AcadLWPolyline polyline = AcadDoc.ModelSpace.AddLightWeightPolyline(VerticesList); polyline.Layer = Layer; polyline.Closed = Closed; polyline.Update(); } }
/// <summary> /// Crear un nuevo Polígono en 2D con su respectivo Relleno (Hatch). /// </summary> /// <param name="VerticesList">Vértices del Polígono</param> /// <param name="Layer">Capa del Polígono.</param> /// <param name="Pattern">Tipo de Hatch (SOILD,ANGLE,ANS31,...)</param> /// <param name="LayerHatch">Capa del Hatch</param> /// <param name="ScaleHacth">Escala del Hatch</param> /// <param name="PatternScale">Factor de escala del tipo de Hatch</param> /// <param name="PatternAngle">Angulo del tipo de Hatch</param> public static void AddPolyline2D(double[] VerticesList, string Layer, string Pattern, string LayerHatch, double ScaleHacth, double PatternScale = 0.009, float PatternAngle = 45) { if (AcadDoc != null) { AcadLWPolyline polyline = AcadDoc.ModelSpace.AddLightWeightPolyline(VerticesList); polyline.Layer = Layer; polyline.Closed = true; AddHatch((AcadEntity)polyline, Pattern, LayerHatch, ScaleHacth, PatternScale, PatternAngle); polyline.Update(); } }
internal void FriendAdd(ref AcadLWPolyline robjAcadLWPolyline) { robjAcadLWPolyline.FriendLetNodeParentID = base.NodeID; checked { mlngEntityIndex++; AcadLWPolyline acadLWPolyline = robjAcadLWPolyline; mobjDictEntities.Add("K" + Conversions.ToString(acadLWPolyline.ObjectID), acadLWPolyline.ObjectID); acadLWPolyline = null; } }
/// <summary> /// Añadir un nuevo Poligono y un texto representado el largo de este. /// </summary> /// <param name="VerticesPolyline">Vertices del polígono. Ejemplo: (X1,Y1, X2,Y2, X3,Y3 X4,Y4)</param> /// <param name="LayerPolyline">Capa del Polígono</param> /// <param name="TextString">Texto adicional al largo del Polígono</param> /// <param name="PText_XYZ">Coordenadas del texto (X,Y,Z).</param> /// <param name="Width">Alto del Texto.</param> /// <param name="Height">Ancho del Texto.</param> /// <param name="LayerText">Capa del Texto.</param> /// <param name="StyleText">Estilo del Texto</param> /// <param name="Rotation">Ángulo de rotación del texto en grados </param> /// <param name="Width2">Ancho del cuadro de Texto.</param> public static void AddPolyline2DWithLengthText(double[] VerticesPolyline, string LayerPolyline, string TextString, double[] PText_XYZ, double Width, double Height, string LayerText, string StyleText, float Rotation, double Width2 = 1.3) { if (AcadDoc != null) { AcadLWPolyline polyline = AcadDoc.ModelSpace.AddLightWeightPolyline(VerticesPolyline); polyline.Layer = LayerPolyline; polyline.Update(); TextString += @"%<\AcObjProp Object(%<\_ObjId " + polyline.ObjectID + @">%).Length \f " + (char)(34) + "%lu2%pr2" + (char)(34) + ">%"; AddText(TextString, PText_XYZ, Width, Height, LayerText, StyleText, Rotation, Width2: Width2); } }
public static Polygon2D Polygen2D(this AcadLWPolyline acadLW) { double[] ff = acadLW.Coordinates; Point2D[] pts = new Point2D[ff.Length / 2]; for (int i = 0; i < ff.Length; i++) { if (i % 2 == 0) { pts[i / 2] = new Point2D(ff[i], ff[i + 1]); } } return(new Polygon2D(pts)); }
/// <summary> /// Añadir un nuevo Poligono y un texto representado el largo de este. /// </summary> /// <param name="VerticesPolyline">Vertices del polígono. [System.Drawing]</param> /// <param name="LayerPolyline">Capa del Polígono</param> /// <param name="TextString">Texto adicional al largo del Polígono</param> /// <param name="PText_XYZ">Coordenadas del texto (X,Y,Z).</param> /// <param name="Width">Alto del Texto.</param> /// <param name="Height">Ancho del Texto.</param> /// <param name="LayerText">Capa del Texto.</param> /// <param name="StyleText">Estilo del Texto</param> /// <param name="Rotation">Ángulo de rotación del texto en grados </param> /// <param name="Width2">Ancho del cuadro de Texto.</param> /// <param name="JustifyText">Justificación del Texto.</param> public static void AddPolyline2DWithLengthText(PointF[] VerticesPolyline, string LayerPolyline, string TextString, double[] PText_XYZ, double Width, double Height, string LayerText, string StyleText, float Rotation, double Width2 = 1.3, JustifyText JustifyText = JustifyText.Left) { try { if (AcadDoc != null) { AcadLWPolyline polyline = AcadDoc.ModelSpace.AddLightWeightPolyline(ConvertirPuntosEnDoubles(VerticesPolyline)); polyline.Layer = LayerPolyline; polyline.Update(); TextString += @"%<\AcObjProp Object(%<\_ObjId " + polyline.ObjectID + @">%).Length \f " + (char)(34) + "%lu2%pr2" + (char)(34) + ">%"; AddText(TextString, PText_XYZ, Width, Height, LayerText, StyleText, Rotation, Width2: Width2, JustifyText: JustifyText); } } catch { NotificadorErrores?.Invoke("Error inesperado."); } }
/// <summary> /// Crear un nuevo Polígono en 2D. /// </summary> /// <param name="VerticesList">Vertices del polígono. [System.Drawing]</param> /// <param name="Layer">Capa del Polígono</param> /// <param name="Closed">Establece si el polígono es cerrado</param> public static void AddPolyline2D(PointF[] VerticesList, string Layer, bool Closed = true) { try { if (AcadDoc != null) { AcadLWPolyline polyline = AcadDoc.ModelSpace.AddLightWeightPolyline(ConvertirPuntosEnDoubles(VerticesList)); polyline.Layer = Layer; polyline.Closed = Closed; polyline.Update(); } } catch { NotificadorErrores?.Invoke("Error inesperado."); } }
internal new void FriendQuit() { AcadLWPolyline dobjAcadLWPolyline2 = default(AcadLWPolyline); AcadDatabase dobjAcadDatabase2; if (mblnOpened) { if (mobjDictEntities.Count > 0) { dobjAcadDatabase2 = hwpDxf_Vars.pobjAcadDatabases.FriendGetItem(mlngDatabaseIndex); if (dobjAcadDatabase2 != null) { object dvarObjectIDs = RuntimeHelpers.GetObjectValue(hwpDxf_Functions.BkDXF_ValueCollectionToArray(mobjDictEntities.Values)); int num = Information.LBound((Array)dvarObjectIDs); int num2 = Information.UBound((Array)dvarObjectIDs); for (int dlngIdx = num; dlngIdx <= num2; dlngIdx = checked (dlngIdx + 1)) { AcadDatabase acadDatabase = dobjAcadDatabase2; double vdblObjectID = Conversions.ToDouble(NewLateBinding.LateIndexGet(dvarObjectIDs, new object[1] { dlngIdx }, null)); AcadObject robjAcadObject = dobjAcadLWPolyline2; string nrstrErrMsg = ""; bool flag = acadDatabase.FriendObjectIdToObject(vdblObjectID, ref robjAcadObject, ref nrstrErrMsg); dobjAcadLWPolyline2 = (AcadLWPolyline)robjAcadObject; if (flag) { dobjAcadLWPolyline2.FriendQuit(); dobjAcadLWPolyline2 = null; } } } } base.FriendQuit(); mobjDictEntities = null; mblnOpened = false; } dobjAcadLWPolyline2 = null; dobjAcadDatabase2 = null; }
internal object FriendGetMinMaxCoords() { object dvarItems = RuntimeHelpers.GetObjectValue(hwpDxf_Functions.BkDXF_ValueCollectionToArray(mobjDictEntities.Values)); int num = Information.LBound((Array)dvarItems); int num2 = Information.UBound((Array)dvarItems); bool dblnFirst = default(bool); object dvarMaxCoordX = default(object); object dvarMaxCoordY = default(object); object dvarMinCoordX = default(object); object dvarMinCoordY = default(object); AcadLWPolyline dobjObject = default(AcadLWPolyline); for (int dlngIdx = num; dlngIdx <= num2; dlngIdx = checked (dlngIdx + 1)) { double ddblCurObjectID = Conversions.ToDouble(NewLateBinding.LateIndexGet(dvarItems, new object[1] { dlngIdx }, null)); AcadDatabase database = Database; AcadObject robjAcadObject = dobjObject; string nrstrErrMsg = ""; database.FriendObjectIdToObject(ddblCurObjectID, ref robjAcadObject, ref nrstrErrMsg); dobjObject = (AcadLWPolyline)robjAcadObject; object dvarMinMaxCoords = RuntimeHelpers.GetObjectValue(dobjObject.MinMaxCoords); if (dvarMinMaxCoords == null) { continue; } if (!dblnFirst) { dvarMaxCoordX = RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(dvarMinMaxCoords, new object[1] { 0 }, null)); dvarMaxCoordY = RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(dvarMinMaxCoords, new object[1] { 1 }, null)); dvarMinCoordX = RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(dvarMinMaxCoords, new object[1] { 2 }, null)); dvarMinCoordY = RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(dvarMinMaxCoords, new object[1] { 3 }, null)); dblnFirst = true; continue; } if (Operators.ConditionalCompareObjectGreater(NewLateBinding.LateIndexGet(dvarMinMaxCoords, new object[1] { 0 }, null), dvarMaxCoordX, TextCompare: false)) { dvarMaxCoordX = RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(dvarMinMaxCoords, new object[1] { 0 }, null)); } if (Operators.ConditionalCompareObjectGreater(NewLateBinding.LateIndexGet(dvarMinMaxCoords, new object[1] { 1 }, null), dvarMaxCoordY, TextCompare: false)) { dvarMaxCoordY = RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(dvarMinMaxCoords, new object[1] { 1 }, null)); } if (Operators.ConditionalCompareObjectLess(NewLateBinding.LateIndexGet(dvarMinMaxCoords, new object[1] { 2 }, null), dvarMinCoordX, TextCompare: false)) { dvarMinCoordX = RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(dvarMinMaxCoords, new object[1] { 2 }, null)); } if (Operators.ConditionalCompareObjectLess(NewLateBinding.LateIndexGet(dvarMinMaxCoords, new object[1] { 3 }, null), dvarMinCoordY, TextCompare: false)) { dvarMinCoordY = RuntimeHelpers.GetObjectValue(NewLateBinding.LateIndexGet(dvarMinMaxCoords, new object[1] { 3 }, null)); } } object FriendGetMinMaxCoords = (!dblnFirst) ? null : new object[4] { dvarMaxCoordX, dvarMaxCoordY, dvarMinCoordX, dvarMinCoordY }; dobjObject = null; return(FriendGetMinMaxCoords); }
private void DWGLoad() { AcadApplication acadApp = new AcadApplicationClass(); IGeometryCollection pGeometryCollection = new PolygonClass(); foreach (DataGridViewRow eRow in dataGridView1.Rows) { if (eRow.Cells[0].Value != null && (bool)eRow.Cells[0].Value == true) { if (eRow.Cells["FileSuffix"].Value.ToString().ToLower() == "dwg") { object o = Type.Missing; string strFileName = eRow.Cells["FilePath"].Value.ToString(); AcadDocument acadDoc = acadApp.Documents.Open(strFileName, true, null); System.Windows.Forms.Application.DoEvents(); AcadLayer acadLyer = acadDoc.Layers.Item(1); AcadSelectionSet ssetObj = acadDoc.SelectionSets.Add("FWX"); short[] vFilterType = null; object[] vFilterData = null; vFilterType = new short[1]; vFilterType[0] = 8; vFilterData = new object[1]; vFilterData[0] = "FWX"; //ISegmentCollection pSegmentCollection = new RingClass(); //pSegmentCollection.AddSegment() ssetObj.Select(AcSelect.acSelectionSetAll, null, null, vFilterType, vFilterData); foreach (AcadObject eEntity in ssetObj) { if (eEntity.ObjectName == "AcDbPolyline") { AcadLWPolyline pPline = (AcadLWPolyline)eEntity; double[] polyLinePoint; polyLinePoint = (Double[])pPline.Coordinates; int i, pointCount = polyLinePoint.Length / 2; IPointCollection pPointColl = new RingClass(); for (i = 0; i < polyLinePoint.Length - 1; i = i + 2) { IPoint pPoint = new PointClass(); pPoint.X = polyLinePoint[i]; pPoint.Y = polyLinePoint[i + 1]; pPointColl.AddPoint(pPoint, ref o, ref o); } pGeometryCollection.AddGeometry(pPointColl as IRing, ref o, ref o); } } } else if (eRow.Cells["FileSuffix"].Value.ToString().ToLower() == "txt") { object o = Type.Missing; string strFileName = eRow.Cells["FilePath"].Value.ToString(); m_strPointArray.Clear(); StreamReader ReadFile = new StreamReader(strFileName, System.Text.Encoding.Default); while (!ReadFile.EndOfStream) { m_strPointArray.Add(ReadFile.ReadLine()); } ReadFile.Close(); IPointCollection pPointColl = new RingClass(); for (int i = 0; i < m_strPointArray.Count; i++) { if (m_strPointArray[i].StartsWith("J")) { string[] split = m_strPointArray[i].Split(new Char[] { ',', ',' }); IPoint pPoint = new PointClass(); pPoint.X = Convert.ToDouble(split[2]); pPoint.Y = Convert.ToDouble(split[3]); pPointColl.AddPoint(pPoint, ref o, ref o); } } pGeometryCollection.AddGeometry(pPointColl as IRing, ref o, ref o); } } } acadApp.Quit(); //DWGLoaded(this.m_Popfrm, new EventArgs());//引发完成事件,有异常待研究 System.Windows.Forms.Application.DoEvents(); if (pGeometryCollection.GeometryCount > 0) { m_pFeature = EngineFuntions.m_Layer_BusStation.FeatureClass.CreateFeature(); m_pFeature.Shape = pGeometryCollection as IPolygon; IFields fields = m_pFeature.Fields; int nIndex = fields.FindField("任务号"); m_pFeature.set_Value(nIndex, m_strFolder.Substring(m_strFolder.LastIndexOf("\\") + 1)); m_pFeature.Store(); EngineFuntions.ZoomTo(m_pFeature.ShapeCopy); } else { m_pFeature = null; } }
public static void Test() { AcadApplication AcadApp = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application.19"); AcadDocument doc = AcadApp.ActiveDocument; AcadModelSpace ms = doc.ModelSpace; AcadSelectionSets SelSets = doc.SelectionSets; //SelSets. Console.WriteLine("请Tony选择中心线."); AcadSelectionSet cl = SelSets.Add(new Random().Next(1000, 9999).ToString()); cl.Clear(); cl.SelectOnScreen(); Console.WriteLine("中心线选择完成."); Console.WriteLine("请Tony选择预应力筋."); AcadSelectionSet preBars = SelSets.Add(new Random().Next(1000, 9999).ToString()); preBars.Clear(); preBars.SelectOnScreen(); Console.WriteLine("预应力钢筋选择完成,共计{0}根.", preBars.Count); Console.WriteLine("请Tony选择方向线."); AcadSelectionSet dirL = SelSets.Add(new Random().Next(1000, 9999).ToString()); dirL.Clear(); dirL.SelectOnScreen(); List <AcadLine> NewDirLSet = new List <AcadLine>(); foreach (var item in dirL) { AcadLine DirLine = (AcadLine)item; NewDirLSet.Add(DirLine); } NewDirLSet.Sort((x, y) => x.GetMidX().CompareTo(y.GetMidX())); Console.WriteLine("预应力钢筋选择完成,共计{0}根.", dirL.Count); AcadLWPolyline CLine = (AcadLWPolyline)cl.Item(0); FileStream fs = new FileStream("D:\\TonyReadMe.csv", FileMode.Create); StreamWriter sw = new StreamWriter(fs); foreach (var bar in preBars) { sw.Flush(); sw.Write("\n{0},", bar.ToString()); //Console.WriteLine(bar.ToString()); AcadLWPolyline PL = (AcadLWPolyline)bar; foreach (var item in NewDirLSet) { double[] p1, p2; double dist; try { AcadLine DirLine = item; p1 = DirLine.IntersectWith(CLine, AcExtendOption.acExtendThisEntity); p2 = DirLine.IntersectWith(PL, AcExtendOption.acExtendThisEntity); if (p1.Count() == 0 || p2.Count() == 0) { continue; } dist = Math.Pow((p1[0] - p2[0]), 2) + Math.Pow((p1[1] - p2[1]), 2) + Math.Pow((p1[2] - p2[2]), 2); dist = Math.Sqrt(dist); int fx = p1[1] < p2[1] ? 1 : -1; //Console.Write("{0:F0},",dist); sw.Write("{0:F0},", fx * dist * 1000.0); } catch (Exception) { throw; } } // Console.WriteLine("Length={0}", L.Length); } cl.Delete(); preBars.Delete(); dirL.Delete(); sw.Close(); fs.Close(); }
public static void BkAcadEntity_RemoveReactorsID(ref AcadEntity robjAcadEntity, double vdblObjectID) { switch (robjAcadEntity.ObjectName) { case "AcDbEntity": { AcadEntity dobjAcadEntity2 = robjAcadEntity; dobjAcadEntity2.FriendRemoveReactorsID(vdblObjectID); dobjAcadEntity2 = null; break; } case "AcDbFace": { Acad3DFace dobjAcad3DFace2 = (Acad3DFace)robjAcadEntity; dobjAcad3DFace2.FriendRemoveReactorsID(vdblObjectID); dobjAcad3DFace2 = null; break; } case "AcDb3dSolid": { Acad3DSolid dobjAcad3DSolid2 = (Acad3DSolid)robjAcadEntity; dobjAcad3DSolid2.FriendRemoveReactorsID(vdblObjectID); dobjAcad3DSolid2 = null; break; } case "AcDbAttributeDefinition": { AcadAttribute dobjAcadAttribute2 = (AcadAttribute)robjAcadEntity; dobjAcadAttribute2.FriendRemoveReactorsID(vdblObjectID); dobjAcadAttribute2 = null; break; } case "AcDbAttribute": { AcadAttributeReference dobjAcadAttributeReference2 = (AcadAttributeReference)robjAcadEntity; dobjAcadAttributeReference2.FriendRemoveReactorsID(vdblObjectID); dobjAcadAttributeReference2 = null; break; } case "AcDbBlockEnd": { AcadBlockEnd dobjAcadBlockEnd2 = (AcadBlockEnd)robjAcadEntity; dobjAcadBlockEnd2.FriendRemoveReactorsID(vdblObjectID); dobjAcadBlockEnd2 = null; break; } case "AcDbBlockBegin": { AcadBlockBegin dobjAcadBlockBegin2 = (AcadBlockBegin)robjAcadEntity; dobjAcadBlockBegin2.FriendRemoveReactorsID(vdblObjectID); dobjAcadBlockBegin2 = null; break; } case "AcDbBlockReference": { AcadBlockReference dobjAcadBlockReference2 = (AcadBlockReference)robjAcadEntity; dobjAcadBlockReference2.FriendRemoveReactorsID(vdblObjectID); dobjAcadBlockReference2 = null; break; } case "AcDbCurve": { AcadCurve dobjAcadCurve2 = (AcadCurve)robjAcadEntity; dobjAcadCurve2.FriendRemoveReactorsID(vdblObjectID); dobjAcadCurve2 = null; break; } case "AcDb3dPolyline": { Acad3DPolyline dobjAcad3DPolyline2 = (Acad3DPolyline)robjAcadEntity; dobjAcad3DPolyline2.FriendRemoveReactorsID(vdblObjectID); dobjAcad3DPolyline2 = null; break; } case "AcDbArc": { AcadArc dobjAcadArc2 = (AcadArc)robjAcadEntity; dobjAcadArc2.FriendRemoveReactorsID(vdblObjectID); dobjAcadArc2 = null; break; } case "AcDbCircle": { AcadCircle dobjAcadCircle2 = (AcadCircle)robjAcadEntity; dobjAcadCircle2.FriendRemoveReactorsID(vdblObjectID); dobjAcadCircle2 = null; break; } case "AcDbEllipse": { AcadEllipse dobjAcadEllipse2 = (AcadEllipse)robjAcadEntity; dobjAcadEllipse2.FriendRemoveReactorsID(vdblObjectID); dobjAcadEllipse2 = null; break; } case "AcDbLeader": { AcadLeader dobjAcadLeader2 = (AcadLeader)robjAcadEntity; dobjAcadLeader2.FriendRemoveReactorsID(vdblObjectID); dobjAcadLeader2 = null; break; } case "AcDbLine": { AcadLine dobjAcadLine2 = (AcadLine)robjAcadEntity; dobjAcadLine2.FriendRemoveReactorsID(vdblObjectID); dobjAcadLine2 = null; break; } case "AcDbPolyline": { AcadLWPolyline dobjAcadLWPolyline2 = (AcadLWPolyline)robjAcadEntity; dobjAcadLWPolyline2.FriendRemoveReactorsID(vdblObjectID); dobjAcadLWPolyline2 = null; break; } case "AcDb2dPolyline": { AcadPolyline dobjAcadPolyline2 = (AcadPolyline)robjAcadEntity; dobjAcadPolyline2.FriendRemoveReactorsID(vdblObjectID); dobjAcadPolyline2 = null; break; } case "AcDb2dVertex": { Acad2DVertex dobjAcad2DVertex2 = (Acad2DVertex)robjAcadEntity; dobjAcad2DVertex2.FriendRemoveReactorsID(vdblObjectID); dobjAcad2DVertex2 = null; break; } case "AcDb3dPolylineVertex": { Acad3DVertex dobjAcad3DVertex2 = (Acad3DVertex)robjAcadEntity; dobjAcad3DVertex2.FriendRemoveReactorsID(vdblObjectID); dobjAcad3DVertex2 = null; break; } case "AcDbPolygonMeshVertex": { AcadPolygonMeshVertex dobjAcadPolygonMeshVertex2 = (AcadPolygonMeshVertex)robjAcadEntity; dobjAcadPolygonMeshVertex2.FriendRemoveReactorsID(vdblObjectID); dobjAcadPolygonMeshVertex2 = null; break; } case "AcDbPolyFaceMeshVertex": { AcadPolyfaceMeshVertex dobjAcadPolyfaceMeshVertex2 = (AcadPolyfaceMeshVertex)robjAcadEntity; dobjAcadPolyfaceMeshVertex2.FriendRemoveReactorsID(vdblObjectID); dobjAcadPolyfaceMeshVertex2 = null; break; } case "AcDbFaceRecord": { AcadFaceRecord dobjAcadFaceRecord2 = (AcadFaceRecord)robjAcadEntity; dobjAcadFaceRecord2.FriendRemoveReactorsID(vdblObjectID); dobjAcadFaceRecord2 = null; break; } case "AcDbRay": { AcadRay dobjAcadRay2 = (AcadRay)robjAcadEntity; dobjAcadRay2.FriendRemoveReactorsID(vdblObjectID); dobjAcadRay2 = null; break; } case "AcDbSpline": { AcadSpline dobjAcadSpline2 = (AcadSpline)robjAcadEntity; dobjAcadSpline2.FriendRemoveReactorsID(vdblObjectID); dobjAcadSpline2 = null; break; } case "AcDbXline": { AcadXline dobjAcadXline2 = (AcadXline)robjAcadEntity; dobjAcadXline2.FriendRemoveReactorsID(vdblObjectID); dobjAcadXline2 = null; break; } case "AcDbHatch": { AcadHatch dobjAcadHatch2 = (AcadHatch)robjAcadEntity; dobjAcadHatch2.FriendRemoveReactorsID(vdblObjectID); dobjAcadHatch2 = null; break; } case "AcDbMInsertBlock": { AcadMInsertBlock dobjAcadMInsertBlock2 = (AcadMInsertBlock)robjAcadEntity; dobjAcadMInsertBlock2.FriendRemoveReactorsID(vdblObjectID); dobjAcadMInsertBlock2 = null; break; } case "AcDbMLine": { AcadMLine dobjAcadMLine2 = (AcadMLine)robjAcadEntity; dobjAcadMLine2.FriendRemoveReactorsID(vdblObjectID); dobjAcadMLine2 = null; break; } case "AcDbMText": { AcadMText dobjAcadMText2 = (AcadMText)robjAcadEntity; dobjAcadMText2.FriendRemoveReactorsID(vdblObjectID); dobjAcadMText2 = null; break; } case "AcDbPoint": { AcadPoint dobjAcadPoint2 = (AcadPoint)robjAcadEntity; dobjAcadPoint2.FriendRemoveReactorsID(vdblObjectID); dobjAcadPoint2 = null; break; } case "AcDbPolyFaceMesh": { AcadPolyfaceMesh dobjAcadPolyfaceMesh2 = (AcadPolyfaceMesh)robjAcadEntity; dobjAcadPolyfaceMesh2.FriendRemoveReactorsID(vdblObjectID); dobjAcadPolyfaceMesh2 = null; break; } case "AcDbPolygonMesh": { AcadPolygonMesh dobjAcadPolygonMesh2 = (AcadPolygonMesh)robjAcadEntity; dobjAcadPolygonMesh2.FriendRemoveReactorsID(vdblObjectID); dobjAcadPolygonMesh2 = null; break; } case "AcDbSequenceEnd": { AcadSequenceEnd dobjAcadSequenceEnd2 = (AcadSequenceEnd)robjAcadEntity; dobjAcadSequenceEnd2.FriendRemoveReactorsID(vdblObjectID); dobjAcadSequenceEnd2 = null; break; } case "AcDbShape": { AcadShape dobjAcadShape2 = (AcadShape)robjAcadEntity; dobjAcadShape2.FriendRemoveReactorsID(vdblObjectID); dobjAcadShape2 = null; break; } case "AcDbText": { AcadText dobjAcadText2 = (AcadText)robjAcadEntity; dobjAcadText2.FriendRemoveReactorsID(vdblObjectID); dobjAcadText2 = null; break; } case "AcDbTrace": if (Operators.CompareString(robjAcadEntity.DXFName, "TRACE", TextCompare: false) == 0) { AcadTrace dobjAcadTrace2 = (AcadTrace)robjAcadEntity; dobjAcadTrace2.FriendRemoveReactorsID(vdblObjectID); dobjAcadTrace2 = null; } else { AcadSolid dobjAcadSolid2 = (AcadSolid)robjAcadEntity; dobjAcadSolid2.FriendRemoveReactorsID(vdblObjectID); dobjAcadSolid2 = null; } break; default: try { AcadUnknownEnt dobjAcadUnknownEnt2 = (AcadUnknownEnt)robjAcadEntity; dobjAcadUnknownEnt2.FriendRemoveReactorsID(vdblObjectID); dobjAcadUnknownEnt2 = null; } catch (Exception ex2) { ProjectData.SetProjectError(ex2); Exception ex = ex2; ProjectData.ClearProjectError(); } break; } }
public AcadLWPolyline Item(object vvarValue) { if (mobjDictEntities.Count > 0) { AcadDatabase dobjAcadDatabase = hwpDxf_Vars.pobjAcadDatabases.FriendGetItem(mlngDatabaseIndex); if (dobjAcadDatabase != null) { AcadLWPolyline dobjAcadLWPolyline4 = default(AcadLWPolyline); switch (Information.VarType(RuntimeHelpers.GetObjectValue(vvarValue))) { case VariantType.Double: { double ddblObjectID2 = Conversions.ToDouble(vvarValue); if (mobjDictEntities.ContainsKey("K" + Conversions.ToString(ddblObjectID2))) { double ddblCurObjectID2 = Conversions.ToDouble(mobjDictEntities["K" + Conversions.ToString(ddblObjectID2)]); double vdblObjectID3 = ddblCurObjectID2; AcadObject robjAcadObject = dobjAcadLWPolyline4; string nrstrErrMsg = ""; bool flag = dobjAcadDatabase.FriendObjectIdToObject(vdblObjectID3, ref robjAcadObject, ref nrstrErrMsg); dobjAcadLWPolyline4 = (AcadLWPolyline)robjAcadObject; if (flag) { return(dobjAcadLWPolyline4); } } break; } case VariantType.String: { string vstrHexNum = Conversions.ToString(vvarValue); int nrlngErrNum = 0; string nrstrErrMsg = ""; if (!hwpDxf_Functions.BkDXF_ValidHexNum(vstrHexNum, ref nrlngErrNum, ref nrstrErrMsg)) { break; } double ddblObjectID2 = hwpDxf_Functions.BkDXF_HexToDbl(Conversions.ToString(vvarValue)); if (mobjDictEntities.ContainsKey("K" + Conversions.ToString(ddblObjectID2))) { double ddblCurObjectID2 = Conversions.ToDouble(mobjDictEntities["K" + Conversions.ToString(ddblObjectID2)]); double vdblObjectID2 = ddblCurObjectID2; AcadObject robjAcadObject = dobjAcadLWPolyline4; nrstrErrMsg = ""; bool flag = dobjAcadDatabase.FriendObjectIdToObject(vdblObjectID2, ref robjAcadObject, ref nrstrErrMsg); dobjAcadLWPolyline4 = (AcadLWPolyline)robjAcadObject; if (flag) { return(dobjAcadLWPolyline4); } } break; } case VariantType.Short: case VariantType.Integer: { int dlngIndex = Conversions.ToInteger(vvarValue); if ((dlngIndex >= 0) & (dlngIndex < mobjDictEntities.Count)) { object dvarObjectIDs = RuntimeHelpers.GetObjectValue(hwpDxf_Functions.BkDXF_ValueCollectionToArray(mobjDictEntities.Values)); double vdblObjectID = Conversions.ToDouble(NewLateBinding.LateIndexGet(dvarObjectIDs, new object[1] { dlngIndex }, null)); AcadObject robjAcadObject = dobjAcadLWPolyline4; string nrstrErrMsg = ""; bool flag = dobjAcadDatabase.FriendObjectIdToObject(vdblObjectID, ref robjAcadObject, ref nrstrErrMsg); dobjAcadLWPolyline4 = (AcadLWPolyline)robjAcadObject; if (flag) { return(dobjAcadLWPolyline4); } } break; } } } } AcadLWPolyline Item = default(AcadLWPolyline); return(Item); }