本文帶大家初步了解下Solidworks的圖紙對象Sheet溅固。如下圖sheet1,與圖紙2分別是Sheet對象的一個實例。通過圖紙對象,我們可以獲取與設(shè)置圖紙相關(guān)的信息集币,也能獲得圖紙上的各類元素,如視圖寒矿,表格等等蹋半。
image.png
1.實例分析:圖紙對象的獲得
public static void GetSheet(ModelDoc2 DwgDoc)
{
Sheet SwSheet = ((DrawingDoc)DwgDoc).GetCurrentSheet();
System.Windows.MessageBox.Show("當(dāng)前激活圖紙:" + SwSheet.GetName());
((DrawingDoc)DwgDoc).ActivateSheet("圖紙2");//激活圖紙
SwSheet = ((DrawingDoc)DwgDoc).GetCurrentSheet();
System.Windows.MessageBox.Show("當(dāng)前激活圖紙:" + SwSheet.GetName());
SwSheet.SetName("圖紙X");
DwgDoc.EditRebuild3();
System.Windows.MessageBox.Show("當(dāng)前激活圖紙:" + SwSheet.GetName());
}
我們可以通過工程圖文檔對象的GetCurrentSheet與ActivateSheet方法獲得當(dāng)前激活的視圖以及切換激活其他視圖。
2.實例分析:獲取圖紙信息
public static void GetSheetProp(ModelDoc2 DwgDoc)
{
double h = 0;
double w = 0;
StringBuilder sb = new StringBuilder("圖紙詳情:\r\n");
sb.Append("---------");
string[] sns = ((DrawingDoc)DwgDoc).GetSheetNames();
foreach (string sn in sns)
{
Sheet SwSheet = ((DrawingDoc)DwgDoc).Sheet[sn];
if (SwSheet != null)
{
sb.Append("圖紙名稱:" + SwSheet.GetName() + "\r\n");
sb.Append("圖紙格式特征名:" + SwSheet.GetSheetFormatName() + "\r\n");
sb.Append("圖紙格式模板:" + SwSheet.GetTemplateName() + "\r\n");
sb.Append("圖紙屬性視圖:" + SwSheet.CustomPropertyView + "\r\n");
sb.Append("圖紙比例:" + SwSheet.GetTemplateName() + "\r\n");
SwSheet.GetSize(ref w, ref h);
sb.Append("圖紙大小:" + w + "*" + h + "\r\n");
sb.Append("---------");
}
}
System.Windows.MessageBox.Show(sb.ToString().Trim());
}
運行效果如下:
image.png
3.實例分析:獲取圖紙中的視圖
public static void GetSheetViews(ModelDoc2 DwgDoc)
{
StringBuilder sb = new StringBuilder("圖紙詳情:\r\n");
sb.Append("---------\r\n");
string[] sns = ((DrawingDoc)DwgDoc).GetSheetNames();
foreach (string sn in sns)
{
Sheet SwSheet = ((DrawingDoc)DwgDoc).Sheet[sn];
sb.Append("圖紙"+ SwSheet.GetName()+"包含如下視圖:\r\n");
if (SwSheet != null)
{
object[] ObjViews = SwSheet.GetViews();
foreach (object ObjView in ObjViews)
{
if (ObjView is View)
{
string aa = ((View)ObjView).Name;
if (aa.Contains("*") == false)
{
sb.Append(aa + "\r\n");
}
}
}
}
sb.Append("---------\r\n");
}
System.Windows.MessageBox.Show(sb.ToString().Trim());
}
運行效果如下:
image.png
如下圖為本文的示例程序账阻,源碼可上我的Github下載匪蟀。操作步驟可見文章《公眾號源碼Github分享庫》 , 實例序號20
image.png