定义全局变量
private string worksapcePath;
private string fileName;
在(1)的基础上添加一个button按钮和一个richtextbox控件,并在button按钮单击事件下添加如下代码:
private void button1_Click(object sender, EventArgs e)
{
if (worksapcePath == "")
{
MessageBox.Show("未打开CAD文件");
return;
}
//设置 worksapceFactory
IWorkspaceFactory pWorkspaceFactory = new
CadWorkspaceFactory();
//打开这个工作空间
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile
(worksapcePath, 0);
//设置 feature workspace
IFeatureWorkspace pFeatureWorkspace =
pWorkspace as IFeatureWorkspace;
//打开这个 Feature Class
IFeatureClass pFeatureClass =
pFeatureWorkspace.OpenFeatureClass(fileName + ":Polyline");
//此处的Polyline 指的是arcgis中 shape(point,polyline等)类型的一种
IFeatureLayer pFeatLayer = new CadFeatureLayerClass() as IFeatureLayer;
pFeatLayer.FeatureClass = pFeatureClass;
//将这个 Feature layer 赋值给 cadDrawingLayer
ICadDrawingLayers pCadDwgLayers =
(ICadDrawingLayers)pFeatLayer;
richTextBox1.Visible = true;
richTextBox1.SelectedText=
"图层总数为:" + pCadDwgLayers.DrawingLayerCount+"\n";
short i;
for (i = 0; i <= pCadDwgLayers.DrawingLayerCount - 1; i++)
{
richTextBox1.SelectedText =
"图层名称:" + pCadDwgLayers.get_DrawingLayerName(i) + "\n"
+ "图层可见性:" + pCadDwgLayers.get_DrawingLayerVisible(i) + "\n"
+ "初始图层可见性:" + pCadDwgLayers.get_OriginalDrawingLayerVisible(i) + "\n";
}
}
运行结果如图所示:
注:图层0 是点对象,图层1是云线对象。