我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > Solidworks

基于SW的三維CAD系統二次開發方法

時間:2008-07-21 18:51:57 來源:
摘要:以SolidWorks2001為開發平臺,結合VisualC++6.0和VisualBasic6.0這2種高級程序開發語言,提出了一種三維CAD二次開發方法.該方法避開了開發中的難點,減少了工作量,具有一定的參考價值

    關鍵詞:SolidWorks;CAD;二次開發

 ?。茫粒牡膽媚康氖翘岣咴O計質量,傳播和保存設計經驗,提高設計效率,降低設計成本,提高設計管理水平等,目前國際和國內知名的CAD商品軟件主要有Pro/Engineer,UGⅡ,I-Deas,SolidWorks,Au toCAD以及華正CAXA、高華CAD系統等.這些商品化的通用設計平臺基本上覆蓋了整個制造行業,但專業針對性差,不能滿足各種各樣具體領域的設計需求,在工程設計中難以達到CAD真正的應用目的.因此CAD的二次開發成為CAD技術推廣應用過程中面臨的主要問題之一.

    CAD的二次開發是使商品化、通用化的CAD系統用戶化、本土化的過程[1].商品化CAD系統一般都提供二次開發工具、開發語言等.但怎樣才能達到使用方便、記憶量少、靈活的提示信息、良好的交互方式、良好的出錯處理,對選擇合理的二次開發方法是至關重要的.

    1 二次開發的軟硬件環境

    1.1 硬件環境

    微型計算機(微機)和工作站是應用最廣泛的2種硬件平臺,雖然工作站具有速度快、工作效率高、支持分布式計算和多任務進程等優點,但其操作復雜、價格昂貴.隨著CPU速度的不斷提高,圖形處理能力的不斷增強,微機平臺已經能夠滿足CAD系統對硬件的要求[2].且由于其價格相對較低,及出現的一批基于微機的三維CAD軟件,如Pro/Engineer,I-Deas,SolidWorks等,使微機得到了迅速的普及.故選擇普通微機作為二次開發的硬件平臺.

    1.2 軟件環境

    1.Windows98,Windows2000或WindowsXP操作系統.
    2.SolidWorks2001或更高版本的CAD軟件系統.SolidWorks是基于Windows的CAD/CAE/CAM/PDM桌面集成系統,其核心技術是在Windows環境下開發而成,具有強大的實體建模功能和用戶熟悉的Windows圖形界面,開放性好,提供的應用編程接口API是基于OLEAutomation的編程接口,包含了大量的功能函數,可以被VisualBasic,VBA(Excel,Access,etc.),C,VisualC++,SolidWorksmacro或任何支持MicrosoftOLE(ObjectLinkingandEmbedding)技術的編程語言調用[1].
    3.VisualC++6.0和VisualBasic6.0高級編程語言平臺.
    4.SolidWorks-API-SDK.
