• AE读取CAD图层包括注记


            public override void FillDatabase(Teigha.DatabaseServices.Database pDb)
            {
                IFeatureClassContainer pFeatureClassContainer = pCADFeatureDataset as IFeatureClassContainer;
                IEnumFeatureClass pEnumFeatureClass = pFeatureClassContainer.Classes;
                IFeatureClass pFeatureClass = pEnumFeatureClass.Next();
               
                while (pFeatureClass != null)
                {               
                    LoadLayer(pFeatureClass, pDb);
                    Debug.WriteLine(pFeatureClass.FeatureType.ToString() + "-" + pFeatureClass.AliasName + "-" + pFeatureClass.ShapeType.ToString());
                    pFeatureClass = pEnumFeatureClass.Next();
                }
            }
            private void LoadLayer(IFeatureClass pFeatureClass, Teigha.DatabaseServices.Database pDb)
            {
    
                int indx = pFeatureClass.FindField("Layer");
                int idxColor = pFeatureClass.FindField("Color");
                int idxText = pFeatureClass.FindField("TxtMemo");
                int idxHandle = pFeatureClass.FindField("Handle");
               
                pCursor = pFeatureClass.Search(null, false);
                IFeature pFeature2 = pCursor.NextFeature();
                //写入点线
              
              if (pFeatureClass.FeatureType == esriFeatureType.esriFTCoverageAnnotation)
                    {
                        while (pFeature2 != null)
                        {
                            string geoName = "C_" + pFeature2.get_Value(indx).ToString();
                            string sAnnotation = pFeature2.get_Value(idxText).ToString();
                            IPoint pPoint = pFeature2.Shape as IPoint;
                            double x = 0, y = 0;
                            pPoint.QueryCoords(out x, out y);
                            Point3d pt = new Point3d(x, y, 0);
                            addTextEnt(modelSpaceId, pt, pt, sAnnotation, 2, TextHorizontalMode.TextLeft, TextVerticalMode.TextTop, LayerNames[geoName], ttfStyleId);
                            pFeature2 = pCursor.NextFeature();
                        }
                    }
                    else
                    {
                        if (pFeatureClass.ShapeType == esriGeometryType.esriGeometryPoint)
                        {
                            while (pFeature2 != null)
                            {
                                IPoint pt = pFeature2.Shape as IPoint;
                                pFeature2 = pCursor.NextFeature();
                            }
                        }
                        else if (pFeatureClass.ShapeType == esriGeometryType.esriGeometryPolyline)
                        {
                            short shtColor = 1;
                            while ((pFeature2 = pCursor.NextFeature()) != null)
                            {
                                string geoName = "C_" + pFeature2.get_Value(indx).ToString();
                            }
                        }
                        else if (pFeatureClass.ShapeType == esriGeometryType.esriGeometryPolygon)
                        {
                            short shtColor = 1;
                            while ((pFeature2 = pCursor.NextFeature()) != null)
                            {
                                string geoName = "C_" + pFeature2.get_Value(indx).ToString();                           
                            }
                        }
                }
               System.Runtime.InteropServices.Marshal.ReleaseComObject(pCursor);
                pCursor = null;
            }
        }


     

  • 相关阅读:
    本地时间与UTC(世界协调时间)的转换
    windows共享在linux下挂载
    日期中带的 T 是什么意思
    FCBU喜马拉雅音频批量下载器
    C#使用[CefSharp]Chrome浏览器(1)安装
    云锵投资 2022 年 2 月简报
    云锵投资 2022 年 1 月简报
    MySQL分组(group by)取最大值、最小值
    tabel布局中给tr加border边框
    ant 使用指南
  • 原文地址:https://www.cnblogs.com/yhlx125/p/3511215.html
Copyright © 2020-2023  润新知