• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于NX的通用標(biāo)準(zhǔn)件庫建模方法研究

      2022-06-23 08:39:46閆紅賓張紹舉
      智能制造 2022年3期
      關(guān)鍵詞:標(biāo)準(zhǔn)件管接頭單元格

      何 寥,閆紅賓,于 亮,李 一,張紹舉

      (北京航天發(fā)射技術(shù)研究所,北京 100076)

      1 引言

      在產(chǎn)品開發(fā)設(shè)計(jì)過程中,存在著大量的標(biāo)準(zhǔn)件、通用件,甚至有大量尺寸規(guī)格不同,但拓?fù)浣Y(jié)構(gòu)相同或相似的非標(biāo)準(zhǔn)件,設(shè)計(jì)人員常常僅因尺寸不同而不得不對(duì)相似零件進(jìn)行重復(fù)設(shè)計(jì),非常耗費(fèi)時(shí)間精力。

      Siemens NX(以下簡稱NX)提供了功能強(qiáng)大的參數(shù)化設(shè)計(jì)功能,零件參數(shù)化設(shè)計(jì)后,只要修改參數(shù)表達(dá)式就可以相應(yīng)改變零件模型,實(shí)現(xiàn)零件的參數(shù)驅(qū)動(dòng),生成同系列不同規(guī)格的零件。

      本文在對(duì)NX參數(shù)表達(dá)式進(jìn)行結(jié)構(gòu)分析的基礎(chǔ)上,通過VC++編程調(diào)用OLE訪問并提取Excel表格數(shù)據(jù),自動(dòng)生成表達(dá)式文件,用來驅(qū)動(dòng)參數(shù)化的NX模型生成不同規(guī)格的標(biāo)準(zhǔn)件,這種方法能夠?qū)崿F(xiàn)在不改變應(yīng)用程序的情況下,用戶可以自行擴(kuò)展快速生成不同零件類型的標(biāo)準(zhǔn)件庫,程序擴(kuò)展性、通用性好,大大提高了標(biāo)準(zhǔn)件建模的效率。

      2 NX參數(shù)化建模

      參數(shù)化建模技術(shù)是NX軟件的精華,是CAD技術(shù)的發(fā)展方向之一。參數(shù)是設(shè)計(jì)過程中的核心。參數(shù)化設(shè)計(jì)也可稱為尺寸驅(qū)動(dòng),是指參數(shù)化模型的所有尺寸,部分或全部使用相應(yīng)的表達(dá)式或其他方式指定,修改參數(shù)值后,由NX自動(dòng)完成表達(dá)式中或與之相關(guān)聯(lián)的其他參數(shù)的改變,其本質(zhì)是在保持原有圖形的拓?fù)潢P(guān)系不變的基礎(chǔ)上通過修改圖形的尺寸,實(shí)現(xiàn)產(chǎn)品的系列化設(shè)計(jì)。

      表達(dá)式是NX中進(jìn)行參數(shù)化設(shè)計(jì)的重要手段。表達(dá)式的特點(diǎn)是把各參數(shù)之間的關(guān)系通過指定各參數(shù)的函數(shù)關(guān)系來表達(dá)??梢园褏?shù)定義為具體數(shù)字、數(shù)學(xué)公式等,或者把幾個(gè)參數(shù)用數(shù)學(xué)運(yùn)算符連接使其產(chǎn)生關(guān)聯(lián)。

      下面以標(biāo)準(zhǔn)件液壓24°錐直通管接頭為例,進(jìn)行NX參數(shù)化建模。

      24°錐直通管接頭結(jié)構(gòu)尺寸如圖1所示,其整體尺寸數(shù)據(jù)見表1,局部油口尺寸數(shù)據(jù)見表2。根據(jù)以上數(shù)據(jù)采用NX進(jìn)行任一規(guī)格直通管接頭(以1D-18規(guī)格為例)的三維建模如圖2所示,完成NX建模以后選擇NX工具菜單中表達(dá)式選項(xiàng),對(duì)相關(guān)尺寸表達(dá)式進(jìn)行命名整理后如圖3所示。

      圖1 24°錐直通管接頭

      表1 24°錐直通管接頭整體尺寸 (單位:mm)

      表2 24°錐直通管接頭局部油口尺寸 (單位:mm)

      圖2 24°錐直通管接頭三維模型

      圖3 24°錐直通管接頭相關(guān)表達(dá)式

      通過以上操作即實(shí)現(xiàn)了24°錐直通管接頭的NX參數(shù)化建模,后續(xù)通過修改表達(dá)式的值就可以實(shí)現(xiàn)模型更改,如果手動(dòng)修改表達(dá)式的值非常耗費(fèi)時(shí)間精力,如何快速按照相應(yīng)規(guī)格尺寸修改表達(dá)式的值以生成相應(yīng)標(biāo)準(zhǔn)件模型,是標(biāo)準(zhǔn)件庫建模的關(guān)鍵。

      NX軟件提供了表達(dá)式導(dǎo)入、導(dǎo)出功能,點(diǎn)擊NX表達(dá)式對(duì)話框上“導(dǎo)出表達(dá)式”按鈕,將表達(dá)式導(dǎo)出成.exp格式的文本文件,用記事本打開后如圖4所示,每行都是一個(gè)變量表達(dá)式,對(duì)其結(jié)構(gòu)進(jìn)行分析可以看出,每行的結(jié)構(gòu)都是“[單位]變量名=變量值”,如果采用編程軟件編制程序自動(dòng)生成同樣結(jié)構(gòu)的表達(dá)式文件,再通過“導(dǎo)入表達(dá)式”按鈕將表達(dá)式的值導(dǎo)入模型進(jìn)行更新,就可以快速生成新的標(biāo)準(zhǔn)件模型。

      圖4 記事本打開表達(dá)式

      3 VC++文件相關(guān)操作

      Microsoft Visual Studio C++(以下簡稱VC++)作為功能強(qiáng)大的編程開發(fā)工具,提供了強(qiáng)大的文件處理功能,既能夠輕松實(shí)現(xiàn)對(duì)普通文本文件的讀寫,又能夠?qū)崿F(xiàn)對(duì)Excel等文件的讀寫。

      3.1 普通文件讀寫

      VC++使用CStdioFile類來操作文件,打開并按行讀取文本文件的代碼:

      CStdioFile MyTxtFile;

      CString TXTLine;

      MyTxtFile.Open(_T(“文本文件全名”)),CFile::modeRead);

      MyTxtFile.ReadString(TXTLine);

      打開并按行寫入文件的代碼:

      CStdioFile MyTxtFile;

      MyTxtFile.Open(_T(“文 本 文 件 全 名”),CFile::modeCreate|CFile::modeWrite);

      MyTxtFile.WriteString(_T(“要寫入內(nèi)容”));

      以上可以實(shí)現(xiàn)對(duì)“.txt”“.exp”,等文本格式文件的讀寫。

      3.2 Excel文件讀寫

      VC++采用OLE技術(shù)實(shí)現(xiàn)對(duì)Excel文件的讀寫。

      讀取Excel文件第1個(gè)表格的“A1”單元格的內(nèi)容賦值給第2個(gè)表格“B2”單元格的代碼如下:

      CApplication objApp;

      COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

      CWorkbook objBook;

      CWorkbooks objBooks;

      CWorksheet objSheet;

      CWorksheets objSheets;

      CRange objRange;

      CString Cstr;

      objBook = objBooks.Open(_T(“Excel文件全名”),

      covOptional,covOptional,covOptional,covOptional,covOptional,

      covOptional,covOptional,covOptional,covOptional,covOptional,

      covOptional,covOptional,covOptional,covOptional );

      objSheets = objBook.get_Worksheets();

      objSheet = objSheets.get_Item(COleVariant((short)1));//第1個(gè)表格。

      objRange = objSheet.get_Range(COleVariant(_T(“A1”)),COleVariant(_T(“A1”)));// “A1”單元格

      Cstr=COleVariantToCstr(objRange.get_Value2());//讀取第1個(gè)表格中A1單元格的值賦給字符串變量Cstr

      objSheet = objSheets.get_Item(COleVariant((short)2));//第2個(gè)表格。

      objRange = objSheet.get_Range(COleVariant(_T(“B2”)),COleVariant(_T(“B2”)));// “B2”單元格

      objRange.put_Value2( COleVariant(Cstr));//將字符串變量賦值給第2個(gè)表格“B2”單元格。

      為了生成如圖4的表達(dá)式文件,先建一個(gè)Excel文件,其第1個(gè)表格(命名為“表格1”)內(nèi)容如圖5所示,表格1規(guī)定了變量數(shù)量(A3)、標(biāo)準(zhǔn)件規(guī)格(A5)、變量名(C2~N2)、單位(C3~N3)、變量值(C5~N5),通過VC++按照變量數(shù)量循環(huán)獲取單位(C3~N3)、變量名(C2~N2)、變量值(C5~N5),并按照格式“[單位]變量名=變量值”逐行輸入到指定文本文件就可以得到如圖4所示的表達(dá)式文件,用于驅(qū)動(dòng)參數(shù)化的NX模型生成不同規(guī)格的標(biāo)準(zhǔn)件。

      圖5 Excel文件表格1內(nèi)容

      4 Excel數(shù)據(jù)關(guān)聯(lián)

      如圖5所示的表格1是用于應(yīng)用程序按照?qǐng)D4每行的格式生成表達(dá)式文件用的,要實(shí)現(xiàn)參數(shù)驅(qū)動(dòng)還需要將圖5 表格1中的標(biāo)準(zhǔn)件規(guī)格(A5)和變量值(C5~N5)進(jìn)行數(shù)據(jù)關(guān)聯(lián),這靠Excel本身的功能來實(shí)現(xiàn)。具體如下:

      在Excel文件中建立第2個(gè)表格(命名為“表格2”),表格2內(nèi)容為直通接頭各種規(guī)格的全部數(shù)據(jù),如圖6所示。

      圖6 Excel文件表格2內(nèi)容

      對(duì)表格1中A5單元格進(jìn)行數(shù)據(jù)有效性設(shè)置:打開Excel表格, 選擇表格1中A5 單元格后,點(diǎn)擊工具欄-數(shù)據(jù)-數(shù)據(jù)有效性,在彈出頁面中,將“允許”項(xiàng)設(shè)置為“序列”,選中忽略空值,來源設(shè)置為表格2的A2:A1000,設(shè)置后表格1中A5單元格的值就只能從表格2的A2:A1000中非空值中選取了。

      通過Excel的VLOOKUP函數(shù)對(duì)表格1中的單元格C5進(jìn)行數(shù)據(jù)匹配:雙擊單元格C5,填入函數(shù)內(nèi)容“=VLOOKUP($A$5,表格2!$A$2:$N$1000,3,0)”,即可實(shí)現(xiàn)表格1中C5單元格的值根據(jù)表格1中A5單元格的選擇自動(dòng)從表格2中第3列(C列)查找匹配數(shù)據(jù),同理對(duì)表格1中D5~N5進(jìn)行數(shù)據(jù)匹配設(shè)置。完成設(shè)置后就實(shí)現(xiàn)了Excel數(shù)據(jù)關(guān)聯(lián)功能:表格1中A5(標(biāo)準(zhǔn)件規(guī)格)選定某一規(guī)格后,變量值(C5~N5)自動(dòng)根據(jù)表2數(shù)據(jù)匹配到相應(yīng)的值。

      對(duì)于更為復(fù)雜的零件,Excel文件中可以再增加表格,用于存儲(chǔ)局部結(jié)構(gòu)的尺寸數(shù)據(jù),表格2中的局部結(jié)構(gòu)尺寸數(shù)據(jù)可以從新增加的表格中查詢得到。

      5 應(yīng)用程序文件組成與實(shí)施效果

      5.1 應(yīng)用程序文件組成

      采用VC++開發(fā)工具編制應(yīng)用程序,程序共有五種文件組成。

      1)一個(gè).exe文件:界面程序,用戶操作的入口。

      2)一個(gè).txt文件:標(biāo)準(zhǔn)件類型匯總文件,文本文件類型,每行表示一種標(biāo)準(zhǔn)件類別,如直通接頭、彎通接頭、三通接頭等,界面程序讀取.txt文件內(nèi)容,供用戶選擇是對(duì)哪種零件進(jìn)行建模。

      3)多個(gè).prt文件:參數(shù)化的NX模型文件,每個(gè)文件對(duì)應(yīng)一種標(biāo)準(zhǔn)件,.prt文件的文件名要與.txt文件中的標(biāo)準(zhǔn)件類別名稱一致,界面程序根據(jù)此名稱打開相應(yīng)的.prt文件。

      4)多個(gè).xlsx文件:模型的數(shù)據(jù)文件,每個(gè)文件存儲(chǔ)一種標(biāo)準(zhǔn)件的數(shù)據(jù),.xlsx文件的文件名也要與.txt文件中的標(biāo)準(zhǔn)件類別名稱一致,界面程序根據(jù)此名稱讀取相應(yīng)的數(shù)據(jù),.xlsx文件的第1個(gè)表格要有與圖5中表格相同的結(jié)構(gòu),變量相關(guān)參數(shù)根據(jù)不同模型進(jìn)行相應(yīng)設(shè)置;第2個(gè)表格要有與圖6中表格相同的結(jié)構(gòu)(第1列為規(guī)格參數(shù)標(biāo)識(shí)),變量相關(guān)參數(shù)根據(jù)不同模型進(jìn)行相應(yīng)設(shè)置;較為復(fù)雜的模型可以增加更多的表格存儲(chǔ)局部結(jié)構(gòu)數(shù)據(jù),以供表格2查詢獲取。

      5).exp文件:NX表達(dá)式文件,界面程序的輸出結(jié)果,相應(yīng)的.prt模型文件導(dǎo)入此文件即可生成新規(guī)格的模型,快速形成標(biāo)準(zhǔn)件系列化。

      用戶在使用過程中如果想增加一種標(biāo)準(zhǔn)件類別,不用更改.exe界面程序,只需在.txt文件中增加一行標(biāo)準(zhǔn)件類別名稱,并增加符合以上要求的、同名的.prt文件和.xlsx文件,界面程序根據(jù)名稱自動(dòng)識(shí)別新增的標(biāo)準(zhǔn)件類別,實(shí)現(xiàn)了應(yīng)用程序極好的擴(kuò)展性。

      5.2 實(shí)施效果

      點(diǎn)擊執(zhí)行.exe程序,出現(xiàn)初始界面。

      依次選擇標(biāo)準(zhǔn)件類型和規(guī)格參數(shù),標(biāo)準(zhǔn)件類型列表為程序讀取.txt文件獲取,規(guī)格參數(shù)列表為程序根據(jù)所選的標(biāo)準(zhǔn)件類型自動(dòng)從相應(yīng).xlsx文件中第2個(gè)表格的第1列獲取。

      完成設(shè)置后點(diǎn)擊“生成表達(dá)式”按鈕即可生成所選標(biāo)準(zhǔn)件(直通接頭1D-52)的表達(dá)式文件。

      然后點(diǎn)擊“打開3D文件”按鈕,打開相應(yīng).prt模型文件,通過NX導(dǎo)入程序生成的表達(dá)式文件即可快速生成新的模型。

      這種標(biāo)準(zhǔn)件庫建模方式最大的優(yōu)點(diǎn)是不需更改界面程序,用戶只需進(jìn)行txt文件、Excel數(shù)據(jù)和NX模型相關(guān)操作就可以快速生產(chǎn)不同零件類型的標(biāo)準(zhǔn)件庫,程序的擴(kuò)展性和通用性非常好,提高了標(biāo)準(zhǔn)件建模的效率。

      6 結(jié)束語

      猜你喜歡
      標(biāo)準(zhǔn)件管接頭單元格
      標(biāo)準(zhǔn)件庫的建立與應(yīng)用
      玩轉(zhuǎn)方格
      玩轉(zhuǎn)方格
      1000MW超超臨界鍋爐低過進(jìn)口集箱管接頭裂紋分析
      淺談Excel中常見統(tǒng)計(jì)個(gè)數(shù)函數(shù)的用法
      西部皮革(2018年6期)2018-05-07 06:41:07
      油管接頭臺(tái)階密封面的接觸壓力及密封性能
      CATIA V5標(biāo)準(zhǔn)件庫的創(chuàng)建與使用
      汽車零部件(2014年5期)2014-11-11 12:24:34
      基于知識(shí)的組合機(jī)床夾具可擴(kuò)充標(biāo)準(zhǔn)件庫的開發(fā)
      古代建筑的標(biāo)準(zhǔn)件
      卡套式管接頭應(yīng)用探討
      河南科技(2014年7期)2014-02-27 14:11:22
      云南省| 织金县| 巴塘县| 文登市| 额尔古纳市| 三亚市| 万载县| 天津市| 重庆市| 抚顺市| 合江县| 唐山市| 田林县| 漯河市| 甘泉县| 太原市| 莱阳市| 九寨沟县| 彩票| 永福县| 沙雅县| 同德县| 澜沧| 房产| 遵化市| 连州市| 灌阳县| 靖江市| 嘉荫县| 黑山县| 二连浩特市| 开化县| 绥滨县| 五家渠市| 中西区| 裕民县| 乌鲁木齐市| 秀山| 绥德县| 黑水县| 开化县|