无码亚洲国产一区二区三区电影,国产精品综合网,一级做a爰片久久毛片潮喷免费一,精品国产一区二区三av无蜜臀
  • <tbody id="fzefn"></tbody>
    <tbody id="fzefn"></tbody>

    <track id="fzefn"></track>

      <bdo id="fzefn"><optgroup id="fzefn"><thead id="fzefn"></thead></optgroup></bdo>
    1. « 首頁 - 西安必信達軟件技術有限公司 - BXDSOFT.COM
      基于SolidWorks的自動焊縫標注的二次開發
      「在進行大型焊接零部件設計時,在現有的三維設計軟件中設計人員通常采用多實體零件的設計方式進行設計,但是在工程圖中焊縫的標注往往是十分費時和費力的,同時為了統計模型中的焊縫信息形成相應的焊縫清單,目前任是人工操作,大大增加了工作量和焊接件的設計周期。文章主要基于SolidWorks三維設計軟件,采用C#編程語言,利用SolidWorks對外開放的API函數接口,結合實際的焊縫識別準則,實現了自動提取多實體三維設計模型中的焊縫信息,采用SQLServer數據庫對焊縫信息進行存儲與讀取,并在工程圖中進行自動焊縫標注,同時導出對應的焊縫清單。大大減少了人工進行焊縫識別和標注的過程,提高了焊接件的工程圖的出圖效率,對于減少焊接件的設計周期有著現實的意義。(2023-2-25)」
      關鍵詞:焊縫識別;自動標注;多實體零件;二次開發;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型接頭,否則為對接接頭,F在針對交線不止一條的情況來討論公共面的尋找的方法:通過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.
      (齒惰)
      點擊進入「必信達創業合作論壇」下一篇:采用二次開發方法的成果管理GIS系統設計與實現 »
      Copyright © 1999-2023 西安必信達軟件技術有限公司
      无码亚洲国产一区二区三区电影,国产精品综合网,一级做a爰片久久毛片潮喷免费一,精品国产一区二区三av无蜜臀