久久国产色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_欧美 国产 日本_好吊色欧美一区二区三区
精品国产_亚洲人成在线 | 久久精品亚洲一区| 欧美日本亚洲视频| 日本不卡高清视频一区| 国产精品自产拍在线观看中文| 久久久久久久久久久免费精品| 亚洲最大的av网站| 国产资源第一页| 日韩在线资源网| 久久久久久av| 国产一区二区黄色| 国产精品视频一区二区高潮| 日本高清不卡一区二区三| 91麻豆蜜桃| 亚洲尤物视频网| 国产欧美日韩伦理| 国产精品久久99久久| 欧美日韩精品在线一区二区| 国产成人亚洲综合91精品| 一本二本三本亚洲码| 国产淫片免费看| 国产精品久久久久久影视| 欧美在线播放cccc| 日韩中文字幕在线免费观看| 天堂av在线中文| 91久久久亚洲精品| 中文字幕一区二区三区乱码| 国产日韩精品推荐| 国产精品狠色婷| 激情五月五月婷婷| 国产精品视频中文字幕91| 热草久综合在线| 久久精品99国产精品酒店日本| 日韩人妻无码精品久久久不卡 | 国产精品免费久久久久久| 欧美日韩国产三区| 久久99久久精品国产| 日韩电影天堂视频一区二区| 二级片在线观看| 中文字幕av日韩精品| 国产精品伊人日日| 一区二区国产日产| 91精品国产成人| 日本最新高清不卡中文字幕| 国产成人精品免费久久久久| 热re99久久精品国产66热| 日韩视频免费观看| 国产一区二区三区四区五区加勒比| 国产精品国产福利国产秒拍| 精品少妇人妻av一区二区| 国产精品国模在线| 国产伦精品一区二区| 亚洲欧洲日夜超级视频| 99久久自偷自偷国产精品不卡| 中文字幕无码不卡免费视频| 97国产精品视频| 日本一区二区三区免费观看| 久久久久久久久网| 欧美成人综合一区| 久久777国产线看观看精品| 超碰在线97av| 午夜免费电影一区在线观看| 久久久久久网站| 免费人成在线观看视频播放| 久久躁日日躁aaaaxxxx| 草莓视频一区| 人人妻人人添人人爽欧美一区 | 欧洲精品码一区二区三区免费看| 国产成人精品在线观看| 国模极品一区二区三区| 亚洲一区二区三区四区在线播放| 久久人人97超碰精品888| 欧美中文在线观看| 国产aaa一级片| 国产成人一区二区| 欧美日韩一区在线观看视频| 美女av一区二区| 久久久神马电影| 欧美日韩一区在线视频| 一区二区三区四区视频在线观看| 91久久精品视频| 欧美亚洲国产视频| 亚洲自偷自拍熟女另类| 色青青草原桃花久久综合| 国产美女主播在线播放| 日韩精品视频一区二区在线观看 | 国产自产精品| 欧美一级免费播放| 国产精品视频一区二区三区四| 国产精品稀缺呦系列在线| 日韩亚洲不卡在线| 一区二区三区四区五区视频| 精品国产一区av| 91久久精品美女高潮| 欧美交换配乱吟粗大25p| 亚洲欧美国产不卡| 国产精品乱码| 久久精品五月婷婷| 高清欧美性猛交xxxx| 欧美人与动牲交xxxxbbbb| 亚洲精品日韩激情在线电影| 国产精品海角社区在线观看| 久久久久久久久久婷婷| 97人人模人人爽视频一区二区| 奇米一区二区三区四区久久| 亚洲人成网站在线观看播放| 久久中文字幕在线视频| 日韩在线免费视频| 69精品小视频| 成人av色在线观看| 国产专区在线视频| 男人的天堂99| 欧美中文字幕精品| 日韩精品大片| 日韩国产欧美精品| 大j8黑人w巨大888a片| 欧美精品激情在线观看| 欧美成人精品三级在线观看| 久久久精品久久久| 久久久免费观看| 91精品视频免费| 超碰免费在线公开| 国产精品夜间视频香蕉| 国产一区免费在线| 毛片一区二区三区四区| 欧美亚洲免费高清在线观看| 日韩精品手机在线观看| 日韩免费毛片视频| 日韩欧美电影一区二区| 日本高清不卡在线| 欧美专区在线播放| 欧美一区二区中文字幕| 欧美专区在线视频| 欧美日韩精品免费看| 日本久久中文字幕| 日韩欧美一级在线| 日韩精品 欧美| 欧美日韩亚洲综合一区二区三区激情在线 | 久久亚洲精品小早川怜子66| 国产精品三级一区二区| 久久黄色免费看| 色av吧综合网| 久久久精品欧美| 久久久国产在线视频| 国产精品免费入口| 国产精品区免费视频| 久久这里只有精品99| 欧美区二区三区| 伊人天天久久大香线蕉av色| 亚洲五码在线观看视频| 亚洲乱码一区二区三区| 亚洲国产高清国产精品| 亚洲第一页在线视频| 日韩av色综合| 欧美日韩国产三区| 蜜臀av.com| 国产精品揄拍500视频| 91久久精品视频| 久久久久久亚洲精品不卡 | 91精品国产高清久久久久久91 | 国产精品偷伦视频免费观看国产| 国产精品无码av在线播放| 久久亚洲春色中文字幕| 一区二区三区四区不卡| 亚洲精品免费av| 日韩精品 欧美| 国产香蕉一区二区三区| 成人久久18免费网站漫画| av日韩中文字幕| 久久96国产精品久久99软件| 国产精品入口日韩视频大尺度| 欧美激情视频在线免费观看 欧美视频免费一| 欧美激情伊人电影| 大j8黑人w巨大888a片| 欧日韩一区二区三区| 国产欧美一区二区三区久久人妖 | 久久天天躁狠狠躁夜夜爽蜜月| 久久成人人人人精品欧| 都市激情久久久久久久久久久 | 欧美一区二区三区四区在线| 欧美一区二区中文字幕| 国产日韩中文在线| 久久男人的天堂| 国产精品久久久久7777婷婷| 午夜精品蜜臀一区二区三区免费| 日韩精品资源| 福利视频一二区| 久久精品2019中文字幕| 亚洲欧洲精品一区二区 | 国产精品久久久久久久久| 欧美精品久久久久久久免费观看| 人人澡人人澡人人看欧美| 国产伦精品一区二区三区照片91| 久久九九国产视频| 九九热这里只有精品6| 日本一区免费| 国产九色91| 国产精品免费久久久久久| 无码日韩人妻精品久久蜜桃| 国内一区二区三区在线视频 |