工程圖視圖對(duì)象View

上一文中介紹了工程圖中的圖紙對(duì)象,本文接著介紹工程圖中的視圖對(duì)象View。工程圖視圖中的各類(lèi)元素,我們都可以通過(guò)視圖對(duì)象View間接獲得。

image.png

實(shí)例1:工程圖視圖對(duì)象獲取

在上一文《工程圖圖紙對(duì)象Sheet》的最后一例中使用了Sheet.GetViews方法遍歷所有視圖。但這種方法的效率會(huì)比較低,如果我們已知視圖名稱(chēng)可以通過(guò)本例更快捷地獲得視圖對(duì)象。

public static View GetViewByName(ModelDoc2 SwDoc, string ViewName, bool showmesg)
{
    StringBuilder Sb = new StringBuilder();
    Feature SwFeat = ((DrawingDoc)SwDoc).FeatureByName(ViewName);
    Sb.Append("特征名:" + SwFeat.Name + "\r\n");
    Sb.Append("特征類(lèi)型:" + SwFeat.GetTypeName2() + "\r\n");
    View SwView = SwFeat.GetSpecificFeature2();
    Sb.Append("視圖名稱(chēng):" + SwView.Name + "\r\n");
    if (showmesg)
    {
          System.Windows.MessageBox.Show(Sb.ToString().Trim());
    }
    return SwView;
}

如果我們已知視圖名稱(chēng),我們可以借助特征對(duì)象,直接獲得所需視圖對(duì)象。運(yùn)行效果如下圖:

image.png

實(shí)例2:工程視圖信息獲取

通過(guò)視圖對(duì)象可以獲得與操作視圖中的很多元素,比如尺寸,注解,材料表,這里先介紹下視圖的一些常用操作,其他元素會(huì)在后面的文章中一一介紹。

public static void GetViewInfo(ModelDoc2 SwDoc, string ViewName)
{
      StringBuilder Sb = new StringBuilder("視圖信息如下:\r\n");
      View SwView = GetViewByName(SwDoc, ViewName, false);//獲得視圖
      Sb.Append("角度:" + SwView.Angle.ToString().Trim() + "\r\n");
      Sb.Append("顯示狀態(tài):" + SwView.DisplayState.ToString().Trim() + "\r\n");
      double[] pos = SwView.Position;
      Sb.Append("位置:X=" + pos[0].ToString().Trim() + ",Y=" + pos[1].ToString().Trim() + "\r\n");
      Sb.Append("引用配置:" + SwView.ReferencedConfiguration.ToString().Trim() + "\r\n");
      if (SwView.ReferencedDocument is ModelDoc2)
      {
           Sb.Append("參考文檔:" + ((ModelDoc2)SwView.ReferencedDocument).GetPathName().ToString().Trim() + "\r\n");
      }
      Sb.Append("視圖部件:" + SwView.RootDrawingComponent.Name.ToString().Trim() + "\r\n");//指工程圖該視圖下面引用的部件名,有-1,-2區(qū)分,比如對(duì)該視圖這部件中局部隱藏
      Sb.Append("視圖比例:" + SwView.ScaleDecimal.ToString().Trim() + "\r\n");
      Sb.Append("所在圖紙:" + SwView.Sheet.GetName().ToString().Trim() + "\r\n");
      Sb.Append("視圖朝向:" + SwView.GetOrientationName().ToString().Trim() + "\r\n");
      System.Windows.MessageBox.Show(Sb.ToString().Trim());
 }

運(yùn)行效果如下圖:

image.png

實(shí)例3:視圖的修改

本例中主要介紹一些工程圖出圖時(shí),視圖的常用操作,更為詳細(xì)的操作將在后續(xù)文章中進(jìn)行深化

public static void ChangeView(ModelDoc2 SwDoc, string ViewName)
{
     View SwView = GetViewByName(SwDoc, ViewName, false);//獲得視圖
     SwView.Position = new double[] { 0, 0 };
     SwView.Angle = 45 * Math.PI / 180.0;//弧度
     SwView.ScaleDecimal = SwView.ScaleDecimal * 2;//比例比原來(lái)擴(kuò)大2倍
     SwDoc.EditRebuild3();//改變
     SwView.FocusLocked = true;//視圖鎖焦
     SwView.PositionLocked = true;//視圖位置鎖定不可被移動(dòng)
     SwView.SetName2(ViewName + "A");//重命名視圖
     System.Windows.MessageBox.Show("執(zhí)行成功!");
}

運(yùn)行效果如下圖:


image.png

如下圖為本文的示例程序,源碼可上我的Github下載。操作步驟可見(jiàn)文章《公眾號(hào)源碼Github分享庫(kù)》 , 實(shí)例序號(hào)21

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容