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

        ?

        AutoCAD與C語言接口程序的參數(shù)化設(shè)計與實現(xiàn)

        2010-08-15 00:48:29內(nèi)蒙古科技大學(xué)薄少軍
        河南科技 2010年12期
        關(guān)鍵詞:調(diào)用繪圖命令

        內(nèi)蒙古科技大學(xué) 薄少軍

        AutoCAD與C語言接口程序的參數(shù)化設(shè)計與實現(xiàn)

        內(nèi)蒙古科技大學(xué) 薄少軍

        在開發(fā)參數(shù)化機械CAD系統(tǒng)時,設(shè)計了AutoCAD與高級語言的接口程序,把AutoCAD強大的繪圖功能與C語言強有力的計算、輸入和輸出等功能結(jié)合起來,實現(xiàn)了自動繪圖。

        AutoCAD C語言接口

        一、引言

        AutoCAD具有較強的繪圖功能,但它所提供的計算能力有限,對于大量的計算問題顯得不太方便。為了充分利用高級語言中強有力的計算、輸入、輸出功能以及其它功能,必需考慮如何利用高級語言調(diào)用AutoCAD中的繪圖命令、編輯命令、尺寸標(biāo)注命令以及其它一些功能命令,這就要為高級語言與AutoCAD之間設(shè)計一個接口,以實現(xiàn)高級語言對AutoCAD的功能調(diào)用1。

        二、AutoCAD與高級語言接口程序的設(shè)計

        AutoCAD繪圖軟件與高級語言連接方式主要有以下3種:DXF圖形交換文件;命令組文件(3.SCR);IGS類型的圖形交換文件。相比之下,命令組文件有以下優(yōu)點:程序易編、易讀、易修改;命令組文件格式比較緊湊、占用內(nèi)存少,在AutoCAD上運行迅速,操作簡單2。

        鑒于命令組文件有上述優(yōu)點,本文選擇了命令組文件作為高級語言與AutoCAD的接口。在編寫函數(shù)時,主要應(yīng)考慮AutoCAD的命令格式,即基于命令格式來寫函數(shù)。編寫函數(shù)的目的實際上就是設(shè)計一個高級語言的函數(shù)集,通過調(diào)用這些函數(shù),可以形成與其功能相對應(yīng)的命令組文件,用戶可以通過高級語言調(diào)用這些函數(shù)實現(xiàn)對AutoCAD功能的調(diào)用,通過Auto2 CAD就可以方便地繪出圖形來。

        三、AutoCAD與高級語言接口程序的實現(xiàn)

        在設(shè)計函數(shù)之前,首先要將AutoCAD的菜單命令進行分類,然后歸納出各類命令的主要功能,最后編制實現(xiàn)這些功能的高級語言函數(shù)。本文將AutoCAD菜單命令分為4類,分別為:圖形繪制命令;圖形編輯命令;文本注釋命令;尺寸標(biāo)注命令3。下面以尺寸標(biāo)注命令為例闡述其實現(xiàn)方法。

        尺寸標(biāo)注是一般繪圖過程中不可缺少的步驟,為此,AutoCAD提供了一套完整的尺寸標(biāo)注命令。通過這些命令,可方便地標(biāo)注圖形上的各種尺寸,如線性尺寸、角度、直徑、半徑等。與這些功能相對應(yīng),就必須編寫一些函數(shù)以實現(xiàn)這些功能。函數(shù)的命令與其菜單名基本一致,其參數(shù)與在交互方式下實現(xiàn)這一功能時所輸入的參數(shù)也基本相同。

        例如,函數(shù)dim liner(floatX,floatY,float Z,float L,int I,int J,int K)的功能是自動進行水平標(biāo)注和垂直標(biāo)注。其中,X、Y是起點的坐標(biāo),L是相對于起點的長度,Z是相對于上一點的長度。I、J、K是狀態(tài)控制參數(shù),取值為:

        I=0 標(biāo)注水平尺寸

        I=1 標(biāo)注垂直尺寸

        J=0 標(biāo)注直徑符號

        J=1 標(biāo)注半徑符號

        K=0 起點坐標(biāo)為絕對坐標(biāo)

        K=1 起點坐標(biāo)為相對坐標(biāo)

        函數(shù)清單如下:

        /3 dim liner.c 3

        #include

        #include

        char XX[16],YY[16],ZZ[16],LL[16],UU [16],TT[16],SS[12];

        void mid(char 3 pl,char 3 p2,inti,intj)/3定義從字符串中取子串函數(shù)3/

        {

        int k;

        for(k=i-1;k

        }

        void right(char 3 p1,char 3 p2,inti)/3定義從字符串右端取子串函數(shù)3/

        {

        intj,k=strlen(p1);

        for(j=k-i;j

        }

        void dim liner(float X,float Y,float Z,float L,float I,int J,int K)

        { /3定義標(biāo)注函數(shù)3/

        int xl,yl,zl,110,i;

        float ll;

        FILE 3 fp;

        p rintf(″Enter your SCR filename: );

        gets(SS); /3輸入要建立的SCR文件名3/

        strcat(SS,″.SCR″);/3加擴展名3/

        if((fp=fopen(SS,″W″))==NULL)

        { /3建立SCR文件3/

        p rintf(″Can’t open SCR file!″);

        exit(0);

        }

        sp rintf(XX,″%f″,X);

        sp rintf(YY,″%f″,Y);

        sp rintf(ZZ,″%f″,Z);

        xl=Z>=0?strlen(XX)-l:strlen(XX);

        yl=Y>=0?strlen(YY)-l:strlen(YY);

        zl=Z>=0?strlen(ZZ)-l:strlen(ZZ);

        L=(int)(L 3 100+.5)/100;

        sp rintf(LL,″%d″L);

        110=strlen(LL);

        strcpy(UU,″″);

        for(i=0<110;i++)

        {

        mid(LL,TT,i,l);

        strcat(UU,TT);

        if(!strcmp(TT,″.″))

        {

        mid(LL,TT,i+1,2);

        strcat(UU,TT);

        break;

        }

        }

        strcpy(LL,UU);

        ll=L>=0?strlen(LL)-l:strlen(LL);

        right(LL,LL,ll);

        right(XX,XX,xl);

        right(YY,YY,yl);

        right(ZZ,ZZ,zl);

        if(I==0)

        {

        fp rintf(fp,″dim hor″);/3向SCR文件中寫標(biāo)注命令和標(biāo)注參數(shù)3/

        if(K==1)fp rintf(fp,″@″);

        fp rintf(fp,:″%s″,XX);

        fp rintf(fp,″,″);

        fp rintf(fp,″%s″,YY);

        fp rintf(fp,″@″);

        fp rintf(fp,″%s″,LL);

        fp rintf(fp,″,0@0,″);

        fp rintf(fp,″%s″,ZZ);

        fp rintf(fp,″″);

        }

        else

        {

        fp rintf(fp,″dim ver″);

        if(K==1)fp rintf(fp,″@″);

        fp rintf(fp,″%s″,XX);

        fp rintf(fp,″,″);

        fp rintf(fp,″%s″,YY);

        fp rintf(fp,″@″);

        fp rintf(fp,″%s″,LL);

        fp rintf(fp,″,0@0,″);

        fp rintf(fp,″%s″,ZZ);

        fp rintf(fp,″″);

        }

        if(J==1)fp rintf(fp,″%%%%c″); if(J==2)fp rintf(fp,″r″);

        if(L<0)right(LL,LL,ll-l);

        fp rintf(fp,″%s″,LL);

        fp rintf(fp,″exit″);

        fclose(fp); /3關(guān)閉SCR文件3/

        }

        如果用dim liner(100,60,8,70,0,0,0)調(diào)用該函數(shù),則在命令組文件中形成如下形式的數(shù)據(jù):

        D IM HOR 100,60@70,0@8,0 70 EXIT

        在繪AutoCAD的編輯狀態(tài)下,用SCRIPT命令調(diào)用含有命令組的文本文件即可生成所需繪制的直線。

        四、結(jié)論

        我們?yōu)锳utoCAD命令編寫函數(shù),設(shè)計AutoCAD與高級語言的接口,從而成功地將高級語言的優(yōu)點和AutoCAD的繪圖功能有機結(jié)合起來,取得了很好的效果。

        [1]方貴盛,王建軍.AutoCAD二次開發(fā)技術(shù)及其應(yīng)用研究[J].機床與液壓,2007.06

        [2]王軍政.TURBO C 3.0實用高級編程技巧.北京:北京科海培訓(xùn)中心,2002

        [3]應(yīng)道寧,胡樹根.中國CAD/CAM應(yīng)用與研究.成都:電子科技大學(xué)出版社,2002

        book=56,ebook=151

        猜你喜歡
        調(diào)用繪圖命令
        來自河流的你
        中國三峽(2022年7期)2022-12-02 05:28:02
        “禾下乘涼圖”繪圖人
        只聽主人的命令
        核電項目物項調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        基于HTML5 Canvas繪圖技術(shù)應(yīng)用
        電子測試(2018年4期)2018-05-09 07:28:32
        移防命令下達后
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        這是人民的命令
        Surfer和ArcView結(jié)合在氣象繪圖中的應(yīng)用
        河北遙感(2015年2期)2015-07-18 11:11:14
        国产一区二区三区porn| 国偷自产av一区二区三区| 国产九色AV刺激露脸对白| 玖玖资源网站最新网站| 人妻av有码中文字幕| 免费人成再在线观看视频| 麻豆AV免费网站| 四虎在线中文字幕一区| 久久成人国产精品一区二区| 久久丫精品国产亚洲av不卡| 亚洲一级电影在线观看| 日本精品av中文字幕| 国产69精品久久久久9999apgf| 国产专区国产av| 91精品日本久久久久久牛牛| 日本亚洲视频免费在线看| 欧美性猛交xxxx免费看蜜桃 | 成人欧美一区二区三区1314| 国产亚洲精品成人无码精品网站| 久久天堂av综合合色| 曰韩少妇内射免费播放| 精品亚洲国产成人av| 亚洲AⅤ樱花无码| 深夜一区二区三区视频在线观看| 国产精品无码v在线观看| 亚洲精品免费专区| 日韩成精品视频在线观看| 人妻少妇偷人精品免费看| 精品国产av最大网站| 日韩精人妻无码一区二区三区| 国产成人一区二区三区影院| 国产男小鲜肉同志免费| 精品国产香蕉伊思人在线又爽又黄| 国产精品一区一区三区| 亚洲综合色无码| 国产激情з∠视频一区二区| 久久久亚洲日本精品一区| 日本精品一区二区高清| 扒开双腿疯狂进出爽爽爽视频| 丰满人妻一区二区乱码中文电影网| 久久精品一区二区三区蜜桃|