以梦为马,不负韶华

搜索
查看: 1214|回复: 2
收起左侧

CAD参数绘制直线(com接口)

[复制链接]
发表于 2019-6-20 14:12:48 显示全部楼层 |阅读模式
本帖最后由 lihao2014 于 2019-6-20 14:14 编辑

用户可以在CAD控件视区任意位置绘制直线。

主要用到函数说明:

_DMxDrawX::DrawLine

绘制一个直线。详细说明如下:
参数 说明
DOUBLE dX1 直线的开始点x坐标
DOUBLE dY1 直线的开始点y坐标
DOUBLE dX2 直线的结束点x坐标
DOUBLE dY2 直线的结束点y坐标
C#中实现代码说明:
  1. private void Drawline()
  2. {
  3.             
  4.     //把颜色改回黑白色
  5.     axMxDrawX1.DrawCADColorIndex = 0;
  6.   
  7.     //把线型改成实线
  8.     axMxDrawX1.LineType = "";
  9.   
  10.     //设置线宽4
  11.     axMxDrawX1.LineWidth = 0;
  12.   
  13.     //创建一个图层,名为“LineLayer”
  14.     axMxDrawX1.AddLayer("LineLayer");
  15.   
  16.     //绘制一个实线
  17.     axMxDrawX1.DrawLine(0, 0, 100, 0);
  18.   
  19.     //绘制一个虚线
  20.     //定义虚线数据,“MyLineType”是线型名,“6, -8”是虚线的一个单位定义,6是实线长,-8是空格长度。
  21.     axMxDrawX1.AddLinetype("MyLinetype", "6, -8");
  22.   
  23.     //设计当前线型为“MyLineType”
  24.     axMxDrawX1.LineType = "MyLineType";
  25.   
  26.     //绘制一个虚线
  27.     axMxDrawX1.DrawLine(0, 30, 100, 30);
  28.   
  29.     //绘制一个斜虚线
  30.     axMxDrawX1.DrawLine(200, 30, 300, 130);
  31.   
  32.     /*---------------------------------------------------------------------*/
  33.     //修改线的颜色为16711680(蓝色),16711680转换成16精致是0xFF 00 00,其中FF是蓝色,00是绿色,第二个00是红色。
  34.     axMxDrawX1.DrawCADColor = 16711680;
  35.   
  36.     //绘制一个蓝色的虚线
  37.     axMxDrawX1.DrawLine(0, 60, 100, 60);
  38.   
  39.     //绘制一个蓝色的斜虚线
  40.     axMxDrawX1.DrawLine(200, 60, 300, 160);
  41.   
  42.   
  43.     /*--------------------------------------------------------------------*/
  44.     //把线颜色改回黑色
  45.     axMxDrawX1.DrawCADColor = 0;
  46.   
  47.     //线型改成实线
  48.     axMxDrawX1.LineType = "";
  49.   
  50.     //设置线宽为4
  51.     axMxDrawX1.LineWidth = 4;
  52.   
  53.     //绘制一个带宽度的直线
  54.     axMxDrawX1.DrawLine(0, 90, 100, 90);
  55.   
  56.     //绘制一个带宽度的斜直线
  57.     axMxDrawX1.DrawLine(200, 90, 300, 90);
  58.   
  59.     /*-------------------------------------------------------------------*/
  60.     //绘制一个点划线虚线
  61.     axMxDrawX1.AddLinetype("MyLinetype2", "10, -2, 3, -4");
  62.   
  63.     //把线型改成点划线
  64.     axMxDrawX1.LineType = "MyLinetype2";
  65.   
  66.     //修改绘线的颜色为255(红色),255转成16进制是0x00 00,其中00是蓝色,第二个00是绿色,FF是红色。
  67.     axMxDrawX1.DrawCADColor = 255;
  68.   
  69.     //绘制一个带宽度的红色点划线
  70.     axMxDrawX1.DrawLine(0, 120, 100, 120);
  71.   
  72.     //绘制一个宽度红色点划斜线
  73.     axMxDrawX1.DrawLine(200, 120, 300, 220);
  74.   
  75.     /*----------------------------------------------------------------*/
  76.     //增加一个带有形的线型
  77.     axMxDrawX1.AddTextStyle1("MyLineTextStyle", "txt.shx", "hztxt.shx", 1);
  78.     axMxDrawX1.AddLinetypeEx("MyLineType3", "12.7, ("T=MxDraw", "s=2.54", "L=-5.08", "R=0.0","X=-2.54","Y=-1.27"), -10.08)", "MyLineTypeTextStyle");
  79.   
  80.     axMxDrawX1.LineType = "MyLineType3";
  81.   
  82.     axMxDrawX1.LineWidth = 0;
  83.   
  84.     //绘制一个带宽度的红色点划线
  85.     axMxDrawX1.DrawLine(300, 120, 600, 120);
  86.   
  87.     //绘制一个带宽度红色点划斜线
  88.     axMxDrawX1.DrawLine(400, 120, 600, 220);
  89.   
  90.     //把所有实体都放到当前显示视区
  91.     axMxDrawX1.ZoomAll();
  92.   
  93.     //更新视区显示
  94.     axMxDrawX1.UpdateDisplay();
  95. }
复制代码


 成长值: 47995

发表于 2019-6-20 14:12:48 显示全部楼层
能讲下网页版和com接口的区别么?
回复 支持 反对

使用道具 举报

发表于 2019-6-20 14:12:48 显示全部楼层
可怜劲儿看见我来看;去
回复 支持 反对

使用道具 举报

不想打字就选择快捷回复吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|以梦为马,不负韶华

GMT+8, 2025-4-7 12:19

Powered by 以梦为马,不负韶华

© 2024-2099 Meng.Horse

快速回复 返回顶部 返回列表