ARX對資料的型別和單位進行轉換

2022-02-16 08:51:44 字數 2778 閱讀 5466

*arx對資料的型別和單位進行轉換

量鋼單位轉換函式

autocad軟體包的檔案acad.unt中,定義了一些常用的量鋼單位轉換關係,例如英里與公里,華氏與攝氏等等。函式acutcvunit()用來將一種單位的數值轉換成另一種單位的數值。單位用字串的形式表示,使用的字串必須與檔案acad.unt中定義的一致。如果當前繪圖單位是工程單位或建築單位(英呎或英吋),下面的程式能把指定的距離轉換成公尺為單位的值:

ads_real eng_len,metric_len;

char *prmpt=」請輸入距離:」;

if(acedgetdist(null,prmpt,&eng_len)!=rtnorm) return bad;

acutcvunit(eng_len,」inches」,」meters」,&metric_len);

[i]注意:不能用函式acutcvunit()轉換不相配的單位,例如不能把英吋轉換成年[/i]。

字串轉換函式

函式acdbrtos()用來將乙個實數轉換成字串值;

函式acdbangtos()用來將乙個角度值轉換成字串值;

函式acdbdistof()用來將乙個字串值轉換成實數值;

函式acdbangtof()用來將乙個字串值轉換成角度值。

[i]注意:字串格式由autocad的系統變數來控制,對於實數值,單位和精度由系統變數lunits和iuprec指定;對於角度值,單位和精度由系統變數aunits和auperc指定。不論實數還是角度值,標註變數dimzin控制著是否在生成字串的前後補0[/i]。

下面的程式是呼叫函授acdbrtos()的方法:

ads_real x=17.5;

char fmtval[12];

//精度是第三個引數

acdbrtos(x,1,4,fmtval);

acutprintf(「結果形式為%s\n」,fmtval);

acdbrtos(x,2,2,fmtval);

acutprintf(「結果形式為%s\n」,fmtval);

acdbrtos(x,3,2,fmtval);

acutprintf(「結果形式為%s\n」,fmtval);

acdbrtos(x,4,2,fmtval);

acutprintf(「結果形式為%s\n」,fmtval);

acdbrtos(x,5,2,fmtval);

acutprintf(「結果形式為%s\n」,fmtval);

假定系統變數dimzin為0,在autocad文字螢幕上顯示為:

結果形式為1.7500e+01

結果形式為17.50

結果形式為1′-5.50″

結果形式為1′-5 1/2″

結果形式為17 1/2

當系統變數unitmode等於1時,輸出串的單位由輸入字串的單位決定,因此,函式acdbrtos()在下列模式下返回的值在形式上是不同的:工程單位制(模式3)、建築單位制(模式4)和分數形式(模式5)。當unitmode=1時,在上面的例子中,前兩行的輸出形式不變,後三行將變為:

結果形式為1′5.50″

結果形式為1′5 -1/2″

結果形式為17 -1/2

函式acdbdistof()和acdbrtos()功能相反。下例就是引用上面程式轉換後生成的字串值,再進行反變換得來的,因此,引數restuil的值是17.5。

acdbdistof(「1.7500e+01」,1,&resuil);

acdbdistof(「17.50」,2,&resuil);

acdbdistof(「1′-5.50\″」,3,&resuil);

acdbdistof(「1′-5 1/2\″」,4,&resuil);

acdbdistof(「17 1/2」,5,&resuil);

下面的程式**呼叫函式acdbangtos()的方法。與acdbrtos()的呼叫類似:

ads_real ang=3.14159;

char fmtval[12];

acdbangtos(ang,0,0,fmtval);

acutprintf(「角度的形式為%s\n」,fmtval);

acdbangtos(ang,1,4,fmtval);

acutprintf(「角度的形式為%s\n」,fmtval);

acdbangtos(ang,2,4,fmtval);

acutprintf(「角度的形式為%s\n」,fmtval);

acdbangtos(ang,3,4,fmtval);

acutprintf(「角度的形式為%s\n」,fmtval);

acdbangtos(ang,4,2,fmtval);

acutprintf(「角度的形式為%s\n」,fmtval);

假定系統變數dimzin為0,在autocad文字螢幕上顯示為:

角度的形式為180

角度的形式為180d0′0″

角度的形式為200.0000g

角度的形式為3.1416r

角度的形式為w

函式acdbangtof()與acdbangtos()功能相反。下例就是引用上面程式轉換後生成的字串值,再進行反變換得來的,因此,引數restuil的值是3.14159。

acdbangtof(「180」,0,&resuil);

acdbangtof(「180d0′0\″」,1,&resuil);

acdbangtof(「200.0000g″」,2,&resuil);

acdbangtof(「3.1416r」,3,&resuil);

acdbangtof(「w」,4,&resuil);*

Python中怎樣對資料集整體進行對映轉換型別

1 1 line2 10.235186 11.321997 22 line3 list map lambda x float x line2 33 line3 44 10.235186,11.321997 注意 1 map lambda x frozenset x c1 23 lambda只是乙個表...

使用CUBE和ROLLUP對資料進行彙總

it專家網獨家 想要找乙個既快捷又有效的方法來對您儲存在資料庫裡的資料進行彙總分析嗎?sql語言中的rollup和cube命令提供了乙個非常有用的工具,可以讓您快速深入地獲取資料的各種內在性質。rollup和cube是sql的擴充套件命令,可以在sql server 6.5 及以上版本 和oracl...

C 編譯器如何對資料進行型別轉換

本人是c 行業的小白剛入行倆月多點,剛剛查資料學習了一些型別轉換原理,也就是編譯器編譯時如何對資料進行型別轉換。不知道對不對就沒做筆記但是還想記錄一下就發個帖子吧,歡迎各位大佬指教指教,有錯誤技術提出,小老弟不勝感激!進入正題。型別轉換大體上應該分隱是轉換 顯示轉換 方法轉換 自定義轉等換這幾類。編...