靖江郊仓人力资源有限公司

歡迎光臨深圳市凱迪賢模具有限公司官網(wǎng)!
0755-26825352
18948189678
AutoCAD結(jié)合MATLAB實現(xiàn)公式曲線曲面的精確繪制

/ 2021/6/5 10:43:51

一、引言
   
    用AutoCAD繪制平面公式曲線如漸開線、心形線)、空間公式曲線如螺旋線)以及公式曲面如馬鞍形曲面)是比較困難的,一般情況下,需要用 AutoCAD開發(fā)程序編程,但多數(shù)程序比較復(fù)雜,尤其是公式曲面的繪制程序,需要多層嵌套循環(huán),復(fù)雜且運(yùn)行效率低。
   
    快速且精確地繪制各種公式曲線、曲面恰恰是MATLAB的長項,但是MATLAB繪制的圖形卻不能直接用于機(jī)械零件設(shè)計。其中非常關(guān)鍵的一點,就是 MATLAB繪制的曲線、曲面分別是由有限個點連接而成的折線和空間網(wǎng)格構(gòu)成的,而在AutoCAD中繪制的曲線、曲面也是如此。因此,只需要把在 MATLAB中繪制的公式曲線、曲面上所有的點坐標(biāo)數(shù)據(jù)都提取出來,若能讓AutoCAD正確識別,那么我們就可以在AutoCAD中精確地繪制這些曲線、曲面了。
   
    本文介紹了一種快速、精確地繪制各種公式曲線、曲面的方法,即在AutoCAD中通過調(diào)用經(jīng)過Excel處理的MATLAB數(shù)據(jù)實現(xiàn)。
   
    二、AutoCAD和MATLAB的特點
   
    MATLAB是非常優(yōu)秀的科學(xué)計算、信號處理以及圖形顯示軟件,它有自身的語言,與其他高級語言相比,MATLAB提供了一個人機(jī)交互的數(shù)學(xué)環(huán)境,并以矩陣作為基本的數(shù)據(jù)結(jié)構(gòu),可大大節(jié)省編程時間。另外,MATLAB不僅語法規(guī)則簡單,容易掌握,調(diào)試方便,還可以存儲中間結(jié)果,這使得MATLAB既可以快捷、精確地繪制各種公式曲線、曲面,又可以很方便地提取中間數(shù)據(jù)。
   
    在工業(yè)設(shè)計領(lǐng)域,AutoCAD不僅被廣泛應(yīng)用于平面繪圖,也可以用于三維建模,但在曲線、曲面造型方面不是很理想。它是開放型的人機(jī)交互系統(tǒng),有多種語言接口,與外界的數(shù)據(jù)交換很靈活,這些特點使得它與MATLAB的結(jié)合成為可能。
   
    三、結(jié)合MATLAB在AutoCAD中繪制曲線、曲面的原理及方法
   
    1.原理
   
    MATLAB中的矩陣數(shù)據(jù)雖然很容易提取,但由于它不是AutoCAD能識別的格式,因此不能直接被AutoCAD調(diào)用,需要先用Excel對從MATLAB中提取的數(shù)據(jù)進(jìn)行編輯,轉(zhuǎn)換成AutoCAD可以識別的格式,才能在AutoCAD中繪出曲線、曲面。
   
    2.方法
   
    由于在AutoCAD中繪制平面曲線、空間曲線和曲面的繪制命令不同,且數(shù)據(jù)結(jié)構(gòu)也不同,因此結(jié)合MATLAB的繪制方法也稍有區(qū)別。這種繪制方法的關(guān)鍵就是把數(shù)據(jù)格式轉(zhuǎn)換成AutoCAD的繪制命令所需要的數(shù)據(jù)格式,只要熟悉AutoCAD的數(shù)據(jù)結(jié)構(gòu),就可以舉一反三。
   
    在這三者中最復(fù)雜的是繪制公式曲面的數(shù)據(jù)結(jié)構(gòu),下面就以一個馬鞍形曲面的繪制為例來介紹這種方法,數(shù)學(xué)模型如公式(1)所示。
    



    (1)利用MATLAB得到公式曲面數(shù)據(jù)
   
    1)在MATLAB中繪制出曲面
   
    在MATLAB中輸入如下命令
   
    [th,r]=meshgrid((0:5:360)*pi/180,0:.05:1); %在極坐標(biāo)系下設(shè)置一個73×21的網(wǎng)格矩陣,即圓周方向分為73份,半徑方向分為21份,總共分了1533個點,節(jié)點越多,圖形越精確 %
   
    [X,Y]=pol2cart(th,r); %轉(zhuǎn)化為笛卡兒坐標(biāo)系%
    Z=X+i.*Y;
    F=abs((Z.^4-1).^(1/4));
    surf(X,Y,F); %顯示曲面的立體圖形%
    S=[X(:) Y(:) F(:)]; %把X、Y、F 3個矩陣中的數(shù)據(jù)存儲到矩陣S中%
   
    運(yùn)行后得到曲面圖形,如圖1所示。



