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

基于SolidWorks二次開發(fā)的榫卯家具零部件參數(shù)化設(shè)計(jì)研究

2023-04-07 03:04:20劉武發(fā)
關(guān)鍵詞:結(jié)構(gòu)設(shè)計(jì)

王 帥 劉武發(fā) 鄭 鵬

(鄭州大學(xué)機(jī)械與動力工程學(xué)院 河南 鄭州 450001)

0 引 言

榫卯結(jié)構(gòu)作為中華民族獨(dú)特的工藝制造,有著悠久的歷史。被海外華人視為國粹的紅木家具正是運(yùn)用了這種巧妙的結(jié)構(gòu),整套家具不使用一根鐵釘卻能使用上百甚至上千年,堪稱人類輕工制造史上的奇跡。采用榫卯結(jié)構(gòu)進(jìn)行連接的家具比用鐵釘連接的更加結(jié)實(shí)耐用,具有許多鐵釘做不到的功能,可有效限制木件之間各個方向的扭轉(zhuǎn),保障了連接結(jié)構(gòu)的穩(wěn)定性。

中國傳統(tǒng)家具中的榫卯結(jié)構(gòu)種類繁多,結(jié)構(gòu)復(fù)雜,依靠傳統(tǒng)建模方式工作量大且效率低下,同樣類型的結(jié)構(gòu)僅有尺寸不同卻需要重新建模。目前,對于榫卯結(jié)構(gòu)的研究絕大多數(shù)都圍繞在樣式設(shè)計(jì)、結(jié)構(gòu)設(shè)計(jì)[1]和受力分析[2]上,而對榫卯結(jié)構(gòu)的參數(shù)化設(shè)計(jì)和計(jì)算機(jī)輔助設(shè)計(jì)應(yīng)用研究較少[3-4]。

因此為了提高設(shè)計(jì)資源的利用率,提高建模效率,減少重復(fù)勞動,本課題基于SolidWorks二次開發(fā)對傳統(tǒng)家具中的榫卯結(jié)構(gòu)進(jìn)行參數(shù)化設(shè)計(jì),生成榫卯家具零件參數(shù)化模型庫,對榫卯結(jié)構(gòu)的標(biāo)準(zhǔn)化、參數(shù)化設(shè)計(jì)具有一定的現(xiàn)實(shí)意義。

1 SolidWorks二次開發(fā)原理

Windows平臺為SolidWorks的二次開發(fā)提供了大量OLE技術(shù)和COM技術(shù)的應(yīng)用程序接口,并且SolidWorks采用面向?qū)ο蟮姆椒?所有函數(shù)都是有關(guān)對象的方法或?qū)傩訹5],SolidWorks API中具有上百個函數(shù),支持VB、VBA、Delphi、Visual C++等對其進(jìn)行操作和調(diào)用,開發(fā)人員可以通過調(diào)用SolidWorks API函數(shù)對SolidWorks軟件進(jìn)行相應(yīng)的操作控制,以實(shí)現(xiàn)目標(biāo)三維圖形的繪制和所需功能的擴(kuò)展與定制,完成二次開發(fā)。

2 DLL插件設(shè)計(jì)及開發(fā)

SolidWorks插件是通過調(diào)用API函數(shù)所編寫的ActiveX DLL文件,DLL(Dynamic Link Library)文件為動態(tài)鏈接庫文件,又叫“應(yīng)用程序拓展”,通過使用DLL,可以實(shí)現(xiàn)程序的模塊化,減少資源的占用率。基于COM技術(shù)生成的DLL程序代碼執(zhí)行效率高,可以動態(tài)鏈接到應(yīng)用程序,使得調(diào)用程序更加方便快捷,還能夠在SolidWorks界面中添加工具條、下拉菜單、自定義屬性頁等功能,實(shí)現(xiàn)了與SolidWorks軟件的無縫銜接。

SolidWorks API SDK為開發(fā)人員提供了插件開發(fā)的相關(guān)模板和文件,包含VB.NET、C#.NET和C++模板,以VB.NET模板為例,其結(jié)構(gòu)分類如圖1所示。

圖1 SolidWorks API SDK插件模板結(jié)構(gòu)圖

在提供的模板中,為方便開發(fā)人員使用,已經(jīng)按照功能對其進(jìn)行模塊化劃分,具體分類如下:

