999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SolidWorks的自動焊縫標注的二次開發

2020-05-21 03:33:01張澤南仲梁維
軟件工程 2020年5期
關鍵詞:二次開發

張澤南 仲梁維

摘? 要:在進行大型焊接零部件設計時,在現有的三維設計軟件中設計人員通常采用多實體零件的設計方式進行設計,但是在工程圖中焊縫的標注往往是十分費時和費力的,同時為了統計模型中的焊縫信息形成相應的焊縫清單,目前任是人工操作,大大增加了工作量和焊接件的設計周期。文章主要基于SolidWorks三維設計軟件,采用C#編程語言,利用SolidWorks對外開放的API函數接口,結合實際的焊縫識別準則,實現了自動提取多實體三維設計模型中的焊縫信息,采用SQLServer數據庫對焊縫信息進行存儲與讀取,并在工程圖中進行自動焊縫標注,同時導出對應的焊縫清單。大大減少了人工進行焊縫識別和標注的過程,提高了焊接件的工程圖的出圖效率,對于減少焊接件的設計周期有著現實的意義。

關鍵詞:焊縫識別;自動標注;多實體零件;二次開發;SolidWorks

中圖分類號:TP319? ? ?文獻標識碼:A

Abstract: When designing large welded parts, the existing 3-d design software designers usually design the parts as separate entities, but the drawing of the weld marks tend to be very time-consuming and laborious, and at the same time in order to form the corresponding weld mark list, the task is now a manual operation, which greatly increased the workload and product design cycle. Based on SolidWorks 3-d design software, the paper uses C# programming language, SolidWorks open API interface, and the actual welding seam recognition criteria to achieve the automatic extraction of multi-entity weld information in three-dimension design model, SQLServer database is used to store and save the weld information, carries out automatic weld marking of engineering drawing, and export the corresponding weld listing at the same time. It greatly simplifies the process of manual identification and marking of welding seams, and improves the efficiency of engineering drawing of welding parts, with practical significance for reducing the design cycle of welding parts.

Keywords: weld identification; automatic marking; multiple solid parts; secondary development; SolidWorks

1? ?引言(Introduction)

焊接與連接是國家自然科學基金委員會機械工程學科的重要領域,是零部件成形制造的重要工藝方法,是實現大到巨型結構小到微納器件輕量化和功能化的主要途徑之一,對實現裝備制造綠色環保和節能減排具有重要意義[1]。焊接技術被譽為工業的裁縫,在工業化發展的進程中,焊接在船舶、汽車、航空航天、軍事等領域發揮著不可替代的作用。21世紀的制造業正在逐步向“數字化”“智能化”方向發展,焊接也正順應著這種趨勢,向自動化焊接的方向快步前進[2,3]。在SolidWorks三維設計軟件中對焊接件進行設計,工程圖進行標注時,需要手動標注和識別焊縫,對于焊縫的信息需要人工進行測量和導出,當焊接件的實體數量龐大時,設計人員的工作量大幅度的增加,且容易出錯。SolidWorks是基于特征的三維參數化造型軟件,對于用戶的自定義二次開發提供了良好的支持,在SolidWorks中進行程序化建模時,需要針對SolidWorks進行二次開發,通過SolidWorks API接口,編制能夠嵌入SOLIDWORKS的插件,通過調用插件進行程序化繪圖[4]。運用二次開發技術,結合Visual Studio2012開發平臺可實現特定功能的產品開發,可以拓展和彌補SolidWorks自身的不足。

2? ?開發原理(Development principle)

SolidWorks提供了完整的免費的二次開發工具API,凡是支持COM編程的開發工具,如Visual C++6.0(以下簡稱VC++)、Visual Basic、Delphi等均可直接調用這些API函數開發出用戶自己的程序模塊,提高設計的效率與正確率[5]。為了方便用戶進行二次開發,SolidWorks提供了幾百個API接口。這些API接口分為兩種,即OLE Automation的IDispatch和作為Windows基礎的COM(Component Object Model組件對象模型)[6]。對應的SolidWorksAPI對象模型如圖1所示,它是一個自上而下的樹型結構。

