天天看點

CAD參數繪制文字(com接口)

在CAD設計時,需要繪制文字,使用者可以設定設定繪制文字的高度等屬性。

主要用到函數說明:

_DMxDrawX::DrawText

繪制一個單行文字。詳細說明如下:

參數 說明
DOUBLE dPosX >文字的位置的X坐标
DOUBLE dPosY 文字的位置的Y坐标
BSTR pszText 文字内容字元串
DOUBLE dHeight 文字高度
DOUBLE dRotation 文字的旋轉角度
SHORT horizontalMode 文字的水準對齊方式,0=kTextLeft,1=kTextCenter,2=kTextRight
SHORT verticalMode 文字的豎直對齊方式,1=kTextBottom,2=kTextVertMid,3=kTextTop

_DMxDrawX::AddTextStyle1

向資料庫中增加一個文字樣式。詳細說明如下:

參數 說明
BSTR pszName 文字樣式名稱
BSTR pszFileName shx檔案名
BSTR pszBigFontFileName big shx檔案名
DOUBLE dXScale 文字寬度縮放比例

C#中實作代碼說明:

private void DrawText()

{

    //清空目前顯示内容

    axMxDrawX1.NewFile();

    //把顔色改回黑白色

    axMxDrawX1.DrawCADColor = 0;

    //建立一個圖層,名為"TextLayer"

    axMxDrawX1.AddLayer("TextLayer");

    //設定目前圖層為"TextLayer"

    axMxDrawX1.LayerName = "TextLayer";

    //繪制一個單行文字

    //參數一為文字的位置的X坐标 ;參數二為文字的位置的Y坐标 ;參數三為文字内容字元串

    //參數四為文字高度;參數五為文字的旋轉角度

    //參數六為文字的水準對齊方式,0=kTextLeft,1=kTextCenter,2=kTextRight

    //參數七文字的豎直對齊方式,1=kTextBottom,2=kTextVertMid,3=kTextTop

    //-------------------------------------------------------------------------------------------------

    //寫一個文字,0,1是左對齊.

    axMxDrawX1.DrawCADColor = 65280;

    axMxDrawX1.DrawText(0, 1900, "夢想繪圖控件3.0 www.mxdraw.com", 100, 0, 0, 1);

    //---------------------------------------------------------------------------------------------------

    //寫一個文字,2,1是右下對齊.

    axMxDrawX1.DrawCADColor = 4556677;

    axMxDrawX1.DrawText(3000, 2100, "夢想繪圖控件3.0 www.mxdraw.com", 100, -20, 2, 1);

    //--------------------------------------------------------------------------------------------------

    //按指定樣式繪制文字

    axMxDrawX1.AddTextStyle1("MyTextStyle", "italicc.shx", "gbcbig.shx", 0.7);

    axMxDrawX1.TextStyle = "MyTextStyle";

    axMxDrawX1.DrawCADColor = 255;

    axMxDrawX1.DrawText(0, 3000, "夢想繪圖控件3.0 www.mxdraw.com", 100, 0, 0, 1);

    //--------------------------------------------------------------------------------------------------

    //寫一個TureType字型

    axMxDrawX1.AddTextStyle2("MyTrueTypeStyle", "黑體", 0.7);

    axMxDrawX1.TextStyle = "MyTrueTypeStyle";

    axMxDrawX1.DrawText(0, 3150, "夢想繪圖控件3.0 www.mxdraw.com", 100, 0, 0, 1);

    axMxDrawX1.ZoomAll();

    axMxDrawX1.UpdateDisplay();

}