CAD交互绘制带颜色宽度的直线(com接口)
2024-10-20 01:26:57
用户可以在控件视区任意位置绘制直线。
主要用到函数说明:
_DMxDrawX::DrawLine
绘制一个直线。详细说明如下:
参数 | 说明 |
---|---|
DOUBLE dX1 |
直线的开始点x坐标 |
DOUBLE dY1 |
直线的开始点y坐标 |
DOUBLE dX2 |
直线的结束点x坐标 |
DOUBLE dY2 |
直线的结束点y坐标 |
IMxDrawCustomEntity::Draw
把实体绘制到图上。一般用于动态拖放时,在拖放结束时,绘制到图上。
_DMxDrawXEvents::DynWorldDraw
动态拖放时的绘制事件。详细说明如下:
参数 | 说明 |
---|---|
DOUBLE dX |
当前鼠标位置X坐标 |
DOUBLE dY |
当前鼠标位置Y坐标 |
IDispatch* pWorldDraw |
IMxDrawWorldDraw对象,用于动态绘制 |
IDispatch* pData |
IMxDrawCustomEntity对象,动态绘制数据 |
_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 |
c#中实现代码说明:
动态拖放时的绘制事件:
private void DrawWidthline()
{
MxDrawUiPrPoint getPt = new MxDrawUiPrPoint();
getPt.message = "点取第一点:";
if (getPt.go() != MCAD_McUiPrStatus.mcOk)
return;
//点取第二点
MxDrawUiPrPoint getSecondPt = new MxDrawUiPrPoint();
getSecondPt.message = "点取第二点:";
//调用
MxDrawCustomEntity spDrawData = getSecondPt.InitUserDraw("TestDynDrawWidthline");
// 设置动态绘制参数.
spDrawData.SetPoint("BasePoint", getPt.value());
//设置线宽
spDrawData.SetDouble("TestDynDrawlineWidth", 10);
// 开始取第二个点。
if (getSecondPt.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 == "TestDynDrawWidthline")
{
MxDrawPoint sPt = pCustomEntity.GetPoint("BasePoint");
double dw = pCustomEntity.GetDouble("TestDynDrawlineWidth");
pWorldDraw.LineWidth = dw;
//设置直线颜色
MxDrawMcCmColor color = new MxDrawMcCmColor();
color.SetRGB(255, 0, 0);
pWorldDraw.Color = color.EntityColor;
//绘制一个直线
//参数一直线的开始点x坐标,参数二直线的开始点y坐标,参数三直线的结束点x坐标,参数四直线的结束点y坐标
pWorldDraw.DrawLine(sPt.x, sPt.y, curPoint.x, curPoint.y);
}
}
最新文章
- python SMTP邮件发送(转载)
- 汇编学习(六)——代码转换程序
- mac El Capitan 10.11.6
- MJRefresh简单处理
- Data Pump(数据抽取)介绍
- (C#) Parse xml 时, 返回的node值总是null。
- Grunt 之通配符
- POJ 2524 (简单并查集) Ubiquitous Religions
- Linux中重定向及管道
- js常见事件
- 国内国外MD5在线解密站点
- koa2 controller中实现类似sleep的延迟功能
- 3Sum探讨(Java)
- Time Complexity of Loop with Powers
- 20190329-盒尺寸、boder-
- VS2017 编译Assimp
- css3中trastion,transform,animation基本的了解
- javascript中let和var的区别
- 最全的android学习资料
- 全排列-hdu1027
热门文章
- bzoj 4543 HOTEL 加强版
- VS2013插件开发
- hdu5475(线段树单点修改,统计区间乘积)
- 洛谷 P3622 [APIO2007]动物园【状压dp】
- poj 2398 Toy Storage【二分+叉积】
- [App Store Connect帮助]八、维护您的 App(4.2)查看评分与评论
- 组合数学练习题(二)——Chemist
- Mybatis的全局配置文件标签介绍(mybatis-config.xml)
- A - Supercentral Point CodeForces - 165A
- 递推DP UVA 1291 Dance Dance Revolution