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;
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;
浙公网安备 33010602011771号