Solidworks中無論零件排吴,裝配體秆乳,還是工程圖,都能進(jìn)行草圖的繪制傍念,由此可以推斷繪制草圖的API應(yīng)該與通用文檔ModelDoc2對象有關(guān)--SketchManager即草圖管理對象矫夷,我們對草圖的繪制葛闷,基本來源于該API對象所提供的方法與屬性。
從上述分析淑趾,我們可以看到獲得SketchManager對象的方法
ModelDoc2 SketchDoc
SketchManager SwSketchMrg = SketchDoc.SketchManager;//獲得SketchManager對象
在Solidworks模型中,人工繪制一個(gè)二維草圖的一般步驟可以分解為:
1.選中繪制草圖的平面
2.點(diǎn)擊編輯草圖
3.繪制草圖
4.添加幾何關(guān)系
5.添加尺寸
6.退出草圖
我們使用Solidworks的API自動繪制草圖時(shí),基本也是通過使用API逐一完成每個(gè)步驟,從而實(shí)現(xiàn)草圖的自動繪制阳仔,本文將帶大家初步入門使用API自動繪制草圖。
實(shí)例講解:
如圖扣泊,本文我們先來繪制這么一個(gè)草圖的圖形近范,下一文將繼續(xù)講解對該草圖的集合關(guān)系添加與基礎(chǔ)的尺寸標(biāo)注。
繪制該圖形的代碼如下:
SketchManager SwSketchMrg = SketchDoc.SketchManager;//獲得SketchManager對象
SketchDoc.Extension.SelectByID2("前視基準(zhǔn)面", "PLANE", 0, 0, 0, false, 0, null, 0);
SwSketchMrg.InsertSketch(true);//進(jìn)入編輯草圖模式
object[] ObjRectangle = SwSketchMrg.CreateCenterRectangle(0, 0, 0, 0.075, 0.04, 0);
SketchSegment SktCircle1 = SwSketchMrg.CreateCircle(-0.0425, 0, 0, -0.03, 0, 0);
SketchSegment SktCircle2 = SwSketchMrg.CreateCircle(0.0425, 0, 0, 0.03, 0, 0);
SketchSegment SktCentLine = SwSketchMrg.CreateCenterLine(0, 0.04, 0, 0, -0.04, 0);
SwSketchMrg.InsertSketch(true);//退出編輯草圖模式
代碼解析:
1.進(jìn)入與退出草圖編輯模式:
對于零件及裝配體文件延蟹,進(jìn)入與退出草圖使用如下方法评矩。相當(dāng)于點(diǎn)擊草圖編輯模式時(shí)候右上角的按鈕。
參數(shù)UpdateEditRebuild代表是否根據(jù)草圖變化重建模型阱飘。
SketchManager.InsertSketch(UpdateEditRebuild)
2.繪制草圖元素
SketchManager我們可以看作是我們的草圖工具斥杜,
示例代碼中的CreateCenterRectangle,CreateCircle沥匈,CreateCenterLine的方法分別用于創(chuàng)建矩形蔗喂,圓,中心線高帖。
其中的參數(shù)缰儿,多為繪制相應(yīng)草圖元素所需的坐標(biāo)點(diǎn)。所有的繪制方法散址,我們都可以通過API幫助文檔的SketchManager對象進(jìn)行查看乖阵。
3.草圖元素對象
我們所畫出的每個(gè)草圖元素,在Solidworks都可視為一個(gè)SketchSegment對象预麸,這個(gè)對象可以看作是每個(gè)草圖元素的通用對象(類似我們之前介紹的ModelDoc2)义起,他還會有自己的細(xì)分對象,如直線對象SketchLine师崎,圓弧對象SketchArc等(類似我們之前介紹的PartDoc默终,AssemDoc)。
通過這些元素對象,我們可以得到更多草圖元素的詳細(xì)信息齐蔽,例如下圖的草圖元素屬性两疚。
總結(jié):從以上分析我們可以用一種形象的方式去理解本文介紹的對象,畫圖工具盒SketchManager含滴,里面擁有繪制各種圖形的工具(方法)诱渤。而這個(gè)工具盒放哪?放在我們需要操作的文檔文件中(ModelDoc2)谈况。那工具畫出來的圖形勺美,每個(gè)圖形元素包括直線,圓弧等碑韵,它們都有自己的位置赡茸,長度,直徑祝闻,而這些信息都是這些圖形元素的屬性占卧,我們可以通過SketchSegment對象獲得這些信息。
如下圖為本文的示例程序联喘,源碼可上我的Github下載华蜒。操作步驟可見文章《公眾號源碼Github分享庫》,實(shí)例序號6