0
点赞
收藏
分享

微信扫一扫

CAD用多义线动态画矩形框

Star英 2022-07-27 阅读 90


动态拖放时的绘制事件:

1

2

3

4

5

6

7

8

9

10

11

​function​​​ ​​DynWorldDrawMatrix1( pCustomEntity, pWorldDraw, curPt) {​

​//与用户交互在图面上提取一个点​

​var​​​ ​​vBasePt = pCustomEntity.GetPoint(​​​​"BasePoint"​​​​);​

​//绘制一个直线​

​//参数一直线的开始点x坐标,参数二直线的开始点y坐标,参数三直线的结束点x坐标,参数四直线的结束点y坐标​

​pWorldDraw.DrawLine (vBasePt.x, vBasePt.y, vBasePt.x, curPt.y);​

​pWorldDraw.DrawLine (vBasePt.x, curPt.y, curPt.x, curPt.y);​

​pWorldDraw.DrawLine (curPt.x, curPt.y, curPt.x, vBasePt.y);​

​pWorldDraw.DrawLine (curPt.x, vBasePt.y, vBasePt.x, vBasePt.y);​

​}​

 

动态绘制矩形框:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

​//绘制矩形框​

​function​​​ ​​DrawPathToPolyline() {​

​// 创建一个与用户交互取点的对象。​

​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(​​​​"TestDynDrawMatrix1"​​​​);​

​// 设置动态绘制参数.​

​spDrawData.SetPoint(​​​​"BasePoint"​​​​, point1);​

​// 开始取第二个点。​

​if​​​ ​​(getSecondPt.go() != 1)​

​return​​​​;​

 

​mxOcx.PathMoveTo(point1.x, point1.y);​

​mxOcx.PathLineTo(point1.x, getSecondPt.value().y);​

​mxOcx.PathLineTo(getSecondPt.value().x, getSecondPt.value().y);​

​mxOcx.PathLineTo(getSecondPt.value().x, point1.y);​

​mxOcx.PathMakeClosed();​

​mxOcx.DrawPathToPolyline();​

 

​}​

举报

相关推荐

0 条评论