(1) Local Variables模塊:用于變量的聲明。

(2) SolidWorks Registration模塊:用于插件的注冊,在注冊表中添加插件的GUID,每個插件的GUID各不相同,SolidWorks通過該值對插件進(jìn)行識別。

(3) ISwAddin Implementation模塊:用于插件的卸載和添加,通過API函數(shù)完成與插件的連接和斷開。

(4) UI Methods模塊:用于用戶的自定義設(shè)計(jì),可以實(shí)現(xiàn)菜單欄,工具欄的添加和設(shè)置。

(5) UI Callbacks模塊:用于回調(diào)函數(shù)的編寫,執(zhí)行按鈕被觸發(fā)后的事件。

(6) Event Methods模塊:用于用戶和SolidWorks的交互。

(7) Event Handlers模塊:交互事件的函數(shù)。

在插件的開發(fā)中,UI Methods、UI Callbacks模塊是最常用的,開發(fā)人員可通過此模塊進(jìn)行命令按鈕以及回調(diào)函數(shù)設(shè)置。

2.1 環(huán)境搭建

首先,需要手動安裝位于SOLIDWORKS安裝目錄下apisdk文件夾中的API SDK軟件開發(fā)工具包,安裝完成后,即可在Visual Studio中使用模板新建AddIn插件程序。操作流程如圖2所示。

圖2 模板使用流程

2.2 SolidWorks插件UI設(shè)計(jì)

在SolidWorks API中,通過調(diào)用CreateCommandGroup2和CreateFlyoutGroup2方法,可完成菜單欄和工具欄的創(chuàng)建;調(diào)用CreateFileFromResourceBitmap方法添加圖標(biāo)選項(xiàng);調(diào)用AddCommandItem2和AddCommandItem分別為命令組和彈出式菜單添加子項(xiàng)。以AddCommandItem方法為例,說明函數(shù)中各參數(shù)的意義和用法,如表1所示,其他API函數(shù)參見SolidWorks API幫助文檔。

表1 AddCommandItem方法返回與輸入?yún)?shù)

菜單項(xiàng)和工具欄創(chuàng)建完成后,設(shè)置其回調(diào)函數(shù)以執(zhí)行觸發(fā)命令后的動作。在參數(shù)化系統(tǒng)設(shè)計(jì)中已創(chuàng)建多個窗體,啟動該窗體就是執(zhí)行菜單事件的響應(yīng)。利用sub創(chuàng)建回調(diào)函數(shù),用Function創(chuàng)建函數(shù)以顯示控制項(xiàng)的狀態(tài)。以CreateSunMao()為例,具體代碼如下:

Dim TaskPanWinForm As Form1=NewForm1()

TaskPanWinForm.Show()

系統(tǒng)插件UI界面如圖3所示。

3 參數(shù)化設(shè)計(jì)方法

實(shí)現(xiàn)SolidWorks二次開發(fā)參數(shù)化建模主要有兩種方法[6]:

(1) 編程法(程序驅(qū)動法) 編程法是指零件的整個設(shè)計(jì)建模過程全部由編程實(shí)現(xiàn),通過調(diào)用API函數(shù),來實(shí)現(xiàn)模型的繪制和修改,此過程不需要繪制零件模板,應(yīng)用程序從頭到尾執(zhí)行所編制的代碼,從無到有地生成目標(biāo)模型,此方法需要調(diào)用大量API函數(shù),需要開發(fā)人員熟練掌握API的功能、方法及屬性,操作難度較大,適用于參數(shù)較多或者形狀變化較大的零部件產(chǎn)品。

(2) 尺寸驅(qū)動法 尺寸驅(qū)動法是指在已建立模型的基礎(chǔ)上,不改變原有的拓?fù)潢P(guān)系,將所標(biāo)注的尺寸視為變量,通過修改標(biāo)注的尺寸值,來達(dá)到重建模型的目的,進(jìn)而得到一系列結(jié)構(gòu)相同但是尺寸不同的零部件模型,此過程不需要開發(fā)人員掌握大量API函數(shù),僅掌握打開文檔(opendoc6)、參數(shù)修改(Parameter)、模型重建(EditRebuild3)等幾個簡單的函數(shù)即可。此方法相較于編程法省去了代碼繪制模型的步驟,建模效率更高,但是需提前建立模塊化、局部標(biāo)準(zhǔn)化模型庫,適用于結(jié)構(gòu)相同,尺寸不同的系列零部件產(chǎn)品[6]。

