Delphi版 MapControl加载CAD文件

var
   qCadWorkFactory: IWorkspaceFactory;
   qWorkSpace: IFeatureWorkspace;
   qFeatDataset: IFeatureDataset;
   qFeatClassContainer: IFeatureClassContainer; //要素类 容器
   qFeatClass: IFeatureClass;
   qfeatLayer: IFeatureLayer;
   I        : Integer;
begin
   qCadWorkFactory := CoCadWorkspaceFactory.Create as IWorkspaceFactory;
   qWorkSpace := qCadWorkFactory.OpenFromFile('D:"KaiFaZhe', 0) as IFeatureWorkspace;
   qFeatDataset := qWorkSpace.OpenFeatureDataset('test.dwg');
   qFeatClassContainer := qFeatDataset as IFeatureClassContainer;
   for I := 0 to qFeatClassContainer.ClassCount - 1 do
   begin
      qFeatClass := qFeatClassContainer.Class_[i];
      if qFeatClass.FeatureType = esriFTCoverageAnnotation then
      begin
         qfeatLayer := CoCadAnnotationLayer.Create as IFeatureLayer;
      end
      else
      begin
         qfeatLayer := CoFeatureLayer.Create as IFeatureLayer;
      end;
      qfeatLayer.Name := qFeatClass.AliasName;
      qfeatLayer.FeatureClass := qFeatClass;
      aeMapOne.AddLayer(qfeatLayer, aeMapOne.LayerCount);
   end;
end;
posted on 2009-03-03 23:55  知真道  阅读(301)  评论(0)    收藏  举报