SolidWorks-API-SDK包含SolidWorksAPI例子、一個用于在VisualC++編程平臺上建立Solid Works插件(Add-In-DLL)的動態鏈接庫模板和ATL工程模板.

    2 思路與實現方法

    2.1 思路

    SolidWorks提供了多種二次開發方法,每種方法都各有所長,如果能將他們的優點集中起來,必將達到良好的效果.故考慮用VisualC++開發SolidWorks插件和菜單,用VisualBasic開發建模、裝配等驅動程序和人機交互界面,之間的邏輯關系如圖1所示.

    2.2 實現方法

    2.2.1 插件

    利用SolidWorks-API-SDK的DLL工程模板,開發SolidWorks的插件.具體方法如下:

    1.啟動MicrosoftVisualC++6.0,在文件下拉菜單選擇“新建工程”,選取SolidWorksAdd-InApp Wizard,輸入工程名(如MyPro)及位置(如e:mypro),點擊“下一步”;#p#分頁標題#e#

    2.確定SolidWorks的安裝路徑,選取其他相應選項,點擊“下一步”;

    3.輸入插件名稱以及描述,選取其他相應選項,點擊“完成”;

    4.在工作區選擇MyProresourcesToolbar,修改工具條大小圖標;在文件MyPro.h和MyPro.cpp的Toolbarcallbacks部分添加或刪除工具條執行函數;#p#分頁標題#e#

    5.在文件ExampleApp.cpp的函數voidCMyproApp::docCreateMenu(longDocumentType)中修改相應的菜單和子菜單命令,例如把
    //addmenu
    hres=pFrame->AddMenu(auT(“MyPro&App”),swMenuPosition,&bres);
    //addmenuitem
    修改為
    //addmenu
     hres=pFrame->AddMenu(auT(“齒輪設計(&G)”),swMenuPosition,&bres);
    //addmenuitem
    hres=pFrame->AddMenuItem(auT(“齒輪設計(&G)”),auT(“開始運行程序(&B)...”),swLastPo sition,auT(“mypro@MenuItemCBGuanli,齒輪設計程序運行”),&bres).

    上面程序中,addmenu項為主菜單,即“齒輪設計(&G)”;addmenuitem項為子菜單,即“開始運行程序(&B)...”;“齒輪設計程序運行”是提示信息.

    6.在文件MyPro.cpp的documentcallbacks部分修改菜單命令的執行函數;例如若建模等驅動程序為“D:myprogs.exe”,則可將原來的菜單命令執行函數voidMenuItemCB(void)

    {
    return;
    }
    修改為
    voidMenuItemCB(void)
    {
    STARTUPINFOsi;
    PROCESSINFORMATIONpi;
    ZeroMemory(&si,sizeof(si));
    si.cb=sizeof(si);
    ZeroMemory(&pi,sizeof(pi));
    //Startthechildprocess.
    CreateProcess(“D:myprogs.exe”,
    ””, //Commandline.
    NULL,//Processhandlenotinheritable.
 ?。危眨蹋?//Threadhandlenotinheritable.
    FALSE,//SethandleinheritancetoFALSE.
    0,//Nocreationflags.
    NULL,//Useparent’senvironmentblock.
 ?。危眨蹋?//Useparent’sstartingdirectory.
 ?。Γ螅?//PointertoSTARTUPINFOstruc ture.
  &pi);//PointertoPROCESSINFORMA TIONstructure.
    return;
    }

    7.編譯工程并注冊生成動態鏈接庫[3].

    插件部分完成了圖1中的a,b,c關系.尤其是函數CreateProcess的應用,實現了從菜單或工具條到建模驅動程序之間的連接,即圖1中的關系c.#p#分頁標題#e#

    2.2.2 建模等驅動程序

    下面以創建一個0.20m×0.10m×0.05m的長方體為例:

    1.啟動MicrosoftVisualBasic6.0,在下拉菜單“文件”項選擇“新建工程”,選擇“標準EXE”,“確定”;

    2.在窗體Form1上添加2個CommandButton,分別命名為“創建長方體”和“退出”;

    3.雙擊命令按鈕“創建長方體”,在函數Com mand1Click()內添加代碼如下:

    DimswAppAsObject#p#分頁標題#e#
    DimPartAsObject
    DimboolstatusAsBoolean
    DimlongstatusAsLong
    DimAnnotationAsObject
    DimGtolAsObject
    DimDatumTagAsObject
    DimFeatureDataAsObject
    DimFeatureAsObject
    DimComponentAsObject
    DimchangAsLong,kuanAsLong,gaoAsLong‘定義長、寬、高
    chang=0.20 ‘為長賦值0.20m
    kuan=0.10 ‘為寬賦值0.10m
    gao=0.05 ‘為高賦值0.05m
    SetswApp=CreateObject(“SldWorks.Applica tion”)
    swApp.ActiveDoc.ActiveView.FrameLeft=0
    swApp.ActiveDoc.ActiveView.FrameTop=0
    swApp.ActiveDoc.ActiveView.FrameState=1
    swApp.ActiveDoc.ActiveView.FrameState=1
    SetPart=swApp.NewDocument(“C:ProgramFilesSolidWorksdataTemplates零件.prtdot”,0,0#,0#)
    SetPart=swApp.ActivateDoc(“Part2”)
    swApp.ActiveDoc.ActiveView.FrameState=1
    Part.InsertSketch
    Part.SketchRectangle-(chang/2),(gao/2),0,(chang/2),(gao/2),0,1
    Part.FeatureExtrusion1,0,0,0,0,kuan,0,0,0,0,0,0,0,0,0
    Part.ShowNamedView2“ 等軸測”,7
    Part.ViewZoomtofit2
    Part.SaveAs2“D:mypro長方體.SLDPRT”,0,False,False
    Part.ClearSelection
    SetPart=Nothing
    swApp.CloseDoc“長方體”

    這部分程序的開發,可用SolidWorks的宏功能,錄制1個創建長方體的宏文件.由于宏錄制的文件是VBA代碼,所以,對其稍加修改就可移植到VisualBasic的程序代碼中.這樣明顯降低了開發難度,加快了開發進程.

    4.雙擊命令按鈕“退出”,在函數Command2Click()內添加代碼如下:#p#分頁標題#e#
    UnloadMe‘卸載窗體

    5.在下拉菜單“文件”項選擇“生成工程.exe”,輸入文件名“D:myprogs.exe”,“確定”[4].(注意:此處路徑與文件名必須與函數CreateProcess的第一個參數相同.)
    該部分完成了圖1中的d,e關系,實現了程序驅動的自動建模.

    3 結語

    所提出的二次開發方法避開了開發過程中的難點,減少了工作量,達到了開發目的.
    1.直接利用MicrosoftVisualC++6.0中Solid Works插件模板,不需過多考慮動態鏈接庫等編程方法,降低了開發難度.
    2.用VisualC++的函數CreateProcess搭建了菜單與建模程序之間的關系.
3.開發建模程序時,參考SolidWorks的宏文件,明顯減少了工作量.

    參考文獻

    [1]王青,鄔義志,夏冠華.三維CAD/CAM系統二次開發技術[J].江蘇機械制造與自動化,2001,(4):183-185.#p#分頁標題#e#
    [2]張淑珍.CAD系統二次開發方法的研究[J].西北紡織工學院學報,2000,14(2):173-175.
    [3]DavidJ.Kruglinski,ScotWingo,GeorgeShepherd,等.Visu alC++6.0技術內幕(第五版)[M].北京:北京希望電子出版社,1999.
    [4]EvangelosPetroutsos.VisualBasic6從入門到精通[M].北京:電子工業出版社,1999


我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

            成人国产精品免费观看动漫 | 制服丝袜中文字幕一区| 久久精品国产在热久久| 午夜av电影一区| 亚洲成人一区在线| 亚洲综合色成人| 亚洲成av人影院| 日本不卡免费在线视频| 麻豆传媒一区二区三区| 激情欧美一区二区| 国产成人精品1024| 91啪亚洲精品| 欧美日韩视频在线观看一区二区三区 | kk眼镜猥琐国模调教系列一区二区| 韩国v欧美v日本v亚洲v| 国产成人精品一区二区三区网站观看| 风间由美一区二区三区在线观看| 丁香六月综合激情| 一本色道a无线码一区v| 欧美高清激情brazzers| 久久一二三国产| 亚洲天堂成人网| 日韩在线一区二区| 国产成人免费9x9x人网站视频| 99精品欧美一区| 在线播放欧美女士性生活| 久久久久久影视| 洋洋av久久久久久久一区| 久久99精品一区二区三区三区| 国产黄色成人av| 欧美视频一区二区三区在线观看| 日韩欧美一级二级三级久久久| 国产精品无遮挡| 日韩av不卡一区二区| 国产精品69久久久久水密桃| 色偷偷88欧美精品久久久| 欧美一区二区免费观在线| 中文字幕欧美区| 欧美aⅴ一区二区三区视频| 成人激情免费视频| 欧美一区二区三区系列电影| 国产精品色眯眯| 蜜臀av性久久久久av蜜臀妖精| 波多野结衣中文一区| 日韩欧美一区二区三区在线| 亚洲另类色综合网站| 国产做a爰片久久毛片| 欧亚洲嫩模精品一区三区| 久久久久久久久一| 奇米影视在线99精品| 色综合久久九月婷婷色综合| 久久综合九色综合久久久精品综合| 亚洲精品视频在线看| 国产成人综合在线观看| 色综合天天综合网国产成人综合天 | 成人精品免费看| 色哟哟精品一区| 国产三级精品在线| 日本免费新一区视频| 色美美综合视频| 国产精品人成在线观看免费| 九九九精品视频| 欧美人成免费网站| 一区二区三区不卡视频| www.亚洲在线| 久久久激情视频| 九九**精品视频免费播放| 91精品国产欧美一区二区18| 亚洲一区二区美女| 日本乱码高清不卡字幕| 综合欧美亚洲日本| 99re在线精品| 亚洲日穴在线视频| 在线视频欧美区| 亚洲在线中文字幕| 欧美日韩1区2区| 奇米一区二区三区av| 日韩视频一区二区三区在线播放 | 精品日韩一区二区| 裸体歌舞表演一区二区| 日韩片之四级片| 青青草原综合久久大伊人精品优势 | 精品国产区一区| 国模套图日韩精品一区二区| 亚洲精品在线观看视频| 国产一区二区看久久| 国产欧美1区2区3区| 成人福利电影精品一区二区在线观看 | 99re6这里只有精品视频在线观看| 亚洲国产成人午夜在线一区| 成人av在线观| 一区二区在线观看免费| 欧美日韩专区在线| 日本不卡高清视频| 欧美精品一区二区三区在线| 国产精品中文字幕欧美| 国产精品免费av| 色999日韩国产欧美一区二区| 一区二区三区蜜桃网| 欧美精品自拍偷拍| 精品无人码麻豆乱码1区2区 | 精品久久人人做人人爱| 极品尤物av久久免费看| 中文字幕精品—区二区四季| 91免费观看视频| 日韩国产欧美在线视频| 久久夜色精品一区| 色综合视频在线观看| 婷婷中文字幕一区三区| 精品国产一区二区三区av性色 | 欧美乱妇一区二区三区不卡视频| 蜜臀久久99精品久久久久久9| 久久免费的精品国产v∧| 91麻豆视频网站| 久久精品二区亚洲w码| 国产精品成人一区二区三区夜夜夜 | 欧美性猛交一区二区三区精品| 另类成人小视频在线| 亚洲欧洲日本在线| 中文字幕一区二区三区不卡在线 | 香蕉加勒比综合久久| 精品国产三级a在线观看| 97久久人人超碰| 美日韩一区二区| 一区二区理论电影在线观看| 精品剧情v国产在线观看在线| 91在线看国产| 国产一区二区三区四区在线观看| 亚洲一区二区在线免费观看视频| 日韩欧美在线123| 欧美婷婷六月丁香综合色| 国产精品资源在线| 视频在线观看一区二区三区| 中文字幕欧美一| 国产夜色精品一区二区av| 欧美日韩激情在线| 91美女片黄在线观看91美女| 国产一区二区导航在线播放| 日本伊人精品一区二区三区观看方式| 亚洲日本丝袜连裤袜办公室| 国产欧美一区二区精品忘忧草| 日韩午夜激情av| 在线不卡免费av| 欧美性受xxxx黑人xyx性爽| 成人黄色综合网站| 国产一区福利在线| 免费观看成人鲁鲁鲁鲁鲁视频| 一区二区日韩av| 亚洲精品亚洲人成人网在线播放| 欧美经典一区二区| 久久久久亚洲蜜桃| 欧美精品一区二区蜜臀亚洲| 91精品国产色综合久久不卡电影 | 欧美性大战久久久久久久| 99视频热这里只有精品免费| 国产精品1024| 国产精品一区二区三区四区| 狠狠色2019综合网| 国产一区二区在线观看免费| 久久se这里有精品| 老司机精品视频线观看86| 美日韩一区二区三区| 日本vs亚洲vs韩国一区三区二区| 日日夜夜免费精品| 日韩av高清在线观看| 免费精品视频在线| 久久国产精品第一页| 国产在线看一区| 国产suv一区二区三区88区| 国产成人丝袜美腿| 99riav一区二区三区| 色噜噜夜夜夜综合网| 欧美影片第一页| 51精品视频一区二区三区| 欧美一区二区三区在线看| 日韩精品一区二区三区swag| 亚洲精品在线电影| 国产欧美精品区一区二区三区| 国产精品全国免费观看高清 | 国精产品一区一区三区mba视频| 黑人巨大精品欧美一区| 国产成人av电影在线| 波多野结衣精品在线| 日本韩国一区二区三区| 欧美日韩国产一二三| 日韩女优毛片在线| 欧美激情中文字幕| 亚洲主播在线播放| 免费的国产精品| 成人在线综合网站| 欧美最猛性xxxxx直播| 日韩欧美资源站| 欧美国产一区视频在线观看| 一区二区三区在线播放| 美女脱光内衣内裤视频久久网站 | 中文字幕亚洲不卡| 首页国产欧美日韩丝袜| 国产一区二区三区美女| 色狠狠色狠狠综合| 国产精品福利av|