視圖部件對象DrawingComponent

從特征樹上可以看到拙毫,每個帶引用的視圖上都引用了一個模型實例缀蹄,這個模型實例可以是一個零件缺前,也可以是一個裝配體。

如下圖所示,同樣一個模型或裝配體能同時被好幾個視圖以不同的實例號進行引用肆良。這樣我們就能對不同的視圖中相同的部件進行一些不同的設(shè)置夭谤,如線型設(shè)置朗儒,隱藏顯示部件等醉锄。

image.png

本文我們就來介紹下這個被視圖引用的模型對象DrawingComponent开呐。

DrawingComponent對象可以看作是零部件筐付,裝配體與工程圖進行數(shù)據(jù)交互的橋梁沮尿。故可以通過工程圖中的DrawingComponent間接地直接獲得對應(yīng)零件或裝配體的文檔對象蛹找,進而獲取更詳細的零部件數(shù)據(jù)庸疾。

實例1:獲取DrawingComponent實例

獲取DrawingComponent最直接的方式就是通過視圖對象View實例獲得。

代碼示例:

public static void GetViewComp(ModelDoc2 SwDoc, string ViewName)
 {
     Feature SwFeat = ((DrawingDoc)SwDoc).FeatureByName(ViewName);
     View SwView = SwFeat.GetSpecificFeature2();
     DrawingComponent SwDrawComp = SwView.RootDrawingComponent;
     StringBuilder Sb = new StringBuilder("");
     Sb.Append("視圖部件名:" + SwDrawComp.Name + "\r\n");
     Sb.Append("所屬視圖名:" + SwDrawComp.View.Name + "\r\n");
     Sb.Append("部件名:" + SwDrawComp.Component.Name2 + "\r\n");
     Sb.Append("子部件數(shù)量:" + SwDrawComp.GetChildrenCount().ToString().Trim() + "\r\n");//直接關(guān)聯(lián)的頂層部件
     System.Windows.MessageBox.Show(Sb.ToString().Trim());
 }

執(zhí)行效果:

image.png

實例分析:

主要通過View.RootDrawingComponent屬性鲤桥,獲得視圖的根模型對象

實例2:獲取DrawingComponent對應(yīng)的模型信息

代碼示例:

public static void GetViewCompInfo(ModelDoc2 SwDoc, string ViewName, string DocCuspName)
{
      Feature SwFeat = ((DrawingDoc)SwDoc).FeatureByName(ViewName);
      View SwView = SwFeat.GetSpecificFeature2();
      DrawingComponent SwDrawComp = SwView.RootDrawingComponent;
      StringBuilder Sb = new StringBuilder("");
      Component2 SwComp = SwDrawComp.Component;
      ModelDoc2 CompDoc = SwComp.GetModelDoc2();
      Sb.Append(SwDrawComp.Name + ":" + CompDoc.Extension.CustomPropertyManager[""].Get(DocCuspName).ToString().Trim() + "\r\n");
      object[] ObjDrawComps = SwDrawComp.GetChildren();
      foreach (object ObjDrawComp in ObjDrawComps)
      {
          SwComp = ((DrawingComponent)ObjDrawComp).Component;
          CompDoc = SwComp.GetModelDoc2();
          Sb.Append(((DrawingComponent)ObjDrawComp).Name + ":" + CompDoc.Extension.CustomPropertyManager[""].Get(DocCuspName).ToString().Trim() + "\r\n");
      }
      System.Windows.MessageBox.Show(Sb.ToString().Trim());
}

執(zhí)行效果:

image.png

實例分析:

主要通過DrawingComponent.Component屬性獲得Component對象,并進而得到零部件的文檔對象ModelDoc2

實例3:設(shè)置視圖中部件的線型表達

由于DrawingComponent是一個視圖引用的實例猪狈,故通過其屬性即可直接設(shè)置部件在對應(yīng)視圖中的線型雇庙,顯示隱藏等信息

代碼示例:

//選中特征樹中的部件
public static void SetViewCompLine(ModelDoc2 SwDoc)
{
      SelectionMgr SwSelMrg = SwDoc.SelectionManager;
      DrawingComponent SwDrawComp = SwSelMrg.GetSelectedObjectsComponent4(1, 0);//需要選中特征樹中的部件,不能在視圖中直接選中部件
      if (SwDrawComp == null)
      {
           System.Windows.MessageBox.Show("請在特征樹中選中部件!");
           return;
      }
      SwDrawComp.Style = (int)swLineStyles_e.swLineCENTER;
      SwDrawComp.Width = (int)swLineWeights_e.swLW_THICK6;
      System.Windows.MessageBox.Show("部件" + SwDrawComp.Name + ",線性設(shè)置成功!");
 }

執(zhí)行效果:

image.png

如下圖為本文的示例程序匈挖,源碼可上我的Github下載儡循。操作步驟可見文章《公眾號源碼Github分享庫》 择膝, 實例序號22

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末叔收,一起剝皮案震驚了整個濱河市饺律,隨后出現(xiàn)的幾起案子脖卖,更是在濱河造成了極大的恐慌畦木,老刑警劉巖十籍,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異牵寺,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烈钞,“玉大人毯欣,你說我怎么就攤上這事⊙庾鳎” “怎么了葫录?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我拯坟,道長冷溃,這世上最難降的妖魔是什么似枕? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮答憔,結(jié)果婚禮上虐拓,老公的妹妹穿的比我還像新娘城榛。我一直安慰自己狠持,他們只是感情好工坊,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布楚午。 她就那樣靜靜地躺著矾柜,像睡著了一般怪蔑。 火紅的嫁衣襯著肌膚如雪缆瓣。 梳的紋絲不亂的頭發(fā)上弓坞,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天渡冻,我揣著相機與錄音族吻,去河邊找鬼呼奢。 笑死辐董,一個胖子當著我的面吹牛简烘,可吹牛的內(nèi)容都是我干的孤澎。 我是一名探鬼主播覆旭,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼荐虐,長吁一口氣:“原來是場噩夢啊……” “哼福扬!你這毒婦竟也來了铛碑?” 一聲冷哼從身側(cè)響起汽烦,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后颈将,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體言疗,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡噪奄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了都毒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡账劲,死狀恐怖金抡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情榛瓮,我是刑警寧澤巫击,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布坝锰,位于F島的核電站,受9級特大地震影響崎淳,放射性物質(zhì)發(fā)生泄漏愕把。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一恨豁、第九天 我趴在偏房一處隱蔽的房頂上張望爬迟。 院中可真熱鬧,春花似錦计福、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陶冷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間埂伦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工立镶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留类早,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓缭召,卻偏偏與公主長得像逆日,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子搪哪,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容