由于傳統(tǒng)家具中帶有榫卯結(jié)構(gòu)的零部件種類繁多且結(jié)構(gòu)復(fù)雜、樣式各有特點(diǎn),故采用編程法與尺寸驅(qū)動法相結(jié)合,對其進(jìn)行參數(shù)化設(shè)計(jì)。榫卯結(jié)構(gòu)參數(shù)化設(shè)計(jì)流程如圖4所示。

圖4 榫卯結(jié)構(gòu)參數(shù)化設(shè)計(jì)流程

在榫卯結(jié)構(gòu)的零部件中,一部分結(jié)構(gòu)固定、樣式變化不大,如攢邊結(jié)角榫里的大邊、抹頭、穿帶,桌案類家具常用卡子花等零件采用尺寸驅(qū)動法,首先程序從零件模型庫中選中指定參數(shù)化的三維模型,獲取該零件的驅(qū)動參數(shù),再確定尺寸約束,用戶通過用戶界面修改關(guān)鍵參數(shù)以重建模型,通過約束條件判斷生成的模型是否合理,結(jié)合Access數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)的更新,彈出提示對話框,若滿足要求,保存模型,退出程序;一部分樣式多變、結(jié)構(gòu)不一的零件,如燕尾榫(分為全隱式、半隱式、全透式、斜肩式四種)、直角榫(榫頭可分為十字型、U型、L型等多種類型)、走馬銷(分為單斜面和雙斜面兩種)等采用編程法,通過newpart方法新建文檔,調(diào)用API繪圖函數(shù),用if語句進(jìn)行樣式選擇,用戶通過輸入?yún)?shù)來進(jìn)行新模型的繪制。

4 實(shí) 例

4.1 燕尾榫

在眾多榫卯結(jié)構(gòu)中,燕尾榫被稱為“萬榫之母”,無論是抽屜架格的明扣暗扣,還是小木作家具中串銷掛銷,都利用燕尾榫的力學(xué)原理。燕尾榫是公認(rèn)最牢固的榫接方式,也是抗拉性最強(qiáng)的榫卯結(jié)構(gòu)之一。燕尾榫參數(shù)化設(shè)計(jì)中,尾榫與頭榫的比例、榫頭錐角的錐度、燕尾頭和插接頭的數(shù)量都決定著拼接的牢固程度,而木材的長寬高決定著燕尾榫整體零件的尺寸,因此,將以上參數(shù)作為設(shè)計(jì)的驅(qū)動參數(shù),通過修改以上參數(shù)來生成不同尺寸類型的燕尾榫。其具體尺寸如圖5所示,各尺寸之間約束關(guān)系如下:

a=(L/n-2H/m)/(k+1)b=2H/m+ac=ka

式中:L代表木板長度;H代表木板厚度;n代表燕尾頭或插接頭個數(shù);m代表榫頭錐度比值(例如1:6,m=6);k代表頭榫和尾榫寬度比(例如頭榫小頭/尾榫小頭=1:4,k=4);a代表頭榫小頭;b代表頭榫大頭;c代表尾榫小頭。

圖5 燕尾榫榫頭簡圖

程序?qū)崿F(xiàn)步驟:

(1) 連接SolidWorks軟件,新建零件文檔。

swApp=CreateObject("Sldworks.application")

//得到sw對象

swApp.Visible=True

//sw軟件打開可見

Part=swApp.NewPart

//新建零件文檔

(2) 繪制基本外形特征,根據(jù)木板整體參數(shù)繪制出起始木板結(jié)構(gòu)。

Part.SketchManager.InsertSketch(True)

//繪制草圖

Part.SketchManager.CreateCornerRectangle(0,0,0,L1,D1,0)

Part.FeatureManager.FeatureExtrusion2(True,False,False,0,0,H1,…)

