朱悠悠
摘 要筆者通過對某型號電子樣機的梳理,總結(jié)了其中復(fù)用頻率較高的特征。通過對腰形草圖的封裝進(jìn)行了探討與研究,并對腰形草圖定制過程中遇到的問題,例如腰形草圖空間坐標(biāo)變換、腰形草圖自動生成全約束特征、腰形草圖GUI圖形顯示等關(guān)鍵點提出了行之有效的解決方法,最終實現(xiàn)腰形草圖的一鍵式創(chuàng)建,該方法為今后類似草圖特征的封裝起到了重要的借鑒作用。
【關(guān)鍵詞】腰形草圖 坐標(biāo)轉(zhuǎn)換 GUI
在UG的眾多功能中,草圖功能是最基本,使用頻率最高的功能,因此對草圖進(jìn)行二次開發(fā),是提高工作效率的重要方式。筆者通過對某型號電子樣機的梳理,腰形草圖在機匣類零件中復(fù)用頻率較高,因此將腰形草圖進(jìn)行封裝,得型號設(shè)計人員可以根據(jù)輸入?yún)?shù)大小一鍵得到所需的腰形草圖特征,從而將設(shè)計人員從重復(fù)的勞動中解放出來,提高了其型號設(shè)計的效率。本文詳細(xì)介紹將腰形草圖的封裝以及封裝過程遇到的技術(shù)難點。
1 腰形草圖封裝關(guān)鍵技術(shù)
1.1 腰形草圖平面定位
對于UG軟件設(shè)計人員來說,腰形草圖的所有特征在任意空間的一個平面上,即平面XOY上,該平面需要人工進(jìn)行選取獲得,然而,對于任意腰形草圖特征來說,其特征同時存在于空間的坐標(biāo)系XYZ與人工選取的XOY平面上的,因此,需要將腰形草圖特征的坐標(biāo)轉(zhuǎn)換成空間絕對坐標(biāo),才能保證成型的腰形草圖的幾何唯一性。
1.2 三維空間幾何坐標(biāo)變換原理
三維空間幾何坐標(biāo)變換包括三維平移變換、比例變換以及旋轉(zhuǎn)變換,三維平移變化、比例變換是二維情況的直接推廣;旋轉(zhuǎn)變換因為可以選擇空間任意方向作為旋轉(zhuǎn)軸,因此三維空間旋轉(zhuǎn)變換處理起來較為復(fù)雜。與二維變換相似,我們也采用齊次坐標(biāo)技術(shù)來描述空間的各點坐標(biāo)及其變換,這時,描述空間三維變換的變換矩陣是4×4的形式,由此產(chǎn)生的一系列變換可以用單個矩陣來表示。
1.3 三維坐標(biāo)變換構(gòu)造
本文筆者將腰形草圖從一個參考坐標(biāo)系下的位置變換成絕對坐標(biāo)系下的位置,變換思路具體過程分為以下兩步:
(1)平移坐標(biāo)系oxyz,使它的坐標(biāo)原點與新坐標(biāo)原點重合;
(2)進(jìn)行旋轉(zhuǎn)變換,使兩坐標(biāo)系的坐標(biāo)軸重合。
2 腰形草圖封裝方法
2.1 腰形草圖封裝環(huán)境
目前研究所UG使用版本為 NX7.5、腰形草圖封裝環(huán)境需安裝對應(yīng)的開發(fā)平臺Microsoft Visual 2008以上版本,本文筆者安裝的是Microsoft Visual2010,并且配置好UG NX7.5與Microsoft Visual 2010之C#接口信息。
2.2 腰形草圖封裝步驟
首先,在Microsoft Visual2010中新建一個NX7.5項目。
然后,在新建的項目中設(shè)計腰形草圖GUI界面(見圖1)。
根據(jù)GUI界面中填寫的參數(shù),在主函數(shù)中定義這些參數(shù),并且將其與GUI界面中顯示的參數(shù)關(guān)聯(lián)。
然后新建一個類文件,并在該文件中定義三維坐標(biāo)變換函數(shù),在該函數(shù)中首先定義當(dāng)前腰形草圖工作坐標(biāo)系單位矩陣。再根據(jù)三維坐標(biāo)變換構(gòu)造方法對空間坐標(biāo)進(jìn)行定義。然后定義一個腰形草圖構(gòu)建函數(shù),由于腰形草圖是由直線與圓弧組成的,因此腰形草圖的構(gòu)建可以分解成直線與圓弧的構(gòu)建(以下是一段圓弧輪廓的創(chuàng)建代碼)。
Point3d startPoint1 = new Point3d(0.0, 100, 100);Point3d pointOn1 = new Point3d(0.0, -100 100);Point3d endPoint1 = new Point3d(0.0, -300, 200); Arc arc1;arc1 = workPart.Curves.CreateArc(startPoint1, pointOn1, endPoint1, false, out startAndEndGotFlipped1); theSession.ActiveSketch.AddGeometry(arc1,NXOpen.Sketch.InferConstraintsOption.InferNoConstraints);
在完成腰形草圖輪廓的構(gòu)建之后,對于腰形草圖的每一根輪廓線來說,在腰形草圖中必須全約束才能保證腰形草圖大小的唯一性,因此,需要對腰形草圖輪廓進(jìn)行尺寸約束(以下是一段圓弧的尺寸約束代碼):
//圓弧C1圓心過原點
NXOpen.Sketch.ConstraintGeometry CL1;CL1.Geometry=CKX;CL1.PointType=NXOpen.Sketch.ConstraintPointType.StartVertex;CL1.SplineDefiningPointIndex = 0;//標(biāo)注C1尺寸NXOpen.Sketch.DimensionGeometry dimC1;dimC1.Geometry = C1;dimC1.AssocType = NXOpen.Sketch.AssocType.Tangency;dimC1.AssocValue = 42;dimC1.HelpPoint.X = 0.0;dimC1.HelpPoint.Y = 0.0;dimC1.HelpPoint.Z = 0.0;dimC1.View =workPart.ModelingViews.WorkView;
對于腰形草圖現(xiàn)有輪廓無法進(jìn)行全約束時,可以通過新建的坐標(biāo)軸和參考線來輔助其約束尺寸。
最后對該項目進(jìn)行封裝生成yaoxingcaotu.dll文件將其載入在NX7.5中使用就可以通過輸入?yún)?shù)來一鍵式生成腰形草圖了。
作者單位
中國航發(fā)湖南動力機械研究所 湖南省株洲市 412002