在CAD设计时,需要绘制圆弧,用户可以在图面点圆弧起点,圆弧上的一点和圆弧的终点,这样就绘制出圆弧。

主要用到函数说明:

_DMxDrawX::DrawArc2

由圆弧上的三点绘制一个圆弧。详细说明如下:

参数 说明

DOUBLE dStartPointX

开始点X坐标

DOUBLE dStartPointY

开始点Y坐标

DOUBLE dMidPointX

圆弧上的一点X坐标

DOUBLE dMidPointY

圆弧上的一点Y坐标

DOUBLE dEndPointX

结束点X坐标

DOUBLE dEndPointY

结束点Y坐标

IMxDrawCustomEntity::Draw

把实体绘制到图上。一般用于动态拖放时,在拖放结束时,绘制到图上。

_DMxDrawXEvents::DynWorldDraw

动态拖放时的绘制事件。详细说明如下:

参数 说明

DOUBLE dX

当前鼠标位置X坐标

DOUBLE dY

当前鼠标位置Y坐标

IDispatch* pWorldDraw

IMxDrawWorldDraw对象,用于动态绘制

IDispatch* pData

IMxDrawCustomEntity对象,动态绘制数据

c#中实现代码说明:

动态拖放时的绘制事件:

private void DrawArc()
{
//制定圆弧的起点
MxDrawUiPrPoint getPt = new MxDrawUiPrPoint();
getPt.message = "制定圆弧的起点";
if(getPt.go() != MCAD_McUiPrStatus.mcOk)
{
return;
}
//制定圆弧的第二点
MxDrawUiPrPoint getSecondPt = new MxDrawUiPrPoint();
getSecondPt.message = "制定圆弧的第二点";
//基点
getSecondPt.basePoint = getPt.value();
//设置是否启用基点 true:使用 false:不使用
if (getSecondPt.go() != MCAD_McUiPrStatus.mcOk)
{
return;
}
//制定圆弧的端点
MxDrawUiPrPoint getThreePt = new MxDrawUiPrPoint();
getThreePt.message = "制定圆弧的端点";
MxDrawCustomEntity spDrawData = getThreePt.InitUserDraw("DrawArc");
spDrawData.SetPoint("basepoint", getPt.value());
spDrawData.SetPoint("secondpoint", getSecondPt.value());
if (getThreePt.go() != MCAD_McUiPrStatus.mcOk)
return;
spDrawData.Draw();
}

动态绘制圆弧:

private void axMxDrawX1_DynWorldDraw(object sender, AxMxDrawXLib._DMxDrawXEvents_DynWorldDrawEvent e)

{
MxDrawCustomEntity pCustomEntity = (MxDrawCustomEntity)e.pData;
MxDrawWorldDraw pWorldDraw = (MxDrawWorldDraw)e.pWorldDraw;
string sGuid = pCustomEntity.Guid; MxDrawPoint curPoint = new MxDrawPoint(); curPoint.x = e.dX;
curPoint.y = e.dY;
if(sGuid == "DrawArc")
{
MxDrawPoint point1 = pCustomEntity.GetPoint("basepoint");
if (point1 == null)
return;
MxDrawPoint point2 = pCustomEntity.GetPoint("secondpoint");
if (point2 == null)
return;
//由圆弧上的三点绘制一个圆弧
//参数一为开始点X坐标 ;参数二为开始点Y坐标 ;参数三为结束点X坐标
//参数四为结束点Y坐标 ;参数五为圆弧上的一点X坐标 ;参数六为圆弧上的一点Y坐标
pWorldDraw.DrawArc2(point1.x, point1.y, point2.x, point2.y, curPoint.x, curPoint.y);
}
}