SolidWorks的二次開發主要有兩種:一種是基于自動化技術而生成的EXE可執行文件,另一種是基于COM開發SolidWorksAdd-in,生成一個DLL插件[7]。其中SolidWorks Add-in和SolidWorks程序運行于同一個進程空間,Add-in比主程序有更大的控制力,菜單、工具欄及屬性控制頁都可以插件形式在SolidWorks中實現。其中,第二種技術運用非常廣泛,生成的DLL插件可以融合在SolidWorks設計環境中,增加工具欄的功能,更加便于設計者進行設計操作[8]。本文采用的開發方式為C#語言對應的SwAddin插件進行的二次開發,對應開發界面效果如圖2所示。

3? 三維模型焊縫信息提取(3D model weld information extraction)

雖然本文最終的目的是在工程圖中進行焊縫標注,但是在工程圖中無法識別出三維的信息,所以首先要在三維模型空間中提取焊縫的信息,具體實現流程的大體框架如圖3所示。

其中關于接頭形式的判斷,交線的識別,在后面小節有詳細的介紹。在SolidWorks三維設計軟件中可以通過遍歷特征樹的技術訪問到Cut list切割清單,并通過二次開發可以方便提取其中的實體,通過實體文件夾的創建3D box框的屬性,可以在進入cut list后可通過其屬性訪問實體的厚度,長度,寬度等信息,保存記錄作為焊接接頭形式判斷的依據之一。經過第一步提取可將三維模型中的所有實體對象存儲到C#列表中,作為循環遍歷的主體部分。

3.1? ?焊接接頭形式識別

焊接接頭是指兩個或兩個以上零件要用焊接組合的接點。或指兩個或兩個以上零件用焊接方法連接的接頭,包括焊縫、熔合區和熱影響區。熔焊的焊接接頭是的由高溫熱源進行局部加熱而形成。焊接接頭由焊縫金屬、熔合區、熱影響區和母材金屬所組成[9]。焊接接頭形式可分為對接接頭、T型接頭、搭接接頭、角接接頭,對應的不同形式的接頭類型如圖4所示。

本文中只針對對接接頭和T型接頭進行識別,這里一個十分重要的識別準則為:厚度對厚度的接頭為對接接頭,厚度對長度或者厚度對寬度的接頭形式都為T型接頭,對于角接接頭的處理原則為:如果角接的角度等于90°則作為T型接頭處理,否則作為對接接頭處理。對于搭接接頭的形式出現較少,這里就直接忽略了。此外,本文只針對了兩個實體間的焊縫進行了識別處理,可能會出現三個實體同時出現焊縫的情形,這里沒有進行焊縫的合并,只是單獨按照兩兩之間進行識別處理,存在一些不足。

3.2? ?實體交線信息提取方法

有了實體信息和接頭的判斷準則,下面是如何進行判斷焊縫,在多實體零件中,焊縫只出現在兩個實體的交線部分,所以要對實體之間求取交線。運用SolidWorks二次開發技術,對于實體是屬于IBody2這個對象,在這個對象下可以通過GetFaces方法獲取該體的所有表面,通過GetEdges方法可以獲取該體上所有的邊線,通過GetIntersectionEdges方法可以獲取兩個實體對象之間的交線。對于交線,可以求出交線的長度,作為焊縫長度的信息。

3.3? ?公共面提取法

