天天看點

CAD互動繪制虛線(網頁版)

1、主要用到函數說明:_DMxDrawX::DrawLine

繪制一個直線。詳細說明如下:

參數 說明
DOUBLE dX1 直線的開始點x坐标
DOUBLE dY1 直線的開始點y坐标
DOUBLE dX2 直線的結束點x坐标
DOUBLE dY2 直線的結束點y坐标

2、IMxDrawCustomEntity::Draw

把實體繪制到圖上。一般用于動态拖放時,在拖放結束時,繪制到圖上。

3、_DMxDrawXEvents::DynWorldDraw

動态拖放時的繪制事件。詳細說明如下:

參數 說明
DOUBLE dX 目前滑鼠位置X坐标
DOUBLE dY 目前滑鼠位置Y坐标
IDispatch* pWorldDraw IMxDrawWorldDraw對象,用于動态繪制
IDispatch* pData IMxDrawCustomEntity對象,動态繪制資料

4、_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

5、繪制虛線直線

js中實作代碼說明:

(1)動态拖放時的繪制事件:

function​​​ ​​DynWorldDrawMyLine( pCustomEntity, pWorldDraw, curPt) {​​
​​//與使用者互動在圖面上提取一個點​​
​​var​​​ ​​vBasePt = pCustomEntity.GetPoint(​​​​"BasePoint"​​​​);​​
​​//定義虛線資料據,"MyLineType"是線型名,"6,-8"是虛線的一個機關定義,6是實線長,-8是空格長​​
​​mxOcx.AddLinetype(​​​​"MyLineType"​​​​, ​​​​"6,-10"​​​​);​​
​​//設計目前線型為"MyLineType"​​
​​pWorldDraw.LineType = ​​​​"MyLineType"​​​​;​​
​​//繪制一個直線​​
​​//參數一直線的開始點x坐标,參數二直線的開始點y坐标,參數三直線的結束點x坐标,參數四直線的結束點y坐标​​
​​pWorldDraw.DrawLine (vBasePt.x, vBasePt.y, curPt.x, curPt.y);​​
​​}​​      

(2)動态繪制虛線直線:

function​​​ ​​DrawMyline() {​​
​​// 建立一個與使用者互動取點的對象。​​
​​var​​​ ​​point1 = mxOcx.GetPoint(​​​​false​​​​,0,0,​​​​"\n 點取開始點:"​​​​);​​
​​if​​​​(point1 == ​​​​null​​​​)​​
​​{​​
​​return​​​​;​​
​​}​​
​​var​​​ ​​getSecondPt = mxOcx.NewComObject(​​​​"IMxDrawUiPrPoint"​​​​);​​
​​getSecondPt.message = ​​​​"第二點"​​​​;​​
​​getSecondPt.basePoint = point1;​​
​​//不開啟皮筋效果​​
​​getSecondPt.setUseBasePt(​​​​false​​​​);​​
​​//調用​​
​​var​​​ ​​spDrawData = getSecondPt.InitUserDraw(​​​​"TestDynDrawMyLine"​​​​);​​
​​// 設定動态繪制參數.​​
​​spDrawData.SetPoint(​​​​"BasePoint"​​​​, point1);​​
​​// 開始取第二個點。​​
​​if​​​ ​​(getSecondPt.go() != 1)​​
​​return​​​​;​​
​​var​​​ ​​ret = spDrawData.Draw();​​
 
​​}​​