Solidworks草圖段對象

如下圖所示,在Solidworks的草圖中继榆,一個草圖可以由多個草圖段構成,如直線猛计,圓弧,樣條曲線爆捞,文字等奉瘤,都屬于草圖段的細分分類。在Solidworks中SketchSegment對象代表草圖段對象煮甥。如下圖盗温,圓弧,直線等對象苛秕,可以理解為是SketchSegment的子類肌访。從這里可以理解SketchSegment存儲的是一些草圖的通用信息找默,而子類存儲的是具體草圖段的特殊信息艇劫。

本文就通過實例講解下草圖段對象。

image.png

實例分析:

如下圖惩激,本例中店煞,我們將遍歷草圖中的所有草圖段。

image.png

實例代碼

#region 遍歷所有草圖片段
 public static void GetAllSketchSegment(ModelDoc2 SwDoc)
 {
     Feature SketchFeat = ((PartDoc)SwDoc).FeatureByName("草圖片段研究");
     Sketch SwSketch = SketchFeat.GetSpecificFeature2();
     object[] ObjSegs = SwSketch.GetSketchSegments();
     foreach (object ObjSeg in ObjSegs)
     {
          SketchSegment SwSeg = (SketchSegment)ObjSeg;
          SwSeg.Select(false);
          string ObjStatus = "";
          if ((swSketchSegments_e)SwSeg.GetType() == swSketchSegments_e.swSketchLINE)
          {
               SketchLine SwSketchLine = (SketchLine)SwSeg;
               if (SwSketchLine != null)
               {
                   ObjStatus = "對象得到成功";
               }
               else
               {
                   ObjStatus = "對象得到失敗";
               }
           }
           else if ((swSketchSegments_e)SwSeg.GetType() == swSketchSegments_e.swSketchARC)
           {
                SketchArc SwSketchARC = (SketchArc)SwSeg;
                if (SwSketchARC != null)
                {
                    ObjStatus = "對象得到成功";
                }
                else
                {
                    ObjStatus = "對象得到失敗";
                }
           }
           else if ((swSketchSegments_e)SwSeg.GetType() == swSketchSegments_e.swSketchELLIPSE)
           {
                SketchEllipse SwSketchEllipse = (SketchEllipse)SwSeg;
                if (SwSketchEllipse != null)
                {
                    ObjStatus = "對象得到成功";
                }
                else
                {
                    ObjStatus = "對象得到失敗";
                }
            }
            else if ((swSketchSegments_e)SwSeg.GetType() == swSketchSegments_e.swSketchSPLINE)//樣條曲線
            {
                SketchSpline SwSketchSpline = (SketchSpline)SwSeg;
                if (SwSketchSpline != null)
                {
                    ObjStatus = "對象得到成功";
                }
                else
                {
                    ObjStatus = "對象得到失敗";
                }
            }
            else if ((swSketchSegments_e)SwSeg.GetType() == swSketchSegments_e.swSketchTEXT)
            {
                SketchText SwSketchText = (SketchText)SwSeg;
                if (SwSketchText != null)
                {
                     ObjStatus = "對象得到成功";
                }
                else
                {
                     ObjStatus = "對象得到失敗";
                }
            }
            StringBuilder Sb = new StringBuilder("");
            Sb.Append(((swSketchSegments_e)SwSeg.GetType()).ToString().Trim() + ObjStatus + "\r\n");
            Sb.Append("名稱:" + SwSeg.GetName() + "\r\n");
            Sb.Append("ID:" + SwSeg.GetID()[0] + "," + SwSeg.GetID()[1] + "\r\n");//比如各類草圖都有一個相同的ID
            Sb.Append("長度:" + SwSeg.GetLength() + "\r\n");
            System.Windows.MessageBox.Show(Sb.ToString().Trim());
            //特定草圖中的每個圖元都有一個唯一的 ID风钻。但是顷蟀,草圖線可能與同一草圖中的草繪弧具有相同的 ID 值。同樣骡技,在第二個草圖中鸣个,您可能會找到具有相同 ID 的不同草圖元素羞反,因此,您的應用程序必須跟蹤
         }
}
#endregion

運行效果如下:

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

實例分析

1.從實例效果可以看出囤萤,我們可以通過SketchSegment對象得到各細分對象昼窗。

2.SketchSegment作為通用對象,包含了各類草圖段的通用信息涛舍,如長度澄惊,ID等等。

3.每個草圖段都有ID富雅,這個ID是一個二維數組掸驱,但我們看到好幾個草圖段的ID都是【0,1】,這里Solidworks的原理是一個草圖中没佑,相同類型的草圖段的ID是唯一的毕贼。故我們雖然看到很多ID是【0,1】,但這些草圖段分別屬于不同的草圖段類型蛤奢,如直線帅刀,圓弧,橢圓远剩,等等扣溺。

如下圖為本文的示例程序,源碼可上我的Github下載瓜晤。

image.png
?著作權歸作者所有,轉載或內容合作請聯(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
  • 文/不壞的土叔 我叫張陵霞怀,是天一觀的道長。 經常有香客問我莉给,道長毙石,這世上最難降的妖魔是什么廉沮? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮徐矩,結果婚禮上废封,老公的妹妹穿的比我還像新娘。我一直安慰自己丧蘸,他們只是感情好漂洋,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著力喷,像睡著了一般刽漂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上弟孟,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天贝咙,我揣著相機與錄音,去河邊找鬼拂募。 笑死庭猩,一個胖子當著我的面吹牛,可吹牛的內容都是我干的陈症。 我是一名探鬼主播蔼水,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼录肯!你這毒婦竟也來了趴腋?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤论咏,失蹤者是張志新(化名)和其女友劉穎优炬,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體厅贪,經...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蠢护,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了养涮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片葵硕。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖单寂,靈堂內的尸體忽然破棺而出贬芥,到底是詐尸還是另有隱情,我是刑警寧澤宣决,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站昏苏,受9級特大地震影響尊沸,放射性物質發(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

推薦閱讀更多精彩內容