- MxDraw 云图
- 快速入门
- 前端 mxdraw 和 mxcad 库预览编辑图纸
- 后台使用 Node.js 调用梦想 API
- CAD 与 GIS 集成说明
- 梦想云图 Node.JS 服务
- iOS 开发
- 安卓开发
- 网页 CAD 开发
- 网页快速入门 aspaps.netphpjava
- 图形数据库
- 参数化绘图
- 交互绘图
- 选择集
- 扩展数据
- 自定义实体
- 自定义命令
- 光栅图处理
- 图面搜索
- 控件事件
- 打印控制
- 界面控制
- COM 开发
- 视频教程
- VB 快速入门
- Delphi 快速入门
- CSharp 快速入门
- java 快速入门
- QT 快速入门
- 易语言快速入门
- Powerbuilder 快速入门
- wpf 控件入门
- 图形数据库
- 参数化绘图
- 交互绘图
- 选择集
- 扩展数据
- 自定义命令
- 自定义实体
- 打印控制
- 控件事件
- 图面搜索
- 光栅图处理
- 界面控制
- C++ 开发
- C++ bulider 快速入门
- C++ 快速入门(VS2010)
- C++ 快速入门(com 接口)
- 图纸数据库
- 参数化绘图
- 交互绘图
- 选择集
- 扩展程序
- 扩展数据
- 自定义函数
- 自定义实体
- 光栅图处理
- 图面搜索
- 控件事件
- 界面控制
- 常见问题
- 试用技术服务申请
- 会员下载最新程序
- 备用下载
- 控件安装运行说明
- 控件最新更新
- 控件功能简介
- 控件图形数据库
- 控件界面控制
- 控件命令执行原理
- 控件系统变量说明
- 控件常见问题说明
- 修改对象属性
- 网页加载 CAD 图纸的两个方案
- MxDraw3D 控件
- 前端基础工程化知识
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
说明
下载地址:
https://mxtmpweb.mxdraw.f3322.net:3562/cpp/ParamDraw.zip
在绘制实体时,我们需要以动态内存的方式来实例化实体,在C++的语法里即体现为使用new关键字来实例化一个实体对象,如:
McDbLine * pLine = new McDbLine(McGePoint3d(0, 0, 0), McGePoint3d(1, 1, 1));
上述代码即初始化一个直线实体对象,现在将它放入模型空间即可显示:
MrxDbgUtils::addToCurrentSpaceAndClose(pLine);
如未指定实体所在图层,该实体会出现在默认的图层。在此,我们绘制了直线、多段线、点、样条线、圆、圆弧、椭圆、椭圆弧等实体,并将它们设置为红色(红色索引值为1),并将其放入一个独立的图层中,图层中设置了线型,颜色;代码、线型、颜色索引如下所示:
McDbObjectId CParamDrawDlg::CreateLayer(const McDbEntity * pEnt)const { auto sTypeName = pEnt->isA()->name(); McDbLayerTable * pLayer = nullptr; //得到当前数据库 auto pDatabase = MxDraw::GetDatabase(MxDraw::GetCurOcxHandle()); //得到层表 pDatabase->getLayerTable(pLayer, McDb::kForWrite); McDbLayerTableRecord * pLayerRecord = nullptr; //判断层表里是否有该层的记录 if (pLayer->has(sTypeName)) { pLayer->getAt(sTypeName, pLayerRecord, McDb::kForWrite); } else { //如果没有该层,即添加该层至层表 pLayerRecord = new McDbLayerTableRecord; pLayerRecord->setName(sTypeName); pLayer->add(pLayerRecord); } McCmColor mLayerColor; mLayerColor.setColorIndex(1); //红色 mLayerColor.setColorMethod(McCmColor::kByACI); pLayerRecord->setColor(mLayerColor);// pLayerRecord->setLineWeight(McDb::kLnWt025);// pLayerRecord->setBright(100);//100亮度 McDbLinetypeTable * pLinetype = nullptr; McDbObjectId mLineTypeID; pDatabase->getLinetypeTable(pLinetype, McDb::kForRead); pLinetype->getAt(L"DIVIDE", mLineTypeID); pLayerRecord->setLinetypeObjectId(mLineTypeID); //图层必须在关闭状态才能向里添加实体 pLinetype->close(); pLayerRecord->close(); pLayer->close(); return pLayerRecord->objectId(); }
图层中的线型:
//设置层为“DIVIDE”线型 McDbLinetypeTable * pLinetype = nullptr; McDbObjectId mLineTypeID; pDatabase->getLinetypeTable(pLinetype, McDb::kForRead); pLinetype->getAt(L"DIVIDE", mLineTypeID); pLayerRecord->setLinetypeObjectId(mLineTypeID);
已有线型:
颜色索引说明:
kByblock = 0 随块
kRed = 1 红色
kYellow = 2 黄色
kGreen = 3 绿色
kCyan = 4 青色
kBlue = 5 蓝色
kMagenta = 6 洋红色
kWhite = 7 白色
kBylayer = 256 随层
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论