久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区

您的位置:網站首頁 > Solidworks

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

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

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

  CAD的應用目的是提高設計質量,傳播和保存設計經驗,提高設計效率,降低設計成本,提高設計管理水平等,目前國際和國內知名的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.
  NULL,//Threadhandlenotinheritable.
    FALSE,//SethandleinheritancetoFALSE.
    0,//Nocreationflags.
    NULL,//Useparent’senvironmentblock.
  NULL,//Useparent’sstartingdirectory.
  &si,//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


久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区
动漫一区二区在线| 久久久久久久久久久综合| 日本一本草久p| 免费观看国产精品视频| 日韩中文在线不卡| 国产精品久久久久7777婷婷| 8050国产精品久久久久久| 国产成人精品午夜| 91九色单男在线观看| 日本免费不卡一区二区| 国产精品久久久久久久美男| 狠狠干视频网站| 中文字幕人成一区| 国产精品欧美日韩一区二区| 欧美有码在线观看| 国产九色精品| 久久精品成人动漫| 在线观看成人一级片| 成人a在线观看| 中文字幕在线亚洲精品| 国产免费亚洲高清| 综合一区中文字幕| 久久精品aaaaaa毛片| 日本毛片在线免费观看| 国产精品精品久久久久久| 国产免费一区二区三区| 日韩久久久久久久久久久久久| 国产成人无码一二三区视频| 欧洲久久久久久| 国产精品一区久久久| 国产精品69久久| 99免费在线视频观看| 国产盗摄xxxx视频xxx69| 久久av免费观看| 国产精品网址在线| 午夜精品一区二区三区在线播放 | 性高湖久久久久久久久aaaaa| 国产精品无码电影在线观看| 国产精品99久久久久久大便| 亚洲尤物视频网| 国产日韩在线看| 精品中文字幕在线观看| 国产日韩一区二区在线观看| 欧美精品www| 精品国产福利| www日韩av| 日韩精品免费一区| 久久人人爽人人爽人人片亚洲| 狠狠色噜噜狠狠色综合久| 精品国产免费av| 91精品国产高清自在线| 日本一区二区在线免费播放| 国产chinese精品一区二区| 欧洲亚洲在线视频| 国产精品久久久久久久免费大片 | av一区二区三区在线观看| 午夜精品www| 日韩专区在线播放| 精品一区二区中文字幕| 九九久久国产精品| 8090成年在线看片午夜| 久久天天躁夜夜躁狠狠躁2022| 国产精品视频26uuu| 这里只有精品66| 久久综合九色综合88i| 欧美精品在线一区| 一卡二卡3卡四卡高清精品视频| 国产成人综合av| 日韩视频在线免费看| 久久久精品免费视频| 国产一级大片免费看| 亚洲精品高清视频| 精品国产一区av| 成人久久18免费网站图片| 日本黄网免费一区二区精品| 日韩视频第一页| 99亚洲国产精品| 欧美资源在线观看| 欧美激情亚洲精品| 亚洲国产一区二区在线| www国产精品com| 成人免费福利视频| 欧美在线日韩精品| 在线视频不卡一区二区三区| 久久偷窥视频| 国产精品中文在线| 欧美在线中文字幕| 亚洲一区二区在线看| 久久精品国产亚洲精品2020| 91久久国产婷婷一区二区| 激情久久av| 日本午夜人人精品| 在线视频不卡国产| 国产精品久久久久av免费| 国产成人在线播放| 99伊人久久| 国产中文字幕乱人伦在线观看| 日本不卡一区二区三区在线观看| 在线一区日本视频| 久久天天躁狠狠躁老女人| 久青草视频在线播放| 国产麻花豆剧传媒精品mv在线 | 国产精品91在线观看| 国产一级二级三级精品| 欧美伊久线香蕉线新在线| 久久人妻无码一区二区| 美女亚洲精品| 欧美怡春院一区二区三区 | 日韩精彩视频| 午夜精品久久久内射近拍高清| 国产精品久久久久久久久 | 国产精品久久av| 国产精品91久久久| 国产日韩一区欧美| 国内精品在线一区| 欧美最猛性xxxx| 日本精品一区二区三区高清 久久 日本精品一区二区三区视频 | 一区二区三区四区欧美| 国产精品免费久久久久影院| 日韩在线www| 91国产美女视频| 成人黄动漫网站免费| 国产美女视频免费| 国产又大又硬又粗| 精品一区二区三区国产| 欧美精品久久久久久久免费| 欧美日韩成人一区二区三区| 国产精品男人爽免费视频1| 久久久久久免费精品| 久久精品aaaaaa毛片| 国产成人艳妇aa视频在线| 7777免费精品视频| 久久精品一区二| 久久精品国产sm调教网站演员 | 欧美激情亚洲精品| 久久久久久91| 亚洲一区二区三区欧美| 一级特黄妇女高潮| 亚洲最大av网| 亚洲国产欧美日韩| 日韩av免费网站| 人禽交欧美网站免费| 欧美专区一二三| 欧美高清性xxxxhd| 蜜桃91精品入口| 高清一区二区三区日本久| 国产精品亚洲不卡a| 91久久久久久久| 欧美中文字幕视频在线观看| 人人做人人澡人人爽欧美| 欧美亚洲成人免费| 麻豆91av| 99视频免费播放| 国产高清一区视频| 国产精品视频白浆免费视频| 国产精品对白刺激久久久| 精品国产一二| 亚洲 欧洲 日韩| 日本一区二区三区免费看| 日本a级片电影一区二区| 欧美国产综合在线| 亚洲美女网站18| 日韩精品欧美一区二区三区| 黄色片网址在线观看| 国产精品永久免费在线| 97精品视频在线播放| 久久久久久久久久久久久9999 | 日韩欧美一区二区三区四区五区| 欧美牲交a欧美牲交aⅴ免费下载| 国产又粗又猛又爽又黄的网站 | 国产伦精品一区| 久久综合精品一区| 久久精品国产欧美激情| 欧美激情网站在线观看| 日韩高清av| 国产亚洲二区| 精品高清视频| 国产精品亚洲视频在线观看| 国产成人亚洲综合青青| 国产精品视频免费在线观看| 一女被多男玩喷潮视频| 日韩精品一区二区免费| 国产人妖伪娘一区91| 欧美亚洲另类在线| 精品一卡二卡三卡四卡日本乱码| 国产精品一区二区久久国产| 国产成人极品视频| 欧美精品在线观看91| 色香蕉在线观看| 国产中文欧美精品| 国产a一区二区| 欧美日韩福利在线观看| 日韩视频 中文字幕| 国产女人水真多18毛片18精品| 久久精品无码中文字幕| 国产免费裸体视频| 中文字幕第一页亚洲| 欧美中文字幕第一页| www.亚洲一区二区| 国产精品美腿一区在线看|