亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于NX Open批量自動(dòng)求解模具零件包圍盒

        2020-11-12 09:32:32孫育竹
        模具工業(yè) 2020年11期
        關(guān)鍵詞:信息

        熊 毅,孫育竹,王 蕾

        (1.河南工業(yè)職業(yè)技術(shù)學(xué)院,河南 南陽(yáng) 473009;2.河南省材料成形裝備智能技術(shù)工程研究中心,河南 南陽(yáng) 473009)

        0 引言

        模具零件的坯料尺寸、體積及表面積等數(shù)據(jù)是制造中的重要信息[1,2]。在求取零件信息中,基于最小包圍盒坯料尺寸的快速、準(zhǔn)確計(jì)算是關(guān)鍵。一般可利用CAD軟件中的計(jì)算功能人工獲取,隨著模具零件的種類和數(shù)量增多,工作量急劇增加,人工方法步驟多、效率低、易遺漏,制約了模具生產(chǎn)周期。

        包圍盒在零件下料、物流包裝、圖像處理、模式識(shí)別、碰撞檢測(cè)、模具分型等方面都有廣泛應(yīng)用[3-8]。CAD軟件自帶的計(jì)算工具依賴于零件在坐標(biāo)系中的形態(tài),需要人工反復(fù)調(diào)整零件的空間位置,才能得到準(zhǔn)確的結(jié)果,耗時(shí)費(fèi)力。現(xiàn)有的最小包圍盒算法主要有兩類:①基于點(diǎn)云或三角面片模型的包圍盒算法[9-14];②迭代旋轉(zhuǎn)算法:旋轉(zhuǎn)物體或坐標(biāo)系,將其AABB(axis-aligned-bounding-box)包圍盒的最小值作為最小包圍盒[15,16]。雖然上述算法計(jì)算精確,但其復(fù)雜度高,一般在O(n3/2)~O(n3),計(jì)算時(shí)間通常在幾十秒到幾百秒不等,并且有些算法需要先對(duì)模型進(jìn)行離散,工程應(yīng)用困難。

        現(xiàn)提出一種基于零件特征快速計(jì)算包圍盒的方法,在三維CAD軟件siemens NX中,基于NX Open二次開發(fā)接口,以C++編程實(shí)現(xiàn)零件包圍盒、體積、表面積等制造信息的批量自動(dòng)計(jì)算并輸出到Excel表格。

        1 總體方案及界面設(shè)計(jì)

        1.1 總體框架

        總體框架如圖1所示,計(jì)算工具包括用戶界面、批量計(jì)算模塊、輸出模塊和顯示模塊。用戶界面主要接收用戶拾取部件、輸入的約束條件、Excel電子表格輸出路徑。批量計(jì)算模塊包括根據(jù)ID分組、求解包圍盒、計(jì)算零件屬性、格式化屬性信息。輸出模塊包括調(diào)用顯示模塊、將屬性信息逐條寫入Excel文件。顯示模塊主要負(fù)責(zé)在指定的屏幕位置顯示零件及包圍盒。

        圖1 功能總體框架

        1.2 菜單及UI界面設(shè)計(jì)

        界面設(shè)計(jì)包括菜單設(shè)計(jì)和對(duì)話框設(shè)計(jì),在NX二次開發(fā)中,通過NX Open Menu Script制作菜單,一般用記事本編寫代碼,另存為*.men的腳本文件,將*.men文件放在二次開發(fā)的startup目錄。系統(tǒng)的菜單腳本代碼如下:

        UI界面如圖2所示,對(duì)話框分3個(gè)部分,“選擇對(duì)象”用于用戶選擇待求解的批量組件,定義包圍盒放置點(diǎn)?!昂凶娱g距”用于設(shè)置包圍盒間距?!拜敵龊凶有畔ⅰ敝饕糜谥付‥xcel文件存放路徑,文件名為“box_info.xlsx”。

        圖2 UI界面

        2 零件識(shí)別及數(shù)量統(tǒng)計(jì)

        完全相同的零件具有相同的幾何信息,只需計(jì)算其中一個(gè)即可,避免重復(fù)計(jì)算,浪費(fèi)時(shí)間。NX中,零件的幾何模型稱為部件(或組件),其ID是其唯一識(shí)別號(hào),將相同ID的零件分為一組,建立屬性數(shù)據(jù)結(jié)構(gòu):

        每組零件用一個(gè)結(jié)構(gòu)體partBoxInfo數(shù)據(jù)記錄,成員變量包含零件及其包圍盒的信息,其中part-Number記錄零件數(shù)量。

        零件分組的基本方法:將用戶拾取的部件ID收集到容器1,定義partBoxInfo類型的容器2;逐條讀取容器1中的ID,與容器2中的ID匹配,若匹配成功,容器2中相應(yīng)數(shù)據(jù)項(xiàng)的零件數(shù)量加1;匹配失敗,新建一個(gè)partBoxInfo數(shù)據(jù),零件數(shù)量置為1。分組算法如下:

        算法 按ID對(duì)零件進(jìn)行分組。

        輸入 組件ID容器1。

        輸出 分組后的partBoxInfo容器2。

        (1)容器1為空或達(dá)到容器尾部,跳轉(zhuǎn)到(8)。

        (2)讀取容器1的一個(gè)ID。

        (3)遍歷容器2,找到與(1)中容器1的ID相等的數(shù)據(jù),數(shù)據(jù)中的partNumber加1,返回到(1)。

        (4)新建一個(gè)partBoxInfo數(shù)據(jù),將partNumber置為1。

        (5)計(jì)算該零件的包圍盒信息、零件體積和表面積。

        (6)將該零件的信息賦值給(4)中數(shù)據(jù),part-Number加1。

        (7)將該partBoxInfo數(shù)據(jù)存入容器2,迭代器加1,返回到(1)。

        (8)結(jié)束。

        某批模具零件分組前后的ID序列如表1所示,分組前,零件ID排列與用戶拾取順序一致,序列無規(guī)律,分組后,相同ID的零件被分為一組,零件數(shù)量更新。

        表1 某批模具零件分組前后的ID序列

        3 零件包圍盒及幾何信息計(jì)算

        3.1 包圍盒快速求解

        模具零件一般需要在銑床上加工,這類零件至少有一個(gè)基準(zhǔn)平面和一條直線邊。根據(jù)這些特征,構(gòu)造快速計(jì)算包圍盒的算法,該算法依據(jù)零件的平直面、直線邊特征確定3個(gè)主方向,并以此構(gòu)建空間直角坐標(biāo)系;在新建坐標(biāo)系下調(diào)用AABB算法,快速計(jì)算近似最小包圍盒,算法的時(shí)間復(fù)雜度為O(n),計(jì)算時(shí)間通常在0.1 s以內(nèi)。算法如下:

        算法 物體最小包圍盒計(jì)算。

        輸入 部件ID。

        輸出 包圍盒參數(shù)。

        (1)打開部件,記錄工作坐標(biāo)系。

        (2)遍歷部件的體,記錄最長(zhǎng)直邊ID、存儲(chǔ)平直面ID到鏈表。

        (3)以最長(zhǎng)直邊構(gòu)造Z軸矢量。

        (4)在鏈表中查找Z軸的垂直面,若找到,轉(zhuǎn)到(5),否則轉(zhuǎn)到(6)。

        (5)遍歷面的最長(zhǎng)邊,以此構(gòu)造Y軸矢量,轉(zhuǎn)到(7)。

        (6)以Z軸對(duì)應(yīng)邊的相鄰平面法向?yàn)閅軸矢量。

        (7)創(chuàng)建坐標(biāo)矩陣和坐標(biāo)系。

        (8)以新建坐標(biāo)系調(diào)用AABB函數(shù),得到包圍盒尺寸及位置參數(shù)。

        (9)結(jié)束。

        圖3所示為幾種模具零件的包圍盒計(jì)算結(jié)果,求解時(shí)間在0.02~0.06 s,效率高,包圍盒的致密度好,精度滿足實(shí)際的工程需求。

        3.2 零件體積和表面積的快速計(jì)算

        NX二次開發(fā)中提供了3種計(jì)算體積和表面積的方式:①調(diào)用UF_MODL_ask_mass_props_3d函數(shù),優(yōu)點(diǎn)是通用性好,編程容易,缺點(diǎn)是計(jì)算效率低,且計(jì)算前需要從體中抽取面;②利用UFUN調(diào)KF(知識(shí)熔接)中的函數(shù),計(jì)算速度比①快,但KF中的函數(shù)格式復(fù)雜,編程困難;③利用NX Open C++中的MeasureManager測(cè)量類處理,其效率最高,代碼簡(jiǎn)單,可以通過NX日志的代碼錄制功能實(shí)現(xiàn)。

        現(xiàn)采用方式③,通過NX中[分析]/[測(cè)量體]功能查詢零件的屬性,錄制過程代碼,并在Visual Studio中將代碼改成通用格式,修改后的關(guān)鍵代碼如下:

        4 零件信息輸出

        一些大型的應(yīng)用軟件有讀寫Excel表格的接口,針對(duì)Excel的數(shù)據(jù)讀寫也有一些具體方法[17,18]。NX可以調(diào)用KF中的函數(shù)讀寫Excel文件,KF是內(nèi)嵌于NX的知識(shí)工程應(yīng)用技術(shù),用“規(guī)則”(Rule)表示零件的幾何參數(shù)和工程屬性之間的相互關(guān)系。用戶可使用KF語(yǔ)言建立自己的規(guī)則,并利用規(guī)則添加知識(shí)數(shù)據(jù)。

        零件信息輸出到Excel的基本過程:在本地新建電子表格模板文件,通過NX Open的文件處理函數(shù)將模板文件另存到用戶指定目錄,讀取零件信息結(jié)構(gòu)體中的數(shù)據(jù),通過KF語(yǔ)言創(chuàng)建規(guī)則將這些數(shù)據(jù)寫入表格中的指定區(qū)域,算法如下:

        算法 NX信息寫入Excel。

        輸入 存儲(chǔ)部件信息的容器。

        輸出 Excel電子表格數(shù)據(jù)。

        (1)復(fù)制本地模板文件到UI指定的路徑。

        (2)打開電子表格文件。

        (3)初始化容器迭代器。

        圖3 幾種模具零件的包圍盒計(jì)算結(jié)果

        (4)從容器中讀取一條信息并格式化為KF函數(shù)所需格式。

        (5)調(diào)用KF寫Excel函數(shù),在表格的指定區(qū)域?qū)懭敫袷交畔ⅰ?/p>

        (6)強(qiáng)制需求,更新模型,刪除屬性。

        (7)若迭代器未達(dá)到容器末尾,迭代器加1,轉(zhuǎn)到(4)。

        (8)更新模型,關(guān)閉電子表格,刪除屬性。

        (9)結(jié)束。

        利用UF_KF_create_rule_no_update函數(shù)創(chuàng)建規(guī)則,分別實(shí)現(xiàn)對(duì)電子表格的打開、數(shù)據(jù)寫入及關(guān)閉電子表格。其中,寫入的信息需要格式化,存放在字符組數(shù)write_buf中,寫入的具體規(guī)則如下:

        5 應(yīng)用案例

        以某大型注射模中的斜推組件為例,如圖4所示,測(cè)試自動(dòng)工具的計(jì)算效果。在NX 10.0中啟動(dòng)系統(tǒng)菜單,設(shè)置零件間距、零件組間距及Excel輸出目錄。批量選擇斜推組件,該批零件共12種,91個(gè)零件,形態(tài)各異,計(jì)算總時(shí)間為3.776 s。圖5所示為計(jì)算結(jié)果,零件被分為12個(gè)組,如圖5(a)所示;系統(tǒng)自動(dòng)建立裝配目錄H289-BOX,零件按組被裝配12個(gè)目錄,如圖5(b)所示。表2所示為輸出的電子表格數(shù)據(jù),表格中的A列數(shù)據(jù)是根據(jù)分組數(shù)動(dòng)態(tài)編號(hào)自動(dòng)生成,B~K列是零件屬性信息格式化后的輸出結(jié)果,L、M列是利用Excel自帶公式計(jì)算所得的派生數(shù)據(jù),避免了在NX中編寫代碼,節(jié)省時(shí)間。

        圖4 某模具的斜推組件

        表3所示為圖4案例采用人工和自動(dòng)計(jì)算耗時(shí)比較。手工計(jì)算時(shí),坐標(biāo)調(diào)整耗時(shí)最多,平均為30 s,調(diào)整時(shí)根據(jù)零件的形狀特征將其擺正,使零件最長(zhǎng)方向與Z軸平行,第二長(zhǎng)邊的方向與Y軸平行。其次是查詢零件表面積和體積的時(shí)間,平均為3 s,主要消耗在調(diào)用查詢命令窗口、拾取幾何對(duì)象。手工計(jì)算后的數(shù)據(jù)還需用戶記錄,而自動(dòng)計(jì)算時(shí),用戶一次拾取所有零件,計(jì)算工具自動(dòng)調(diào)整零件姿態(tài)、計(jì)算零件信息,最后自動(dòng)輸出到Excel表格,提高計(jì)算效率和數(shù)據(jù)準(zhǔn)確性。自動(dòng)計(jì)算時(shí)間不到手工計(jì)算的1%,且計(jì)算規(guī)模越大,自動(dòng)計(jì)算的效率優(yōu)勢(shì)越明顯。

        表2 批量信息輸出到Excel

        圖5 自動(dòng)計(jì)算結(jié)果

        表3 不同方式計(jì)算圖4案例信息的時(shí)間 s

        6 結(jié)束語(yǔ)

        通過實(shí)例驗(yàn)證,批量求解工具能在數(shù)秒內(nèi)實(shí)現(xiàn)大批量模具零件的快速分組、零件信息輸出到Excel表格,計(jì)算規(guī)模越大,自動(dòng)計(jì)算的效率越高。

        (1)通過分組算法,以零件ID作為匹配項(xiàng),對(duì)同種零件進(jìn)行了快速數(shù)量統(tǒng)計(jì)和分組,避免了零件信息的重復(fù)計(jì)算。

        (2)以零件的幾何特征快速構(gòu)造主方向,在以主方向建立的坐標(biāo)系下調(diào)用AABB包圍盒算法,計(jì)算時(shí)間控制在0.1 s內(nèi),算法的復(fù)雜程度降低到O(n),結(jié)果準(zhǔn)確。

        (3)利用NX中NX Open C++中的MeasureManager類和日志功能,實(shí)現(xiàn)了復(fù)雜零件體積和表面積的快速自動(dòng)計(jì)算。

        (4)利用NX中的KF函數(shù),完成了零件的ID、數(shù)量、體積、表面積及包圍盒等數(shù)據(jù)關(guān)聯(lián)輸出到Excel表格,實(shí)現(xiàn)了零件信息的批量輸出。

        猜你喜歡
        信息
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        展會(huì)信息
        信息超市
        展會(huì)信息
        展會(huì)信息
        展會(huì)信息
        展會(huì)信息
        展會(huì)信息
        信息
        健康信息
        祝您健康(1987年3期)1987-12-30 09:52:32
        中国亚洲一区二区视频| 日韩啪啪精品一区二区亚洲av| 特黄三级一区二区三区| 日本综合视频一区二区| 亚洲av乱码一区二区三区按摩| 欧美日韩精品一区二区在线观看| 国产高清a| 亚洲精品国产av成拍色拍| 国产精品国产三级国产aⅴ下载| 女人扒开屁股爽桶30分钟| 国产爆乳乱码女大生Av| 给我播放的视频在线观看| 国产精品一区二区三区卡 | 亚洲欧美日韩国产精品一区| 亚洲专区一区二区三区四区五区| 中字乱码视频| 8ⅹ8x擦拨擦拨成人免费视频| 国产精品白浆无码流出| 亚洲性av少妇中文字幕| 国产精品无码无卡无需播放器| 一本大道久久香蕉成人网| 人妻少妇精品视中文字幕国语| 国产激情综合五月久久| 午夜无遮挡男女啪啪免费软件| 欧美日韩国产成人高清视| 一亚洲一区二区中文字幕| 国产精品主播在线一区二区| 精品免费看国产一区二区| 国产精品 精品国内自产拍| 国产一区二区白浆在线观看| 国产a在亚洲线播放| 精品国产黑色丝袜高跟鞋| 精品黑人一区二区三区| 日本一区二区三区人妻| 97人妻碰碰视频免费上线| 无码一区二区三区不卡AV| 国产美女高潮流白浆视频| 熟女少妇精品一区二区| 97视频在线观看免费| 日韩亚洲在线一区二区| 欧美老肥妇做爰bbww|