如果兩個實體的交線不止一條,則求取兩個實體公共面,通過計算公共面,如果兩個公共面都包含厚度尺寸,則認為是對接接頭,否則為T型接頭。如果兩個實體的交線只有一條,這個時候就要求取該包含該交線的兩個實體的面,計算兩個實體之間包含交線的面之間的夾角,如果夾角為0度、90度、180度中的任何一個值,說明是T型接頭,否則為對接接頭。現在針對交線不止一條的情況來討論公共面的尋找的方法:通過IEdge邊線對象,可以利用GetTwoAdjacentFaces2方法獲取包含該線的面,通過兩條交線來獲取包含交線的面的對象,這里可能的面的個數為2個、3個或者4個。對于兩個面的情形說明兩條交線都在面內,這兩個面是同一個對象,任意取一個作為公共面,3個和4個的情形需要比較這幾個面中哪兩個是相同的面,可以利用IFace2對象下的IsSame方法比較兩個面是否為同一個面。這樣就可以找出公共面。對于只有一條交線的情況,只需要求取兩個實體上包含交線的面中任意兩個面之間的夾角。獲取包含交線面的方法和多條交線的情況一樣。

3.4? ?焊縫標記定位

提取到的每一條焊縫需要定位,方便在工程圖中辨識每一條線是否為焊縫線的投影。這里可以利用實體命名的方式來進行焊縫對象的標記。可通過PartDoc對象模型下的SetEntityName方法為實體進行命名,其效果如圖5所示。

4? ?工程圖自動焊縫標注(Automatic weld marking of engineering drawing)

在三維模型中對焊縫信息進行了提取,對焊縫進行了標定。在工程圖中需要進行標注,對于工程圖,利用遍歷工程視圖的方式,通過IView對象下的GetPolylines7方法可以獲得工程視圖中所有的邊線。但是如何將工程視圖中的邊線和三維中的邊線對應起來,需要進行映射關系轉換,找到對應的三維中的線再查看該線是否被標記,二維中的線需要將IEdge對象轉化為IEntity對象,通過ModelName屬性可以獲取對應的實體名稱,如果是焊縫則被標記,如果不是則為空。

4.1? ?三維模型到工程圖映射關系

在SolidWorks中三維圖形變換都是通過變換矩陣來完成的,該變化矩陣如式(1)所示。

該矩陣一共包含16個元素,a—i前9個元素構成的3×3子矩陣表示旋轉矩陣,后面三個元素(j,k,l)為平移矢量,m表示比例因數,(n,o,p)在這里沒有實際意義[10]。對于每一個視圖IView對象,可以通過ModelToViewTransform獲取三維模型到二維視圖的轉換矩陣,這里需要注意的是在二維視圖中遍歷到的線段對象是對應三維空間的線段,對應到二維視圖中,只需要執行矩陣的乘積運算即可,假設三維空間的一個點A(Xa,Ya,Za),對應到二維視圖的坐標點為B(Xb,Yb,Zb)則有如式(2)的運算關系:

注意這里的坐標點轉換為其次坐標的形式,這樣可以實現三維到二維的轉換,在二維視圖中對線進行選擇,從而進行標注的實現。

4.2? ?定位焊縫標注

對于焊縫標注需要四個步驟:首先在找到相應的焊縫邊線對應的二維坐標點之后,可以通過模型對象ModelDoc下的擴展屬性下的SelectByID2方法來選中對應的邊線;其次就可以插入焊縫標注序號,插入之前需要先創建標注對象,這里同樣是通過模型對象下的擴展方法CreateBalloonOptions來創建對象,并且設置相關的屬性;然后用InsertBOMBalloon2方法插入創建的標注;最后在插入標注的序號之后再更改相應的屬性,設置該標注依附的實體對象。

4.3? ?焊縫標注位置調整

焊縫序號標注完成之后是不整齊的,需要進行位置的調整,達到圖紙的要求。這里序號調整的方法是利用視圖的邊框屬性,將焊縫序號調整到邊框外圍固定的位置,并且按照一定的間隔進行排布。實現方式流程大致為:第一步:通過IView對象的GetOutline方法獲取外邊框。第二步:遍歷獲取該視圖中焊縫序號的個數,同時獲取焊縫標注附著點的坐標。第三步:根據邊框尺寸和焊縫序號個數均勻分布焊縫標注。最終實現效果如圖6所示。