(3) 樣式選擇。常用的燕尾榫可分為全隱式、半隱式、全透式、斜肩式四種,通過分析幾種燕尾榫的結(jié)構(gòu)特征,區(qū)分其結(jié)構(gòu)層次,歸納其成型順序,可知四種燕尾榫的基本結(jié)構(gòu)相同,全隱式、半隱式、斜肩式燕尾榫均以全透式燕尾榫結(jié)構(gòu)為基礎(chǔ),在其基本特征上的增材與變形。故采用編程法繪圖時先調(diào)用ISketchSegment::EqualSegment方法、ISketchManager::CreateLinearSketchStepAndRepeat方法、ISketchManager::CreateLine方法、IFeatureManager::FeatureCut3方法繪制出全透式燕尾榫的基本結(jié)構(gòu),根據(jù)所輸入的參數(shù),如燕尾榫頭或插接頭的數(shù)目,榫頭的錐度生成目標(biāo)模型,再結(jié)合if語句,判斷所進(jìn)行的變形類型,調(diào)用相應(yīng)繪圖函數(shù)進(jìn)行繪制。用戶界面如圖6所示。

If CheckBox2.Checked=True Then

Part.Extension.SelectByID2("","face",L1,H/2,0,False,0,Nothing,0)

Part.SelectionManager.GetSelectedObject6(1,-1)

SkSeg.EqualSegment(swSketchSegmentType_e.swSketchSegmentType_sketchpoints,n-1)

Line1=Part.SketchManager.CreateCenterLine(-H,(n-1)*L/n,0,0,(n-1)*L/n,0)

Line2=Part.SketchManager.CreateLine(0,(n-1)*L/n,0,0,(n-1)*L/n+a/2,0)

Selectmer=Part.SelectionManager

Selectda=Selectmer.CreateSelectData()

Selectda.Mark=1

Line2.Select4(True,Selectda)

Part.SketchMirror()

Part.FeatureManager.FeatureCut3(True,False,False,0,0,H,0,False,…)

4.2 攢邊結(jié)角榫

在傳統(tǒng)榫卯家具的組成結(jié)構(gòu)中,幾乎所有家具都由框架和面板組成。如柜架類家具中的柜門和架面、椅凳類家具中的椅面凳板、桌案類家具中的桌面等均用到了框類與板的組合,攢邊結(jié)角榫在家具結(jié)構(gòu)中起到了重要作用。攢邊結(jié)角榫(如圖7-圖8所示)屬于綜合性部件結(jié)構(gòu),通常由“大邊”、“抹頭”、“面心板”、“穿帶”組合拼接而成,其中:兩端長且出榫稱為“大邊”,兩端短且鑿眼稱為“抹頭”,“穿帶”橫插過“面心板”與“大邊”相接,形成一個受力均勻、拆卸方便、結(jié)構(gòu)牢固的統(tǒng)一整體。此類零件結(jié)構(gòu)固定,樣式變化較小,故適合采用尺寸驅(qū)動法對其進(jìn)行參數(shù)化設(shè)計(jì)。

圖7 攢邊結(jié)角榫裝配界面

圖8 大邊參數(shù)化設(shè)計(jì)界面

考慮到攢邊結(jié)角榫通常成組出現(xiàn),故參數(shù)化設(shè)計(jì)中首先確定組合中各構(gòu)件之間的尺寸約束關(guān)系,例如面心板短邊長等于抹頭內(nèi)邊長,穿帶凸臺尺寸等于面心板凹槽尺寸等。然后確定單個構(gòu)件的尺寸關(guān)系,確定驅(qū)動參數(shù),將從動參數(shù)在用戶界面予以顯示。最后,調(diào)用IModelDoc2::Parameter方法進(jìn)行參數(shù)修改,重新刷新,保存零件即可。

程序?qū)崿F(xiàn)步驟:

(1) 連接SolidWorks軟件,打開零件庫中的模型。

swApp=CreateObject("Sldworks.application")

Part=swApp.OpenDoc6(FilePath,1,0,"",myErr,myWar)

(2) 確定尺寸約束關(guān)系,獲取指定參數(shù)并修改。

L1=Val(TextBox1.Text)/1000

//大邊長度即為桌面長度

Part.Parameter("D1@草圖1").systemvalue=L1

D1=3*L1/16

//大邊寬度

Part.Parameter("D1@草圖10").systemvalue=H3

D2=2*D1/5

Part.Parameter("D1@草圖12").systemvalue=D2

(3) 重建模型,并保存。

Part.EditRebuild3()

Part.Save3(1,Errors,Warnings)

5 結(jié) 語

