亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        AutoCAD.NET開(kāi)發(fā)在軸承自動(dòng)化設(shè)計(jì)中的應(yīng)用

        2012-07-21 09:26:50鄒波周海軍劉小輝
        軸承 2012年11期
        關(guān)鍵詞:句柄滾子二次開(kāi)發(fā)

        鄒波,周海軍,劉小輝

        (1.成都重型軸承研究所,成都 610031;2.成都科華重型軸承有限公司,成都 610300)

        利用AutoCAD開(kāi)發(fā)設(shè)計(jì)軸承經(jīng)常需要大量的數(shù)據(jù)修改和計(jì)算,傳統(tǒng)的CAD二次開(kāi)發(fā)技術(shù)有AutoLISP和 ObjectARX,其中,AutoLISP為CAD內(nèi)嵌系統(tǒng),缺乏足夠的靈活性和用戶接口;ObjectARX較為靈活,但對(duì)編程技術(shù)要求較高。.NET框架是為32位及64位操作系統(tǒng)而設(shè)計(jì),與傳統(tǒng)編程語(yǔ)言(如C++)相比,具有更低的學(xué)習(xí)要求來(lái)訪問(wèn)高級(jí)接口,同時(shí)有更多的編程環(huán)境可以訪問(wèn)CAD圖形。采用AutoCAD提供的二次開(kāi)發(fā)接口,. NET API可以進(jìn)行圖形的繪制、標(biāo)注更改以及復(fù)雜的計(jì)算應(yīng)用。而且為實(shí)現(xiàn)公差自動(dòng)分級(jí)和相關(guān)參數(shù)的計(jì)算,系統(tǒng)增加了讀取現(xiàn)有Access數(shù)據(jù)庫(kù)的功能,可以根據(jù)軸承的尺寸和精度,自動(dòng)選擇相關(guān)公差和參數(shù),計(jì)算出外圈滾道尺寸等數(shù)據(jù)并進(jìn)行標(biāo)注,從而形成完整的設(shè)計(jì)圖。

        1 系統(tǒng)基本原理

        .NET API 為AutoCAD最新的開(kāi)發(fā)接口,采用面向?qū)ο缶幊碳夹g(shù)。用戶可通過(guò)編程的方法利用程序集或開(kāi)放庫(kù)操作AutoCAD 和圖形文件。通過(guò)開(kāi)放的對(duì)象,可被許多不同的編程語(yǔ)言和環(huán)境訪問(wèn)。訪問(wèn)對(duì)象為 AutoCAD .NET API 的主要構(gòu)造塊,其中每一個(gè)對(duì)象都精確地代表了 AutoCAD圖形中的一部分,它們之間又組成了不同的程序集和命名空間。AutoCAD .NET API 有許多不同類(lèi)型的對(duì)象,如:

        (1)直線、圓弧、文字和標(biāo)注等圖形對(duì)象;

        (2)線型與標(biāo)注樣式等樣式設(shè)置;

        (3)圖層、編組和塊等組織結(jié)構(gòu);

        (4)視圖與視口等圖形顯示;

        (5)圖形、AutoCAD 應(yīng)用程序本身。

        本系統(tǒng)的主要實(shí)現(xiàn)方式,就是通過(guò).NET API對(duì)AutoCAD的各種對(duì)象進(jìn)行操作,實(shí)現(xiàn)計(jì)算、分類(lèi)選擇、自動(dòng)繪制圖形等功能。

        程序設(shè)計(jì)流程如圖1所示。首先,打開(kāi)現(xiàn)有模版文件,讀取并捕捉對(duì)象的ObjectID以實(shí)現(xiàn)操作;通過(guò)Form獲取用戶要求,如內(nèi)、外徑,高度,精度等參數(shù);查詢數(shù)據(jù)庫(kù)并獲得相應(yīng)等級(jí)的公差值和各種系數(shù);計(jì)算出各種尺寸,并修改和調(diào)整相應(yīng)的對(duì)象內(nèi)容實(shí)現(xiàn)自動(dòng)標(biāo)注和相關(guān)的圖形繪制;最后通過(guò)用戶確認(rèn),保存設(shè)計(jì)完成的圖紙。

        圖1 程序流程圖

        2 程序設(shè)計(jì)過(guò)程及自動(dòng)化設(shè)計(jì)效果

        以調(diào)心滾子自動(dòng)化設(shè)計(jì)為例,本系統(tǒng)(其他類(lèi)型軸承與本系統(tǒng)相同)采用.NET C#方式編程,可以分為幾個(gè)功能模塊,分別為文件操作、對(duì)象捕捉和編輯、數(shù)據(jù)庫(kù)ODBC操作和用戶界面模塊。

        2.1 文件操作模塊

        通過(guò)實(shí)例化Application.DocumentManager來(lái)獲取模版文件的句柄。再通過(guò)相關(guān)函數(shù)讀取和存儲(chǔ)。其間通過(guò)一個(gè)自建的Form來(lái)獲取模版文件路徑。部分代碼如下:

        DocumentCollection acDocMgr = Application.DocumentManager;//創(chuàng)建實(shí)例

        ChoseMoBan1 f = new ChoseMoBan1();//一個(gè)新窗體

        Autodesk.AutoCAD.ApplicationServices.Application.ShowModalDialog(f);

        //以AutoCAD的方式打開(kāi),而非winForm形式

        strFileName = PathTempOpen;//獲取文件路徑

        if (File.Exists(strFileName))

        {

        DFiles1 =acDocMgr.Open(strFileName, false);//打開(kāi)相關(guān)文件

        }

        else

        {

        acDocMgr.MdiActiveDocument.Editor.WriteMessage("File " + strFileName+" does not exist.");//若不存在,返回錯(cuò)誤

        }

        2.2 對(duì)象捕捉和編輯

        在打開(kāi)后的文件中,如何獲取需要修改對(duì)象的句柄是關(guān)鍵,目前常用的2種方法為:每個(gè)對(duì)象自帶的圖元句柄和ObjectID。文中采用ObjectID,但ObjectID會(huì)隨著文件關(guān)閉而釋放,并在打開(kāi)時(shí)重建。為了能夠準(zhǔn)確獲得文件打開(kāi)時(shí)的對(duì)象,針對(duì)文中的標(biāo)注,采用了對(duì)象包含的Text進(jìn)行判別。

        Document DF = Application.DocumentManager.MdiActiveDocument;//獲取當(dāng)前活動(dòng)文檔

        ObjectId[] Id1 = new ObjectId[1];

        // 創(chuàng)建一個(gè)TypedValue 數(shù)組,用于定義過(guò)濾條件

        TypedValue[] acTypValAr = new TypedValue[2];

        acTypValAr.SetValue(new TypedValue((int)DxfCode.Text, Dimetext1), 0);

        acTypValAr.SetValue(new TypedValue((int)DxfCode.LayerName, "7標(biāo)注層"), 1);

        // 賦值過(guò)濾條件給SelectionFilter 對(duì)象

        SelectionFilter acSelFtr = new SelectionFilter(acTypValAr);

        Id1 = acSSet.GetObjectIds();//獲得對(duì)象后返回

        獲得對(duì)象后,可對(duì)其進(jìn)行編輯。編輯過(guò)程首先要打開(kāi)當(dāng)前模型空間記錄,并通過(guò)事務(wù)對(duì)其中相應(yīng)的對(duì)象進(jìn)行設(shè)置。圖形編輯和標(biāo)注編輯類(lèi)似。

        //修改對(duì)象內(nèi)容

        Document acDoc = Application.DocumentManager.MdiActiveDocument;//獲得活動(dòng)文檔

        Database acCurDb = acDoc.Database;//打開(kāi)Database對(duì)象

        // 啟動(dòng)一個(gè)事務(wù)

        using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())

        {

        BlockTable acBlkTbl;

        acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId,OpenMode.ForRead) as BlockTable;

        // 以寫(xiě)方式打開(kāi)模型空間塊表記錄

        BlockTableRecord acBlkTblRec;

        acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;

        RotatedDimension Dim_OB7_WD = (RotatedDimension)OB7_WD.GetObject(OpenMode.ForWrite);

        //獲得標(biāo)注句柄

        Dim_OB7_WD.DimensionText = "{H1x;" + PX_WD + "}{H0.5x;S +" +(-D_D_GCD / 1000).ToString() + " ^ 0 ;}";//修改標(biāo)注內(nèi)容

        MText Dim_OB7_Ke = (MText)OB7_Ke.GetObject(OpenMode.ForWrite);//獲得文本句柄

        Dim_OB7_Ke.Contents = "W0.8;Ke " + (D_Ke/1000).ToString();//修改文本內(nèi)容

        }//提交事務(wù),完成修改的內(nèi)容

        2.3 數(shù)據(jù)庫(kù)ODBC操作

        通過(guò)系統(tǒng)DSN打開(kāi)數(shù)據(jù)源,并對(duì)其中的記錄進(jìn)行讀取和操作。

        OdbcConnection odbcconn = new OdbcConnection("DSN=ODBCBearing");//定義ODBC數(shù)據(jù)源

        odbcconn.Open();

        OdbcCommand DbCommand = odbcconn.CreateCommand();

        DbCommand.CommandText = "SELECT * FROM WQ ";

        OdbcDataReader DbReader = DbCommand.ExecuteReader();//創(chuàng)建并允許SQL

        對(duì)數(shù)據(jù)的篩選可通過(guò)SQL語(yǔ)句完成,這里不再贅述。

        2.4 用戶界面

        先增加AutoCAD的菜單,通過(guò)ExtensionApplication使其自動(dòng)加載。此處相關(guān)代碼省略。

        2.5 調(diào)心滾子軸承自動(dòng)化設(shè)計(jì)結(jié)果

        以23232CAC/W33帶油孔的調(diào)心滾子軸承自動(dòng)化設(shè)計(jì)為例,原始模版和經(jīng)過(guò)程序計(jì)算與調(diào)整后輸出的設(shè)計(jì)圖如圖2所示。

        圖2 調(diào)心滾子軸承的自動(dòng)化設(shè)計(jì)圖

        3 結(jié)束語(yǔ)

        AutoCAD .NET API極大地?cái)U(kuò)展了CAD的用途,其簡(jiǎn)便的開(kāi)發(fā)方式、強(qiáng)大的功能為實(shí)現(xiàn)自動(dòng)化設(shè)計(jì)提供了一個(gè)有效的方法。文中討論的幾個(gè)操作模塊,包含了當(dāng)前CAD二次開(kāi)發(fā)的大部分內(nèi)容和通用的接口程序,可廣泛用于AutoCAD.NET C#程序開(kāi)發(fā)中。

        猜你喜歡
        句柄滾子二次開(kāi)發(fā)
        圓錐滾子軸承半凸?jié)L子的優(yōu)化研究
        哈爾濱軸承(2021年1期)2021-07-21 05:43:10
        仿真模擬在多聯(lián)推力滾子軸承研發(fā)中的應(yīng)用
        哈爾濱軸承(2021年4期)2021-03-08 01:00:52
        淺談基于Revit平臺(tái)的二次開(kāi)發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        淺談Mastercam后處理器的二次開(kāi)發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        滿滾子徑向自鎖軸承的優(yōu)化設(shè)計(jì)
        軸承(2018年10期)2018-07-25 07:22:22
        西門(mén)子Easy Screen對(duì)倒棱機(jī)床界面二次開(kāi)發(fā)
        高校圖書(shū)館持久標(biāo)識(shí)符應(yīng)用研究
        編譯程序語(yǔ)法分析句柄問(wèn)題分析與探討
        雙列球面滾子軸承力學(xué)分析及滾子受載計(jì)算方法
        MFC應(yīng)用程序多線程混合顯示界面方法研究
        国产精品18久久久久网站| 国产亚洲一区二区三区| 色一情一乱一伦一视频免费看| 亚洲欧美日韩人成在线播放| 男人吃奶摸下挵进去啪啪软件| 亚洲av网一区二区三区成人| 亚洲av不卡一区男人天堂| 日本午夜精品一区二区三区电影| 99精品视频在线观看| 免费a级毛片无码a∨免费| av高潮一区二区三区| 手机看黄av免费网址| 蜜桃av噜噜一区二区三区| 国产成人一区二区三区高清| 亚洲午夜经典一区二区日韩| 无码一区二区三区中文字幕| 国产精品免费久久久久影院| 亚洲AV无码成人精品区H| 高清不卡日本v二区在线| 97碰碰碰人妻无码视频| 四虎影视在线观看2413| 亚洲一区二区高清在线| 高清日韩av在线免费观看| 久久www免费人成—看片| 国产精品成人嫩妇| 人妻中文字幕一区二区三区| 欧美性猛交xxxx乱大交极品| 无码人妻丰满熟妇区五十路百度| 国产69口爆吞精在线视频喝尿 | 女人被狂躁的高潮免费视频| 久久伊人色av天堂九九| 日韩在线观看网址| 午夜视频在线观看国产19| 男人边做边吃奶头视频| 国产亚洲日韩欧美久久一区二区| 人妻在线中文字幕视频| 日本亚洲国产精品久久| 一区二区三区国产亚洲网站| 国产成人一区二区三区高清| 婷婷色精品一区二区激情| 精品久久久久久无码人妻热|