国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

CATIA VBA二次開發(fā)在裝配中批量搜索零件的應(yīng)用

2021-01-25 01:40梁鋒鐘建強(qiáng)羅培鋒陳東
汽車實(shí)用技術(shù) 2021年1期
關(guān)鍵詞:用戶界面文本框批量

梁鋒,鐘建強(qiáng),羅培鋒,陳東

(廣州汽車集團(tuán)股份有限公司汽車工程研究院,廣東 廣州 511434)

前言

CATIA 是全球出色的產(chǎn)品設(shè)計(jì)和體驗(yàn)解決方案。它被不同行業(yè)的領(lǐng)導(dǎo)組織所采用,用以開發(fā)我們?nèi)粘I钜姷胶褪褂玫漠a(chǎn)品,常見的是飛機(jī)及汽車設(shè)計(jì)開發(fā)領(lǐng)域。CATIA在世界制造業(yè)中具有舉足輕重的地位,波音飛機(jī)公司使用CATIA完成了整個(gè)波音777的電子裝配,創(chuàng)造了業(yè)界的一個(gè)奇跡,從而也確定了CATIA在CAD/CAE/CAM行業(yè)內(nèi)的領(lǐng)先地位[1]。車身開發(fā)過(guò)程中,經(jīng)常需要在裝配中對(duì)于同種材料屬性的零件著色,比如鍍鋅板,用于校核或者作為報(bào)告用圖。目前常規(guī)的方法有兩個(gè),一個(gè)是對(duì)照BOM表逐個(gè)選擇后分別著色;另一個(gè)通過(guò)EXCEL表輔助,生成需執(zhí)行的搜索語(yǔ)法,然后復(fù)制至CATIA高級(jí)搜索欄中的組合查詢實(shí)現(xiàn)批量搜索。本文針對(duì)后者,使用 VBA進(jìn)行二次開發(fā),通過(guò)對(duì)多個(gè)零件號(hào)進(jìn)行處理直接生成搜索語(yǔ)法,進(jìn)而實(shí)現(xiàn)程序的批量搜索。

1 理論介紹

1.1 CATIA二次開發(fā)方法

CATIA二次開發(fā)的主要方法有四種:一是 Automation API(使用自動(dòng)化應(yīng)用接口的宏),CATIA Automation API采用面向?qū)ο蠹夹g(shù)設(shè)計(jì),是一個(gè)開放易學(xué)的體系結(jié)構(gòu),適應(yīng)于大多數(shù)自行設(shè)計(jì)插件的工程師;二是Knowledge Ware(知識(shí)工程模塊),是基于規(guī)則的,主要應(yīng)用于建模、檢查、審查等過(guò)程的;三是采用Interactive User Defined Feature(交互式用戶定義特征),主要于用建模過(guò)程的特征重用;四是CAA V5的C++和JAVA應(yīng)用接口,此法需要專業(yè)的編程軟件及工具,對(duì)開發(fā)人員要求較高,適合比較深層次的CATIA二次開發(fā)。

1.2 CATIA 二次開發(fā)流程

CATIA二次開發(fā),其核心是利用CATIA提供的API接口進(jìn)行程序設(shè)計(jì)開發(fā),開發(fā)拓展 CATIA軟件功能,實(shí)現(xiàn)CATIA功能個(gè)性化和操作自動(dòng)化。CATIA 基于開放式可擴(kuò)展的 V5 架構(gòu)使得用戶可以方便地通過(guò)二次開發(fā)擴(kuò)展應(yīng)用功能。二次開發(fā)是對(duì)軟件進(jìn)行個(gè)性化和專業(yè)化有有效手段,可以使軟件更好地為用戶服務(wù),對(duì)提高工作效率和產(chǎn)品質(zhì)量,節(jié)約研發(fā)成本和縮短開發(fā)周期有著重要的作用[2]。

進(jìn)行CATIA二次開發(fā),要了解CATIA V5 Automation API的基本架構(gòu)及主要對(duì)象的概念、用法及它們之間的關(guān)系,掌握常用對(duì)象的屬性和方法。CATIA V5 Automation 對(duì)象架構(gòu)如圖1所示。

圖1 CATIA V5 Automation對(duì)象架構(gòu)

CATIA二次開發(fā)的過(guò)程即是CATIA功能的個(gè)性化定制,其目的是滿足用戶使用習(xí)慣或者完成自動(dòng)化操作。其中自動(dòng)包含兩層意思,其一是重復(fù)操作的自動(dòng)化完成,其二是某些流程自動(dòng)化完成。開發(fā)人員為實(shí)現(xiàn)某種功能的二次開發(fā),根據(jù)需要合理地調(diào)用V5 Automation 提供的類、庫(kù)的屬性和方法以及二次開發(fā)函數(shù)。而CATIA中的每個(gè)功能以及所有的實(shí)體特征都有相應(yīng)的類、庫(kù)支撐,因此CATIA二次開發(fā)的主要工作就是合理地調(diào)用 V5 Automation API 對(duì)象進(jìn)行編程。CATIA VBA中提供了VB的功能,結(jié)合VB強(qiáng)大的功能和CATIA本身提供的豐富的類、庫(kù)及二次開發(fā)函數(shù),就能開發(fā)個(gè)性化的CATIA二次開發(fā)程序[3]。

