• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    SolidWorks二次開(kāi)發(fā)草圖繪制不準(zhǔn)確的分析與探討

    2022-05-14 03:27:16倪洪啟何崇玉孟憲春
    機(jī)械工程師 2022年5期
    關(guān)鍵詞:球閥草圖二次開(kāi)發(fā)

    倪洪啟, 何崇玉, 孟憲春

    (1.沈陽(yáng)化工大學(xué) 機(jī)械與動(dòng)力工程學(xué)院,沈陽(yáng) 110142;2.秦皇島北方管業(yè)有限公司 河北省波紋膨脹節(jié)與金屬軟管技術(shù)創(chuàng)新中心,河北 秦皇島 066004)

    0 引言

    隨著智能制造的興起,CAD/CAM的運(yùn)用也越來(lái)越廣泛。作為一款基于Windows開(kāi)發(fā)的CAD軟件,SolidWorks軟件的市場(chǎng)占有率非常高。SolidWorks軟件提供應(yīng)用程序接口(Application Programming Interface,API)函數(shù)庫(kù),可供用戶進(jìn)行二次開(kāi)發(fā)[1]。開(kāi)發(fā)人員通過(guò)該軟件進(jìn)行開(kāi)發(fā)時(shí)只需要調(diào)用SolidWorks API函數(shù)就可以對(duì)圖形進(jìn)行參數(shù)化,無(wú)需編寫(xiě)復(fù)雜的基本繪圖函數(shù)。同時(shí),該軟件自帶宏工具[2],通過(guò)宏錄制就可以快速獲取開(kāi)發(fā)人員所需要的庫(kù)函數(shù)。因此可以提高軟件的開(kāi)發(fā)效率,縮短開(kāi)發(fā)周期。

    目前,基于SolidWorks平臺(tái)的二次開(kāi)發(fā)主要有2種方法[3]:第一種是使用SoildWorks自帶的庫(kù)函數(shù),通過(guò)調(diào)用庫(kù)函數(shù),生成草圖,再進(jìn)行特征操作,完成整個(gè)零件圖的創(chuàng)建;第二種方法是參數(shù)化的方法,該方法和第一種方法類(lèi)似,不同的是創(chuàng)建零件的具體尺寸未在代碼中直接給定,而是用形參來(lái)代替。程序運(yùn)行時(shí),用戶可以手動(dòng)輸入尺寸的大小,生成自己所需要的模型。

    在實(shí)際通過(guò)SolidWorks平臺(tái)進(jìn)行二次開(kāi)發(fā)時(shí),會(huì)存在對(duì)象捕捉導(dǎo)致系統(tǒng)錯(cuò)誤捕捉和微小尺寸無(wú)法生成的問(wèn)題?;谝陨?種情況,會(huì)導(dǎo)致復(fù)雜草圖生成錯(cuò)誤或者生成草圖不準(zhǔn)確。本文基于VB.Net對(duì)SolidWorks進(jìn)行二次開(kāi)發(fā),分析開(kāi)發(fā)過(guò)程中的問(wèn)題,并提出一些解決方法。

    1 草圖繪制失敗的分析

    SoildWorks二次開(kāi)發(fā)中草圖繪制失敗主要有兩方面的原因:一方面是對(duì)象捕捉的影響,開(kāi)啟對(duì)象捕捉后,系統(tǒng)錯(cuò)誤的捕捉導(dǎo)致繪制失?。涣硪环矫媸抢L制的線條過(guò)小,模型草圖的尺寸很小時(shí),微小尺寸無(wú)法通過(guò)SolidWorks API的庫(kù)函數(shù)生成。

    1.1 對(duì)象捕捉導(dǎo)致的失敗

    SolidWorks中自帶了幾何關(guān)系/捕捉這個(gè)功能,用戶在使用SolidWorks進(jìn)行繪制草圖時(shí),軟件會(huì)自動(dòng)捕捉草圖中的端點(diǎn)、中點(diǎn)、相切、垂直等幾何關(guān)系,方便設(shè)計(jì)人員草圖的繪制[4]。但是,在通過(guò)調(diào)用庫(kù)函數(shù)對(duì)SolidWorks進(jìn)行二次開(kāi)發(fā)時(shí),軟件無(wú)法通過(guò)庫(kù)函數(shù)知道線與線之間的約束關(guān)系,會(huì)自動(dòng)給繪制的草圖增加一些錯(cuò)誤的約束,正因?yàn)檫@些錯(cuò)誤的約束,導(dǎo)致草圖繪制錯(cuò)誤。

    如圖1所示,打開(kāi)對(duì)象捕捉后,在繪制球閥草圖時(shí),由于兩端點(diǎn)之間距離過(guò)小,系統(tǒng)自動(dòng)將兩根線的端點(diǎn)連接在一起,關(guān)閉對(duì)象捕捉后,則可以成功繪制草圖。但是,關(guān)閉對(duì)象捕捉后,生成的看似閉合的草圖之間會(huì)存在縫隙,無(wú)法生成閉合草圖,因此無(wú)法對(duì)草圖進(jìn)行特征操作。

    圖1 球閥手柄草圖

    關(guān)閉對(duì)象捕捉產(chǎn)生間隙的原因主要是數(shù)據(jù)類(lèi)型導(dǎo)致的,通過(guò)VB.Net進(jìn)行編程時(shí),一般變量數(shù)據(jù)類(lèi)型都設(shè)為單精度型(Single)或雙精度(Double)型。無(wú)論單精度還是雙精度在儲(chǔ)存中都分為符號(hào)位、指數(shù)位和尾數(shù)部分等3個(gè)部分[5]。這種結(jié)構(gòu)是一種科學(xué)計(jì)數(shù)法,把一個(gè)浮點(diǎn)數(shù)表示為尾數(shù)乘以2的指數(shù)次方再添加符號(hào)[6]。但有些小數(shù)無(wú)法完整地用二進(jìn)制來(lái)表示,從而在儲(chǔ)存時(shí)可能有誤差。

    1.2 微小尺寸無(wú)法生成導(dǎo)致的失敗

    在通過(guò)SolidWorks平臺(tái)經(jīng)用底層API繪制草圖時(shí),如果繪制的直線長(zhǎng)度小于2 mm時(shí)或者圓弧夾角小于2°時(shí),這段直線或圓弧將不會(huì)生成。

    在通過(guò)API函數(shù)進(jìn)行開(kāi)發(fā)時(shí),所用的單位都是以米為單位[7],但在SolidWorks操作時(shí)所用的一般都以毫米為單位[8]。在繪制微小尺寸時(shí),本就微小的尺寸在縮小1000倍后變得更小,系統(tǒng)誤認(rèn)為繪制直線的兩點(diǎn)坐標(biāo)一致,導(dǎo)致微小尺寸無(wú)法生成。

    2 解決辦法

    針對(duì)以上2個(gè)問(wèn)題,本文中總共給出了3種方法,即取消對(duì)象捕捉、增加幾何約束和一種新提出的“剪切法”。每種方法有其不同的適用情景,在使用各個(gè)方法時(shí),開(kāi)發(fā)人員需要根據(jù)實(shí)際情況選擇合適的解決方法。

    2.1 取消對(duì)象捕捉法

    SolidWorks自帶的對(duì)象捕捉的功能會(huì)影響草圖的繪制,可以通過(guò)關(guān)閉草圖對(duì)象捕捉功來(lái)解決問(wèn)題。此方法繪制的草圖雖然可以通過(guò)SolidWorks中的修復(fù)草圖命令進(jìn)行修復(fù),但在SolidWorks API中暫時(shí)還沒(méi)有修復(fù)草圖的命令,因此,一般情況下關(guān)閉對(duì)象捕捉法主要用于直接繪制閉合圖形的情況,例如繪制矩形、圓形、鍵槽等。

    圖2所示的水泵開(kāi)關(guān)指示燈草圖。開(kāi)啟對(duì)象捕捉后,繪制一系列圓時(shí),有些圓會(huì)自動(dòng)與相鄰的圓施加相切約束,導(dǎo)致繪制不正確。關(guān)閉對(duì)象捕捉后,草圖生成成功,而且繪制的圖形是封閉圖形,不會(huì)影響后續(xù)的特征生成。

    圖2 水泵開(kāi)關(guān)指示燈草圖

    在實(shí)際使用過(guò)程中,我們一般都是先獲取原用戶對(duì)象捕捉設(shè)置,再關(guān)閉對(duì)象捕捉,進(jìn)行草圖繪制,繪制結(jié)束后再恢復(fù)原用戶設(shè)置,這樣可以避免運(yùn)行代碼時(shí)修改用戶原始的SolidWorks設(shè)置。其中VB.Net代碼如下:

    2.2 幾何約束法

    SolidWorks的Api中的庫(kù)函數(shù)可以對(duì)草圖進(jìn)行尺寸標(biāo)注、修改尺寸和施加各種約束,通過(guò)各種約束條件把草圖進(jìn)行完全約束,可以繪制出合格的草圖。在基于VB.Net的SolidWorks二次開(kāi)發(fā)中,添約束的庫(kù)函數(shù)為[9]:

    Part.SketchAddConstraints( IdStr As String ),其中約束類(lèi)型主要有以下幾種:在對(duì)草圖進(jìn)行尺寸標(biāo)注時(shí),我們需要先選中需要標(biāo)注的對(duì)象,再進(jìn)行標(biāo)注。庫(kù)函數(shù)[9]如下:

    圖3為水泵開(kāi)關(guān)主體的草圖,該草繪中存在多個(gè)細(xì)小尺寸,通過(guò)標(biāo)注尺寸、修改尺寸和添加約束的方法,能夠精確地繪制該草圖。

    圖3 水泵開(kāi)關(guān)草圖

    2.3 剪切法

    用約束法精確繪制草圖時(shí),碰到需要多個(gè)約束才能精確繪制的草繪,需要花費(fèi)大量時(shí)間進(jìn)行約束,會(huì)大大增加開(kāi)發(fā)難度,因此,通過(guò)綜合前2個(gè)方法的優(yōu)點(diǎn),提出了一種名為“剪切法”的新方法?!凹羟蟹ā敝饕抢昧薙olidWorks API中的剪切函數(shù),利用剪切函數(shù)修剪草圖時(shí),可以修復(fù)關(guān)閉對(duì)象捕捉后草圖不封閉的問(wèn)題。方法的主要流程如圖4所示,首先關(guān)閉對(duì)象捕捉,在繪制非閉合曲線時(shí)將線條繪制的長(zhǎng)度大于需要繪制的真實(shí)長(zhǎng)度,然后打開(kāi)對(duì)象捕捉,通過(guò)SolidWorks API中的剪切函數(shù),修剪不需要的線。最后對(duì)草圖進(jìn)行標(biāo)注,使其完全約束。打開(kāi)對(duì)象捕捉后,使用剪切函數(shù)能使交點(diǎn)處的點(diǎn)施加重合約束,解決了無(wú)法生成封閉草圖的問(wèn)題,巧妙地避開(kāi)關(guān)閉對(duì)象捕捉的缺點(diǎn)。此方法中SolidWorks API中的剪切函數(shù)為[9]:

    圖4 剪切法操作流程

    Part.SketchManager.SketchTrim( Option As String, X As Double, Y As Double , Z As Double)

    使用“剪切法”繪制復(fù)雜草圖時(shí),可以通過(guò)很少的代碼就可以得到非常復(fù)雜的草圖,極大地提高了開(kāi)發(fā)效率。

    3 應(yīng)用實(shí)例

    通過(guò)以上對(duì)草圖繪制問(wèn)題的研究,將該研究中的方法運(yùn)用于三片式球閥的三維參數(shù)化設(shè)計(jì)中,同時(shí)也驗(yàn)證了“剪切法”的實(shí)用性。

    在對(duì)三片式球閥進(jìn)行參數(shù)化設(shè)計(jì)時(shí),由于球閥手柄特別薄,尺寸比較小,所以繪制時(shí)最為麻煩。圖5為用“剪切法”繪制三片式球閥手柄的截面草圖的流程,首先繪制出大致的草圖,然后使用剪切函數(shù)修剪草圖,成功繪制出手柄的截面草圖,且草圖內(nèi)有陰影。在SolidWorks中草圖有陰影表示為封閉圖形,可以對(duì)草圖進(jìn)行拉伸(Imodel-Doc2:: FeatureExtrusion)、旋轉(zhuǎn)(IModelDoc2:: FeatureRevolve2)、掃描(IModelDoc2:: InsertProtrusionSwept4)、放樣(IModelDoc2:: InsertProtrusionBlend 4)等特征操作[9]。手柄的繪制表明“剪切法”在實(shí)際運(yùn)用時(shí)能夠較好地完成設(shè)計(jì)要求,且使用簡(jiǎn)單。

    圖5 三片式球閥手柄草圖繪制流程

    在本文開(kāi)發(fā)的三片式球閥的三維參數(shù)化設(shè)計(jì)應(yīng)用程序中,球閥的設(shè)計(jì)準(zhǔn)則與參數(shù)主要參考閥門(mén)設(shè)計(jì)手冊(cè)[10]。并使用Microsoft Access建立關(guān)系數(shù)據(jù)庫(kù)。其中應(yīng)用程序的可視化界面如圖6所示。

    圖6 三片式球閥的三維參數(shù)化設(shè)計(jì)可視化界面

    應(yīng)用程序中主要零件材料中有3種材料,分別是碳鋼、不銹鋼和鍛鋼。選擇不同材料時(shí),會(huì)根據(jù)選擇的材料調(diào)用Access數(shù)據(jù)庫(kù)自動(dòng)選擇閥門(mén)各部分使用的材料。同樣,修改球閥型號(hào)時(shí),閥門(mén)各部分尺寸也會(huì)自行調(diào)整。在創(chuàng)建完三片式球閥的三維圖后,該程序還可以一鍵導(dǎo)出球閥的BOM表,導(dǎo)出的BOM表為Excel文件,如圖7所示。導(dǎo)出BOM表的VB.Net代碼為:

    圖7 三片式球閥BOM表

    4 結(jié)語(yǔ)

    本文通過(guò)分析SolidWorks二次開(kāi)發(fā)過(guò)程中草圖不精準(zhǔn)的問(wèn)題,提出了3種方法解決了工程實(shí)際問(wèn)題,得出以下結(jié)論:1)利用以上的方法可以提高建模的精確度,極大地減少開(kāi)發(fā)的工作量;2)在繪制復(fù)雜草圖時(shí),提出了“剪切法”,與前兩種方法相比,該方法可以通過(guò)簡(jiǎn)潔的代碼獲得準(zhǔn)確的草圖,為以后二次開(kāi)發(fā)的發(fā)展提供了新的思路;3)本文中提到的方法具有通用性,除了SolidWorks平臺(tái),對(duì)于其他工程軟件的二次開(kāi)發(fā)平臺(tái),例如Pro/E、UG等軟件,也都適用。

    猜你喜歡
    球閥草圖二次開(kāi)發(fā)
    淺談基于Revit平臺(tái)的二次開(kāi)發(fā)
    甘肅科技(2020年20期)2020-04-13 00:30:02
    惠州抽水蓄能電廠進(jìn)水閥無(wú)法全開(kāi)常見(jiàn)故障分析
    淺談Mastercam后處理器的二次開(kāi)發(fā)
    模具制造(2019年3期)2019-06-06 02:11:02
    防止蓄能電站球閥自激振的應(yīng)用實(shí)例
    導(dǎo)流清洗閥的設(shè)計(jì)及應(yīng)用
    西門(mén)子Easy Screen對(duì)倒棱機(jī)床界面二次開(kāi)發(fā)
    畫(huà)好草圖,尋找球心
    草圖
    抽水蓄能電站球閥樞軸軸套故障分析及改造
    一波三折
    九龙县| 凤台县| 天台县| 乌鲁木齐市| 海原县| 定远县| 弥勒县| 永济市| 乐亭县| 丰宁| 集安市| 安化县| 左权县| 济宁市| 广水市| 临汾市| 绿春县| 红河县| 阿鲁科尔沁旗| 诏安县| 承德县| 玉田县| 蓝山县| 六盘水市| 岱山县| 齐齐哈尔市| 吉木萨尔县| 梁河县| 娄底市| 德安县| 吉林省| 资源县| 奉新县| 武邑县| 合山市| 温州市| 曲麻莱县| 和顺县| 安阳县| 长阳| 浙江省|