圖1 MATLAB中繪制的曲面


    2)提取點坐標(biāo)
   
    在MATLAB的“Workspace”窗口中可以看到S是個1533×3的矩陣,即表示有1533個點的坐標(biāo),每個點有三個坐標(biāo)參數(shù),雙擊打開S,則彈出“Array EditorS”窗口,窗口表格中的數(shù)字就是矩陣的數(shù)據(jù)。
   
    先將全部數(shù)據(jù)復(fù)制到剪貼板,下面用Excel對坐標(biāo)數(shù)據(jù)進(jìn)行數(shù)據(jù)處理。



    (2)利用Excel編輯曲面數(shù)據(jù)
   
    打開Excel,將保存在剪貼板里的數(shù)據(jù)粘貼到Excel表格里,得到三列數(shù)據(jù),每列1533行。其中,A、B、C列中的數(shù)據(jù)分別是曲面上各點的笛卡兒坐標(biāo)系中的X、Y、Z值,而在AutoCAD中的笛卡兒坐標(biāo)系的點坐標(biāo)的輸入形式為“x,y,z”,所以我們需要對A、B、C列的數(shù)據(jù)間加個“,”。 


 


    方法是點選中D1D表示第D列,1表示第1行)格,在公式欄里輸入“=A1&","&B1&","& C1”后回車,再將光標(biāo)放到D1格的左下角,當(dāng)光標(biāo)變成黑色十字時,按住鼠標(biāo)左鍵向下拖動,一直到D1533格,這時D列的數(shù)據(jù)格式已經(jīng)變成了“X,Y, Z”,就可以被AutoCAD正確讀取了。復(fù)制D列數(shù)據(jù)到剪貼板后,就可以在AutoCAD中繪制曲面了,如圖2所示。



圖2 在Excel中編輯后的曲面數(shù)據(jù)


    3.在AutoCAD中繪制曲面
   
    在AutoCAD中運(yùn)行3dmesh三維網(wǎng)格)命令,命令行提示“Enter size of mesh in M direction: ”,輸入“73”后回車,命令行提示“Enter size of mesh in N direction: ”,輸入“21”后再回車,即73×21的網(wǎng)格矩陣),然后在命令行中粘貼剪貼板中的數(shù)據(jù),程序?qū)⒆詣舆\(yùn)行,結(jié)束后就得到了馬鞍形曲面,如圖3所示。



圖3 網(wǎng)格矩陣為73×21的馬鞍形曲面


   特別需要注意的是,在運(yùn)行3dmesh命令時的網(wǎng)格矩陣一定要和MATLAB中的相同,否則將得到錯誤圖形或運(yùn)行出錯。如果輸入的網(wǎng)格節(jié)點數(shù)不等于1533,則命令運(yùn)行出錯;如果輸入成21×73的網(wǎng)格,則命令執(zhí)行結(jié)束后將得到錯誤的圖形,如圖4所示。



圖4 網(wǎng)格矩陣為21×73的錯誤圖形


    四、結(jié)束語
   
    用這種方法得到的公式曲線、曲面不是貼圖,而是實際繪出和AutoCAD圖元,不僅可以在MATLAB中控制精度,還可以被用于進(jìn)行各種相應(yīng)發(fā)的命令操作,比如復(fù)制、鏡像、拉伸放樣、旋轉(zhuǎn)放樣或用鼠標(biāo)直接拖動任意節(jié)點來調(diào)整圖形等等。AutoCAD結(jié)合MATLAB實現(xiàn)公式曲線、曲面的繪制,加強(qiáng)了 AutoCAD在曲線、曲面造型方面的功能,使其在輔助設(shè)計方面發(fā)揮更大的作用。



服務(wù)熱線

0755-26825352

企業(yè)微信銷售咨詢

湘乡市| 咸阳市| 香港 | 青川县| 西宁市| 浦县| 色达县| 和龙市| 青河县| 白玉县| 万安县| 溧阳市| 鸡东县| 罗江县| 临湘市| 吴桥县| 梅河口市| 宁南县| 长治市| 德州市| 东乌珠穆沁旗| 古蔺县| 绥宁县| 邢台市| 兴化市| 筠连县| 廊坊市| 临洮县| 景东| 安义县| 广宗县| 绵竹市| 年辖:市辖区| 绥阳县| 梁河县| 沐川县| 普兰店市| 化隆| 喀什市| 万安县| 麻江县|