2 CATIA按零件號(hào)的搜索方法

2.1 使用自帶搜索工具進(jìn)行搜索

使用 CATIA自帶搜索工具按以下步驟進(jìn)行按零件號(hào)搜索。在裝配模塊下,編輯—搜索(CTRL+F),調(diào)出搜索界面并進(jìn)入高級(jí)選項(xiàng)卡,工作臺(tái)選擇裝配設(shè)計(jì),類型選擇零件,屬性選擇零件編號(hào),在邏輯運(yùn)算符右側(cè)的文本框中輸入單個(gè)零件號(hào)進(jìn)行搜索,具體操作如圖2所示。

圖2 CATIA用自帶搜索工具按零件編號(hào)搜索零件

自帶搜索命令的優(yōu)點(diǎn)是操作簡(jiǎn)單,直觀方便,無(wú)需定制,對(duì)于單一零件較為實(shí)用。但是也有缺點(diǎn),僅能進(jìn)行單個(gè)零件精確搜索或者對(duì)具有相同字符串的零件號(hào)增加通配符進(jìn)行模糊搜索。

2.2 通過(guò)EXCEL輔助使用原有搜索工具進(jìn)行批量精確搜索

圖3 EXCEL輔助按零件號(hào)批量精確搜索

CATIA自帶搜索工具的高級(jí)選項(xiàng)支持組合查詢,即支持邏輯運(yùn)算,故可以通過(guò)EXCEL公式在表格中生成相應(yīng)搜索命令,然后復(fù)制至CATIA組合查詢框中執(zhí)行搜索,可以實(shí)現(xiàn)按零件號(hào)精確批量搜索。如在某個(gè)裝配下同時(shí)搜索零件號(hào)分別為80500890及40401410、40401420三個(gè)零件,在EXCEL制定的模板中,處理生成搜索語(yǔ)句:裝配設(shè)計(jì).零件.零件編號(hào)=80500890+裝配設(shè)計(jì).零件.零件編號(hào)=40401410+裝配設(shè)計(jì).零件.零件編號(hào)=40401420,然后復(fù)制至CATIA搜索組合查詢中,執(zhí)行搜索,如圖3所示。若CATIA為英文界面,需將字符串裝配設(shè)計(jì).零件.零件編號(hào)替換成''Assembly Design'.Part.'Part Number'。

2.3 程序自動(dòng)批量搜索

程序自動(dòng)批量搜索是利用編程語(yǔ)言調(diào)用 CATIA的 API接口,調(diào)用search方法進(jìn)行操作,通過(guò)程序控制完成按零件號(hào)的精確搜索。程序搜索法的特點(diǎn)是操作簡(jiǎn)單,搜索效率高,但是需要 CATIA二次開發(fā)的相關(guān)知識(shí),對(duì)設(shè)計(jì)人員要求較高。按零件號(hào)批量精確搜索的CATIA二次開發(fā)主要流程如圖4所示。

圖4 按零件號(hào)批量精確搜索的主要流程

3 CATIA二次開發(fā)

3.1 用戶界面設(shè)計(jì)

程序用戶界面是衡量一個(gè)程序或軟件實(shí)用性的重要指標(biāo)。CATIA二次開發(fā)中設(shè)計(jì)用戶界面通常有兩種方法。第一種也是最常用的,直接在CATIA VBA窗口中插入U(xiǎn)serForm(用戶窗體),并通過(guò)Toolbox工具進(jìn)行相關(guān)設(shè)計(jì),然后通過(guò)使用文本框及按鈕等控件實(shí)現(xiàn)界面的設(shè)計(jì)。另一種是直接在VB軟件中設(shè)計(jì),按鈕等控件的詳細(xì)設(shè)計(jì)同第一種。但因?yàn)閂B獨(dú)立于CATIA的,是微軟開發(fā)的一種面向?qū)ο蟮目梢暬?,屬于CATIA進(jìn)程外的應(yīng)用程序,所以后者需在前面的基礎(chǔ)上加入調(diào)用外部程序。本程序的用戶界面采用的第一種方法。CATIA按零件號(hào)批量搜索程序的界面設(shè)計(jì)如圖5所示。

圖5 CATIA按零件號(hào)批量搜索程序的界面

3.2 主要程序代碼

判斷CATIA用戶界面語(yǔ)言是中文還是英文,代碼如下。