本文以VB.NET為開發(fā)工具,針對不同榫卯結(jié)構(gòu)分別采取了尺寸驅(qū)動法和編程法建模,實(shí)現(xiàn)了基于SolidWorks二次開發(fā)的中國傳統(tǒng)家具中的榫卯結(jié)構(gòu)零部件的三維參數(shù)化建模。該參數(shù)化設(shè)計(jì)系統(tǒng)以插件的形式嵌入到SolidWorks軟件中,運(yùn)行效率高,與用戶交互性好,同時也縮減了傳統(tǒng)家具中的榫卯結(jié)構(gòu)零部件的設(shè)計(jì)周期,減少了設(shè)計(jì)人員的重復(fù)勞動,對于繼承和弘揚(yáng)我國非物質(zhì)文化遺產(chǎn)的榫卯技藝具有一定的意義,為后續(xù)的榫卯家具產(chǎn)品的系列化、標(biāo)準(zhǔn)化設(shè)計(jì)和生產(chǎn)奠定了基礎(chǔ)。

猜你喜歡
結(jié)構(gòu)設(shè)計(jì)
《形而上學(xué)》△卷的結(jié)構(gòu)和位置
何為設(shè)計(jì)的守護(hù)之道?
《豐收的喜悅展示設(shè)計(jì)》
流行色(2020年1期)2020-04-28 11:16:38
論結(jié)構(gòu)
中華詩詞(2019年7期)2019-11-25 01:43:04
新型平衡塊結(jié)構(gòu)的應(yīng)用
模具制造(2019年3期)2019-06-06 02:10:54
瞞天過海——仿生設(shè)計(jì)萌到家
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
論《日出》的結(jié)構(gòu)
創(chuàng)新治理結(jié)構(gòu)促進(jìn)中小企業(yè)持續(xù)成長
主站蜘蛛池模板: 日韩在线2020专区| 99精品国产自在现线观看| 超清无码熟妇人妻AV在线绿巨人| 色婷婷亚洲十月十月色天| 欧美激情视频二区| 精品日韩亚洲欧美高清a| 国产一区二区免费播放| 亚洲成人精品在线| 亚洲国产91人成在线| 第一区免费在线观看| 国产免费人成视频网| 久久窝窝国产精品午夜看片| 99热这里都是国产精品| 亚洲无码视频喷水| 亚洲欧美综合在线观看| 免费在线一区| 免费人欧美成又黄又爽的视频| 朝桐光一区二区| 欧美综合成人| 久久精品人人做人人爽电影蜜月 | 在线欧美a| 日韩欧美成人高清在线观看| 色婷婷在线影院| 亚洲永久免费网站| 91小视频在线观看免费版高清| 91免费国产高清观看| 伊伊人成亚洲综合人网7777| 中文字幕无码av专区久久| 手机成人午夜在线视频| www.91在线播放| 亚洲国产欧美目韩成人综合| 青青操视频免费观看| 精品国产免费观看| 91精品小视频| 国产精品私拍在线爆乳| 成人在线观看不卡| 亚洲一级毛片在线观播放| 色男人的天堂久久综合| 欧美一区福利| 日本亚洲国产一区二区三区| 嫩草在线视频| 欧美日韩一区二区在线播放| 福利视频99| 日韩精品无码免费专网站| 在线观看网站国产| 亚洲欧美极品| 最新国产麻豆aⅴ精品无| 国产超碰在线观看| 91麻豆国产视频| 成人一级黄色毛片| 中文字幕久久精品波多野结| 亚洲天堂首页| 人人91人人澡人人妻人人爽| 97se综合| 天天摸夜夜操| 日韩高清成人| 国产美女丝袜高潮| 91久久国产热精品免费| 久久中文电影| 久久亚洲美女精品国产精品| 免费观看国产小粉嫩喷水| 亚洲精品手机在线| 亚洲人人视频| 99久久99视频| 国产凹凸视频在线观看| 国产精品人莉莉成在线播放| 亚洲日韩每日更新| 国外欧美一区另类中文字幕| 美女无遮挡免费网站| 日本高清有码人妻| 精品无码一区二区三区电影| 欧美亚洲中文精品三区| 亚洲无码高清免费视频亚洲 | 日韩在线1| a毛片免费观看| 欧美日韩一区二区三区四区在线观看| 四虎影视无码永久免费观看| 人妻无码中文字幕第一区| 色噜噜狠狠色综合网图区| 欧美成人二区| 97se亚洲综合在线| 国产丝袜91|