CAD参数绘制多段线(com接口)

1、多段线又被称为多义线,表示一起画的都是连在一起的一个复合对象,可以是直线也可以是圆弧并且它们还可以加不同的宽度。

2、主要用到函数说明:_DMxDrawX::PathLineTo

把路径下一个点移到指定位置。详细说明如下:

参数说明

DOUBLE dX

点的X坐标

DOUBLE dY

点的Y坐标

3、_DMxDrawX::DrawPathToPolyline

把路径变成一个Polyline。

C#中实现代码说明:

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

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

private void DrawPolyline()

{

    //Polyline 又称多义线,就是可以绘制多条首尾相连的线,也可以是圆弧相连,同是可以制定线的开始和结束宽

    //把颜色改回成黑白色

    axMxDrawX1.DrawCADColorIndex = 0;

  

    //把线型改成实线

    axMxDrawX1.LineType = "";

  

    //设置线宽 4

    axMxDrawX1.LineWidth = 4;

  

    //创建一个图层,名为"PolylineLayer"

    axMxDrawX1.AddLayer("PolylineLayer");

  

    //设置当前图层为"PolylineLayer"

    axMxDrawX1.LayerName = ("PolylineLayer");

  

    /*--------------------------------------------------*/

    //用Polyline显示绘制矩形框

  

    //定义下一个路径的开始点

    axMxDrawX1.PathMoveTo(0, 300);

  

    //路径的下一个点

    axMxDrawX1.PathLineTo(100, 300);

  

    //路径的下一个点

    axMxDrawX1.PathLineTo(100, 400);

  

    //路径的下一个点

    axMxDrawX1.PathLineTo(0, 400);

  

    //把路径设置成闭合

    axMxDrawX1.PathMakeClosed();

  

    //把路径闭合,生成一个举行框

    axMxDrawX1.DrawPathToPolyline();

  

    /*--------------------------------------------------*/

    //绘制一个有宽度,带线型的矩形框

    //定义一个路径的开始点

    axMxDrawX1.PathMoveTo(200, 300);

  

    //路径的下一个点

    axMxDrawX1.PathLineTo(300, 300);

  

    //路径的下一个点

    axMxDrawX1.PathLineTo(300, 400);

  

    //路径的下一个点

    axMxDrawX1.PathLineTo(200, 400);

        

    axMxDrawX1.AddLinetype("MyLineType3""30, -10");

  

    axMxDrawX1.LineType = "MyLineType3";

  

    axMxDrawX1.DrawCADColorIndex = 255;

  

    axMxDrawX1.LineWidth = 5;

  

    //把路径设置成闭合

    axMxDrawX1.PathMakeClosed();

    //把路径闭合,生成一个举行框

    axMxDrawX1.DrawPathToPolyline();

  

    /*--------------------------------------------------*/

    //绘制一个有宽度的矩形框

    //定义路径的开始点

    axMxDrawX1.PathMoveTo(400, 300);

    //定义路径的下一个点

    axMxDrawX1.PathLineTo(500, 300);

    //定义路径的下一个点

    axMxDrawX1.PathLineTo(500, 400);

    //定义路径的下一个点

    axMxDrawX1.PathLineTo(400, 400);

    //把路径设置成闭合

    axMxDrawX1.PathMakeClosed();

    //修改颜色

    axMxDrawX1.DrawCADColor = 65280;

    //把线型设置成实线

    axMxDrawX1.LineType = "";

    //设置线宽

    axMxDrawX1.LineWidth = 4;

    //把闭合路径设置成一个矩形框

    axMxDrawX1.DrawPathToPolyline();

  

    /*--------------------------------------------------*/

    //绘制一个有宽度的,不闭合的矩形框

    //定义一个路径的起始点

    axMxDrawX1.PathMoveTo(600, 300);

    //定义下一个点

    axMxDrawX1.PathLineTo(700, 300);

    //定义下一个点

    axMxDrawX1.PathLineTo(700, 400);

    //定义下一个点

    axMxDrawX1.PathLineTo(600, 400);

    //设置线的颜色

    axMxDrawX1.DrawCADColor = 255;

    //设置线型为实线

    axMxDrawX1.LineType = "";

    //设置线宽10

    axMxDrawX1.LineWidth = 10;

    //把闭合路径设置成一个矩形框

    axMxDrawX1.DrawPathToPolyline();

    /*--------------------------------------------------*/

    //绘制一个有宽度的三角形

    //定义路径的起始点

    axMxDrawX1.PathMoveTo(800, 300);

    //定义下一个点

    axMxDrawX1.PathLineTo(900, 300);

    //定义下一个点

    axMxDrawX1.PathLineTo(900, 400);

    //闭合路径

    axMxDrawX1.PathMakeClosed();

    //设置线的颜色

    axMxDrawX1.DrawCADColor = 62580;

    //设置线型为实线

    axMxDrawX1.LineType = "";

    //设置线宽10

    axMxDrawX1.LineWidth = 5;

    //闭合路径,把闭合路径设置成一个三角形

    axMxDrawX1.DrawPathToPolyline();

    /*--------------------------------------------------*/

    //绘制一个箭头

    axMxDrawX1.PathMoveToEx(1000, 300, 10, 10, 0);

    //设置路径下一点

    axMxDrawX1.PathLineToEx(1000, 500, 30, 0, 0);

    //设置路径下一点

    axMxDrawX1.PathLineTo(1000, 530);

    //闭合路径,把闭合路径设置成一个箭头

    axMxDrawX1.DrawPathToPolyline();

  

    /*--------------------------------------------------*/

    //绘制一个虚线箭头

    axMxDrawX1.PathMoveToEx(1100, 300, 10, 10, 0);

    //设置路径下一点

    axMxDrawX1.PathLineToEx(1100, 500, 30, 0, 0);

    //设置路径下一点

    axMxDrawX1.PathLineTo(1100, 580);

    //设置线型为实线“MyLineType3”

    axMxDrawX1.LineType = "MyLineType3";

    //闭合路径,把闭合路径设置成一个虚线箭头

    axMxDrawX1.DrawPathToPolyline();

  

    /*--------------------------------------------------*/

    //绘制一个圆弧箭头

    axMxDrawX1.PathMoveToEx(1200, 300, 10, 10, -0.34);

    //设置路径下一点

    axMxDrawX1.PathLineToEx(1200, 500, 30, 0, 0.34);

    //设置路径下一点

    axMxDrawX1.PathLineTo(1200, 600);

    //设置线的颜色

    axMxDrawX1.DrawCADColor = 255;

    //设置线型为实线“MyLineType3”

    axMxDrawX1.LineType = "MyLineType3";

    //闭合路径,把闭合路径设置成一个圆弧箭头

    axMxDrawX1.DrawPathToPolyline();

  

    //把所有实体都放到当前显示视区

    axMxDrawX1.ZoomAll();

  

    //更新视区显示

    axMxDrawX1.UpdateDisplay();

}

4、效果展示:

通过点击绘制多段线按钮,触发DrawPolyline()事件,则用户可以在CAD控件视区绘制所需的多段线。如下图所示:

C#drawpl.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值