ObjectARX_AutoCAD创建矩形功能实现
创建矩形主要用到AcDbPolyline类,实现方法是通过点选对角点。
void CreateRectangle()//创建矩形命令
{ads_point startpoint;int nReturn;acedInitGet(NULL, _T("R"));nReturn = acedGetPoint(NULL, _RXST("指定起点:"), startpoint);if (nReturn == RTNORM){ads_point endpoint;nReturn = acedGetPoint(startpoint, _RXST("\n指定对角点:"), endpoint);//根据对角点找出四个角的顶点ads_real x1 = startpoint[X];ads_real x2 = endpoint[X];ads_real y1 = startpoint[Y];ads_real y2 = endpoint[Y];AcGePoint2d ptLeftBottom(min(x1, x2), min(y1, y2));AcGePoint2d ptRightBottom(max(x1, x2), min(y1, y2));AcGePoint2d ptRightTop(max(x1, x2), max(y1, y2));AcGePoint2d ptLeftTop(min(x1, x2), max(y1, y2));AcGePoint2dArray points;points.append(ptLeftBottom);points.append(ptRightBottom);points.append(ptRightTop);points.append(ptLeftTop);int numVerts = points.length();AcDbPolyline *pPline = new AcDbPolyline(numVerts);for (int i = 0; i < points.length(); i++){pPline->addVertexAt(i, points.at(i));}pPline->setClosed(true);HysuEditor::PostToModelSpace(pPline);acutPrintf(_RXST("\n创建矩形完成."));}else {acutPrintf(_RXST("\n获取点失败."));acutPrintf(_RXST("\n创建矩形失败."));}
}
AcDbObjectId HysuEditor::PostToModelSpace(AcDbEntity *pEnt, AcDbDatabase *pDb)
{AcDbBlockTable *pBlkTbl = NULL;Acad::ErrorStatus es;es = pDb->getBlockTable(pBlkTbl, AcDb::kForRead);if (es != Acad::eOk){acutPrintf(_T("\n块表打开失败,错误代码:%s"), acadErrorStatusText(es));return AcDbObjectId::kNull;}AcDbBlockTableRecord *pBlkTblRcd = NULL;es = pBlkTbl->getAt(ACDB_MODEL_SPACE, pBlkTblRcd, AcDb::kForWrite);if (es != Acad::eOk){acutPrintf(_T("\n模型空间块表记录打开失败,错误代码:%s"), acadErrorStatusText(es));pBlkTbl->close();return AcDbObjectId::kNull;}pBlkTbl->close();AcDbObjectId outId;es = pBlkTblRcd->appendAcDbEntity(outId, pEnt);if (es != Acad::eOk){acutPrintf(_T("\n无法添加实体到模型空间,错误代码:%s"), acadErrorStatusText(es));pBlkTblRcd->close();return AcDbObjectId::kNull;}pEnt->close();pBlkTblRcd->close();return outId;
}
ObjectARX_AutoCAD创建矩形功能实现相关推荐
- Silverlight 2动态创建矩形对象(附完整源代码)
Silverlight 2动态创建矩形对象(附完整源代码)[转] 使用Silverlight 2的Canvas,写了一个动态创建Rectangle的示例,由于时间的原因所以难免有些不足之处,但程序功能 ...
- 如何构造充填图元_每日一练36:关于如何在Revit中使用自适应族创建矩形无缝曲面幕墙嵌板的方法...
如何用自适应族创建矩形无缝曲面幕墙嵌板 1.用公制概念体量,绘制曲面幕墙 生成实体后点击分格表面调整V网格为15(可根据自己需求调整) 2.新建一个基于公制幕墙嵌板填充图案,创建实体形状 载入到项目中 ...
- File类创建删除功能的方法
package com.learn.demo01.File;import java.io.File; import java.io.IOException;/*File类创建删除功能的方法- publ ...
- 如何使用Bootstrap Modal和jQuery AJAX创建登录功能
by Yogi 由瑜伽士 Bootstrap Modal is an excellent way to create a Login form on your website. In this tut ...
- 阿里云服务器创建历史功能介绍 快速创建云服务器
当我们登录阿里云控制台创建云服务器的时候,通常的做法是先登录阿里云服务器购买界面,再配置计费方式.网络类型.实例规格.带宽.镜像等一系列云服务器参数,最后创建云服务器.如果我们在配置参数的过程中出现误 ...
- VSPD 7.0 虚拟串口创建不成功能, 修复步骤:
VSPD 7.0 虚拟串口创建不成功能, 修复步骤: 原因: 创建后,因为蓝屏或其他原未正常退出后,就会无法再次创建虚拟串口了: 解决方法: 1.先下载:PSTools\psExec.exe ...
- python根据输入的长和宽创建矩形
文章目录 要求 for循环 while循环 要求 使用 # 号输出一个矩形,用户可以指定宽和高 for循环 length = input("请输入要创建矩形的长度:") width ...
- oracle中触发器的创建,Oracle触发器创建及其功能
Oracle触发器创建及其功能 下面的文章主要介绍的是如何创建Oracle触发器,同时介绍了Oracle触发器的功能.语法,而且通过具体的例子可以让大家更深入的`掌握. 1.创建表t1 :create ...
- ROS2入门教程—创建ROS2功能包(C++版)
ROS2入门教程-创建ROS2功能包(C++版) 1 ROS2中的功能包 2 创建功能包 3 编译功能包 4 设置环境变量 5 运行功能包 6 功能包中的内容 7 修改package.xml文件 ...
- 10天手敲一个SpringBoot网上商城项目(九)—— 确认订单、创建订单功能的实现及AOP
静态资源及sql文件分享 链接:https://pan.baidu.com/s/1X-yjmQcPD3PqS21x0HplNA?pwd=23gr 提取码:23gr 文章目录 确认订单 1.确认订单-持 ...
最新文章
- SQL compute by 的使用
- 保证java的jar包在后台运行
- 字节流读数据(一次读一个字节数据)
- 小汤学编程之JAVA基础day09——常用类(一):比较器、内部类和包装类
- 7-102 单词首字母大写 (15 分)
- error C2662
- 本地算术验证码识别教程
- Enterprise Library 3.1 简化使用范例一
- 关于抓包软件Fiddler的简单汉化
- SQL Server 2014各版本区别
- IAR的基本使用教程
- 如何前后端分离的架构中使用Shiro框架
- cf鼠标宏数据大全_两只“轻量、不打孔、右手工学”鼠标,DX30E和魔幻豹ULTRA
- 北斗高精度定位在民航机场的创新应用
- 【UE编辑器怎么添加新的语法高亮】
- 【2021年度总结】积跬步,「卷」千里,2022 继续「卷」
- matlab 对数回归,matlab的对数回归
- c语言next函数定义,c语言的数据结构中,next是如何指向下一个元素的?
- 我亦无他,唯手熟尔:Verilog基本语法目录
- latex文字加粗、斜体
热门文章
- BIOS int 10H中断介绍
- 编程语言常见符号集合分享,赶快收藏
- 2019年python爬虫-我破解了中文裁判网数据挖掘-反爬技术哪些事情
- 谷歌或Edge浏览器在开始菜单页面不显示图标
- 什么是像素格式(色彩采样、色度抽样)RGB 4:4:4、(Limit)RGB 4:4:4、Ycbcr 4:4:4、Ycbcr 4:2:2、Ycbcr 4:2:0又是什么?
- 将Windows10中的C盘desktop移到D盘
- 最短路径系列【最短路径、哈密顿路等】
- 关于VS2017配置OpenCV出现无法打开文件“opencv_ml249d.lib”的解决方案
- Exception in thread “main“ java.lang.ArithmeticException: / by zero
- 输出200以内所有素数(python)