a = Left(CATIA.Statusbar,1)

if a > "~" then

msgbox "中文"

end if

msgbox "英文"

按回車符分割輸入框中的多個(gè)零件號(hào)并返回?cái)?shù)組,代碼如下,TextBox1為程序界面輸入文字的文本框。

arr = Split(TextBox1.Text, vbCrLf)

根據(jù)用戶界面語(yǔ)言為不同語(yǔ)言,用指定字符串分別與arr(0)連接兩組代碼。

中文環(huán)境下:

mystr = "裝配設(shè)計(jì).零件.零件編號(hào)=" & arr(0)

循環(huán),連接所有成員。

For i = 1 To UBound(arr)

mystr = mystr & "+" & "裝配設(shè)計(jì).零件.零件編號(hào)=" & arr(i)

Next

newstr = "" & mystr & ",all" & ""

英文環(huán)境下:

mystr = "'Assembly Design'.Part.'Part Number'=" & arr(0)

循環(huán),連接所有成員。

For i = 1 To UBound(arr)

mystr = mystr &"+" & "'Assembly Design'.Part.'Part Num ber'=" & arr(i)

Next

newstr = "" & mystr & ",all" & ""

將上述兩組代碼分別替換判斷用戶界面語(yǔ)言中的msgbox "中文"及msgbox "中文"即得到本程序的主要代碼。

根據(jù)以上得到的字符串執(zhí)行搜索,代碼如下。

Sub 搜索()

Dim selection1 As Selection

Dim visPropertySet1 As VisPropertySet

Dim productdocument1 As Document

Set productdocument1 = CATIA.ActiveDocument

Set selection1 = productdocument1.Selection

selection1.Search mystr

End Sub

以上為中英文界面通用搜索命令的相應(yīng)代碼。將本程序中mystr根據(jù)CATIA自帶高級(jí)搜索界面的命令進(jìn)行適應(yīng)性修改,可以得到其他批量搜索功能。比如,將上述代碼的'Assembly Design'.Part.'Part Number'、"裝配設(shè)計(jì).零件.零件編號(hào)="分別改為'Assembly Design'. Assembly.'Part Number'、"裝配設(shè)計(jì).裝配.零件編號(hào)=",即可批量搜索裝配。

4 實(shí)例驗(yàn)證

4.1 按零件號(hào)精確批量搜索

以 6個(gè)零件組成的裝配為例,同時(shí)搜索零件號(hào)為80500890及40401410、40401420三個(gè)零件。

(1)打開需搜索的裝配。

(2)打開按零件號(hào)批量搜索程序。

(3)復(fù)制零件號(hào)或者手工輸入零件號(hào)至文本框,如圖6所示。

圖6 按零件號(hào)批量搜索輸入框

(4)執(zhí)行搜索,即可選中文本框中零件,如圖7所示。

圖7 程序按零件號(hào)批量搜索

4.2 按有相同字符串的零件號(hào)進(jìn)行模糊批量搜索

本程序亦可執(zhí)行模糊搜索,以上述裝配為例,對(duì)具有開頭為8050的零件號(hào)進(jìn)行批量搜索。步驟同上面,僅需將步驟(3)改為8050*,執(zhí)行中文搜索,結(jié)果如圖8所示。

圖8 開頭為8050的零件號(hào)批量搜索

5 結(jié)論

通過(guò) CATIA按零件號(hào)批量精確搜索及模糊搜索實(shí)例驗(yàn)證,可以看出使用CATIA VBA代碼批量搜索零件號(hào),可以簡(jiǎn)化操作人員的操作步驟,在使用過(guò)程中更加便捷快速、準(zhǔn)確,證明了CATIA二次開發(fā)對(duì)于設(shè)計(jì)人員有著較高的實(shí)用性與高效性。結(jié)果表明,CATIA二次開發(fā)對(duì)于提高工作效率、減少重復(fù)操作有著不可或缺的作用,可以讓工程師更專注于設(shè)計(jì)研發(fā)工作中。

猜你喜歡
用戶界面文本框批量
云南:鐵路“520”運(yùn)輸鮮花4萬(wàn)余件 高鐵批量運(yùn)輸創(chuàng)新高
批量提交在配置分發(fā)中的應(yīng)用
巧用文本框?qū)崿F(xiàn)PPT多圖片排版
批量下載自己QQ空間上的相冊(cè)
微軟新專利展示可折疊手機(jī)設(shè)計(jì)
PPT文本框的另類應(yīng)用
物聯(lián)網(wǎng)用戶界面如何工作
計(jì)算機(jī)軟件用戶界面設(shè)計(jì)分析
圖片動(dòng)畫玩異樣
用Android Fragment技術(shù)實(shí)現(xiàn)多級(jí)選項(xiàng)列表