5? 焊縫序號調整和清單導出(Weld number adjustment and list export)

之前提到,本文只針對兩個實體之間進行焊縫識別,對于接頭形式的判斷也做了一些調整,所以有的地方可能還需要改動,就會涉及焊縫序號的刪除或者重新添加等操作。在通過程序進行焊縫序號的重新調整。對于提取數據的結果的修改界面如圖7所示。

對于序號的變更的原則分為兩種情況:第一種是圖紙未下發前,更改原則為,刪除的焊縫序號要重用,新增加的按序號遞增進行排序;第二種是圖紙下發后,更改原則為,刪除的焊縫序號不在重用,新增加的序號按序號遞增進行排序。這里介紹實現過程的方法,在圖紙上設計人員進行的操作是無法獲知,每次更改過后程序會遍歷一遍圖紙,判斷原來的序號還有哪些,給一個標記,新增的序號按照剩余的序號的個數給以新的序號進行增加,給一個新的標記。對于原來的序號重新進行排序,依據次修改序號的值。這部分的判斷結合數據庫來綜合判斷的,其數據庫的設計如圖8所示。

圖8 焊縫數據庫設計

Fig.8 Weld database design

數據庫會記錄原有焊縫標注序號的名稱,在遍歷圖紙上的焊縫序號時,如果可以在數據庫中查詢到說明是沒有更改的,此時給這個序號的delete值一個新的標記,如果查詢不到則說明是新增加的,同時給delete值一個新的標記,這里需要注意的是每次修改完并進行排序之后需要重新將delete值重新初始化,這樣就可以實現反復的修改與排序。對于在圖紙下發以后的操作是類似的,只需要備份一份數據庫,在新的數據庫中進行操作即可,這里不再贅述。

修改完之后進行焊縫清單導出,其結果如圖9所示。

6? ?結論(Conclusion)

本文針對實際的焊接件出圖時對焊縫序號進行標注、焊縫清單導出的人工操作工作量大,對于SolidWorks自身對于焊縫標注模塊的缺點進行優化,結合二次開發技術來實現程序的自動焊縫序號標注過程,以及焊縫清單的自動導出,實現了該模塊的智能快速設計,提高設計人員出圖效率,減少了人工干預而且容易出錯的問題,但本文中還存在缺點與不足,對于焊接接頭形式做了簡化處理,沒有包含搭接接頭的判斷,而且只針對兩兩實體之間的焊縫的判斷和信息的提取,對于三個之間的情況做了拆解,在實際情況中這種情形出現雖然比較少,但是這部分還是需要人工標定,是文中的一個缺陷。從實際應用出發,該程序已經可以達到工程實際的運用,對于少量特殊的部分需要結合人工進行標定。

參考文獻(References)

[1] 賴一楠,武傳松,李宏偉,等.焊接與連接領域科學基金資助淺析與發展趨勢[J].焊接學報,2019,40(02):1-7;161.

[2] Lee D,Ku N,Kim T,et al.Development and application of an intelligent welding robot system for shipbuilding[J].Robotics and Computer-Integrated Manufacturing,2011,27(2):377-388.

[3] Muhammad,J.,Altun,H.,Abo-Serie,E.Welding seam profiling techniques based on active vision sensing for intelligent robotic welding[J].The International Journal of Advanced Manufacturing Technology,2017,88(1-4):127-145.

[4] 韓博,許允斗,郭路瑤,等.四面體構架式可展天線型面劃分與程序化建模[J].中國機械工程,2019,30(12):1400-1408.

[5] 陳超祥,胡啟登.SolidWorks高級教程簡編[M].北京:機械工業出版社,2015.

[6] 李向陽.SolidWorks二次開發的研究[J].精密制造與自動化,2008(02):37-38;53.

[7] 李妍姝.基于SolidWork-API二次開發的錐齒輪自動建模與仿真[J].工業技術創新,2016,3(2):234-238.

[8] 索超,李玉翔,林樹忠.基于VB語言對SolidWorks參數化設計的二次開發[J].制造業自動化,2013(15):137-139.