CAD交互绘制圆弧(com接口)的更多相关文章

  1. CAD交互绘制圆弧(网页版)

    在CAD设计时,需要绘制圆弧,用户可以在图面点圆弧起点,圆弧上的一点和圆弧的终点,这样就绘制出圆弧. 主要用到函数说明: _DMxDrawX::DrawArc2 由圆弧上的三点绘制一个圆弧.详细说明如 ...

  2. CAD参数绘制圆弧(com接口)

    在CAD设计时,需要绘制圆弧,用户可以在图面点圆弧起点,圆弧上的一点和圆弧的终点,这样就绘制出圆弧. 主要用到函数说明: _DMxDrawX::DrawArc2 由圆弧上的三点绘制一个圆弧.详细说明如 ...

  3. CAD参数绘制圆弧(网页版)

    在CAD设计时,需要绘制圆弧,用户可以在图面点圆弧起点,圆弧上的一点和圆弧的终点,这样就绘制出圆弧. 主要用到函数说明: _DMxDrawX::DrawArc2 由圆弧上的三点绘制一个圆弧.详细说明如 ...

  4. CAD交互绘制文字(com接口)

    在cad设计时,需要绘制文字,用户可以设置设置绘制文字的高度等属性. 主要用到函数说明: _DMxDrawX::DrawText 绘制一个单行文字.详细说明如下: 参数 说明 DOUBLE dPosX ...

  5. CAD交互绘制圆(com接口)

    CAD绘制图像的过程中,画圆的情况是非常常见的,用户可以在控件视区点取任意一点做为圆心,再动态点取半径绘制圆. 主要用到函数说明: _DMxDrawX::DrawCircle 绘制一个圆.详细说明如下 ...

  6. CAD交互绘制样条线(com接口)

    在CAD设计时,需要绘制样条线,用户可以设置样条线线重及颜色等属性. 主要用到函数说明: _DMxDrawX::SendStringToExecuteFun 把命令当着函数执行,可以传参数.详细说明如 ...

  7. CAD交互绘制多段线(com接口)

    多段线又被称为多义线,表示一起画的都是连在一起的一个复合对象,可以是直线也可以是圆弧并且它们还可以加不同的宽度. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下 ...

  8. CAD交互绘制带周长面积的矩形框(com接口)

    主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...

  9. CAD交互绘制矩形框(com接口)

    主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...

随机推荐

  1. gearcache在qemu-kvm虚拟化平台下的实现

    需要用到的数据结构: 链表,基树. gearcache在qemu-kvm虚拟化平台下的实现主要有以下的步骤: 1.打开镜像文件的时候,为gearcache中的基数池(page_node_pool)和读 ...

  2. openpyxl操作excel

    [转] openpyxl库可以读写xlsx格式的文件,对于xls旧格式的文件只能用xlrd读,xlwt写来完成了. python有很多模块都是用来操作excel的,比如xlrd,xlwt,pyExce ...

  3. vue 基础知识随笔

    在vue2.0中一个vue实例的生命周期中已经没有ready()了,在vue1.0中才有ready();在vue2.0中立即执行函数使用mounted v-for 参数顺序更新: 数组中使用(valu ...

  4. Android 布局学习之——LinearLayout属性baselineAligned的作用及baseline(转载)

    转自:http://www.cnblogs.com/JohnTsai/p/4074643.html 相信大家对LinearLayout已经相当熟悉,但你们是否了解它的属性baselineAligned ...

  5. Linux下firefox安装flash player插件

    下载插件 解压插件 使用命令tar -zxvf install_xxxxxx libflashplayer.so 拷贝目录 然后把切换到root用户,把文件夹拷贝到/usr/lib/mozilla/p ...

  6. ntp多台主机时间同步

    通俗的讲,多台主机ntp时间同步,就是自定义集群中一台机器(我们这里叫它server)与网络时间同步,然后其它主机与server主机时间同步 另外,ntp时间同步机制不是我们想象的那样直接同步,而是“ ...

  7. 从零开始通过idea插件将一个spring boot项目部署到docker容器里运行

    实操:将一个spring boot项目部署到docker容器里运行 实验需要的环境: 腾讯云+Ubuntu 16.04 x64+idea+插件docker integration+daocloud 第 ...

  8. Intellij IDEA 快捷键整理(史上最全)

    [常规] Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关 ...

  9. java-异常简介

    1.简介 ############################################################### ############################### ...

  10. _bzoj2243 [SDOI2011]染色【树链剖分】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2243 裸的树链剖分,最开始我保存一个线段树节点的color值时(若有多种颜色则为-1),不小 ...