[9] 朱亮,陳劍虹.熱影響區軟化焊接接頭的強度及變形[J].焊接學報,2004,25(2):61-65;131.

[10] 孫文龍,仲梁維,牛亞運.基于SolidWorks的工藝門的智能快速設計系統[J].農業裝備與車輛工程,2019,57(8):100-103.

猜你喜歡
二次開發
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
西門子Operate高級編程的旋轉坐標系二次開發
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
基于C#的AutoCAD建筑構件庫二次開發
江西建材(2018年2期)2018-04-14 08:01:14
西門子Easy Screen對倒棱機床界面二次開發
基于全站儀二次開發的覆冰厚度測量與實現
電測與儀表(2016年9期)2016-04-12 00:29:52
Micaps3.2 版本二次開發入門淺析
西藏科技(2015年12期)2015-09-26 12:13:51
基于VB的ANSYS二次開發在變壓器抗短路性能分析中的應用
基于CATIA的橡皮囊成形毛料展開的二次開發
機械工程師(2015年9期)2015-02-26 08:38:10
ANSYS Workbench二次開發在汽車穩定桿CAE分析中的應用
汽車零部件(2014年5期)2014-11-11 12:24:32
主站蜘蛛池模板: 日韩大片免费观看视频播放| 丁香婷婷在线视频| AV不卡在线永久免费观看| 亚洲天堂网2014| 一级毛片免费不卡在线| 中文字幕 日韩 欧美| 日韩天堂视频| 18禁黄无遮挡网站| 中文字幕第1页在线播| www欧美在线观看| 日韩亚洲综合在线| 国产粉嫩粉嫩的18在线播放91 | 欧美日韩亚洲综合在线观看| 国产18在线| 99久久精品免费看国产免费软件| 欧美视频在线不卡| 国产亚洲精品yxsp| 亚洲中文字幕久久精品无码一区| 亚洲成a人片77777在线播放| 5555国产在线观看| 91精品国产综合久久香蕉922| 国产网站免费| 欧美成人在线免费| 91成人在线观看| 国产va欧美va在线观看| 国产一级精品毛片基地| 女高中生自慰污污网站| 国产在线麻豆波多野结衣| 曰AV在线无码| 亚洲AⅤ无码国产精品| 国产高清国内精品福利| 国产91无毒不卡在线观看| 国产激情无码一区二区APP| 欧美性色综合网| 国产日本视频91| 一区二区欧美日韩高清免费| 日本人妻一区二区三区不卡影院| 国产中文一区a级毛片视频| 国产精品浪潮Av| 亚洲欧洲一区二区三区| 日韩福利视频导航| 国产精品女主播| 黄色网址免费在线| 亚洲乱亚洲乱妇24p| 天堂成人在线| 免费观看无遮挡www的小视频| 99re在线视频观看| 精品无码日韩国产不卡av| 欧美激情第一欧美在线| 高清欧美性猛交XXXX黑人猛交| 宅男噜噜噜66国产在线观看| 国产精品亚洲一区二区三区在线观看| 18禁影院亚洲专区| AV网站中文| 国产对白刺激真实精品91| 亚洲国产午夜精华无码福利| 日本午夜在线视频| 黄色三级毛片网站| 一级做a爰片久久毛片毛片| 干中文字幕| 欧美成人综合视频| 国产va在线| 亚洲香蕉久久| 一级片免费网站| 99偷拍视频精品一区二区| 无码一区18禁| AV无码一区二区三区四区| 亚洲精品777| 麻豆精品在线| 尤物在线观看乱码| 国产女人喷水视频| 米奇精品一区二区三区| 日本福利视频网站| 国产一区二区三区免费观看| 国产成人资源| 伊人久热这里只有精品视频99| 亚洲av无码成人专区| 成人日韩视频| 综合色88| 日韩在线中文| 国产成人精品男人的天堂下载| 国产欧美在线|