创建矩形主要用到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创建矩形功能实现相关推荐

  1. Silverlight 2动态创建矩形对象(附完整源代码)

    Silverlight 2动态创建矩形对象(附完整源代码)[转] 使用Silverlight 2的Canvas,写了一个动态创建Rectangle的示例,由于时间的原因所以难免有些不足之处,但程序功能 ...

  2. 如何构造充填图元_每日一练36:关于如何在Revit中使用自适应族创建矩形无缝曲面幕墙嵌板的方法...

    如何用自适应族创建矩形无缝曲面幕墙嵌板 1.用公制概念体量,绘制曲面幕墙 生成实体后点击分格表面调整V网格为15(可根据自己需求调整) 2.新建一个基于公制幕墙嵌板填充图案,创建实体形状 载入到项目中 ...

  3. File类创建删除功能的方法

    package com.learn.demo01.File;import java.io.File; import java.io.IOException;/*File类创建删除功能的方法- publ ...

  4. 如何使用Bootstrap Modal和jQuery AJAX创建登录功能

    by Yogi 由瑜伽士 Bootstrap Modal is an excellent way to create a Login form on your website. In this tut ...

  5. 阿里云服务器创建历史功能介绍 快速创建云服务器

    当我们登录阿里云控制台创建云服务器的时候,通常的做法是先登录阿里云服务器购买界面,再配置计费方式.网络类型.实例规格.带宽.镜像等一系列云服务器参数,最后创建云服务器.如果我们在配置参数的过程中出现误 ...

  6. VSPD  7.0  虚拟串口创建不成功能,  修复步骤:

    VSPD  7.0  虚拟串口创建不成功能,  修复步骤: 原因:   创建后,因为蓝屏或其他原未正常退出后,就会无法再次创建虚拟串口了: 解决方法: 1.先下载:PSTools\psExec.exe ...

  7. python根据输入的长和宽创建矩形

    文章目录 要求 for循环 while循环 要求 使用 # 号输出一个矩形,用户可以指定宽和高 for循环 length = input("请输入要创建矩形的长度:") width ...

  8. oracle中触发器的创建,Oracle触发器创建及其功能

    Oracle触发器创建及其功能 下面的文章主要介绍的是如何创建Oracle触发器,同时介绍了Oracle触发器的功能.语法,而且通过具体的例子可以让大家更深入的`掌握. 1.创建表t1 :create ...

  9. ROS2入门教程—创建ROS2功能包(C++版)

    ROS2入门教程-创建ROS2功能包(C++版) 1 ROS2中的功能包 2 创建功能包 3 编译功能包 4 设置环境变量 5 运行功能包 6 功能包中的内容 7 修改package.xml文件    ...

  10. 10天手敲一个SpringBoot网上商城项目(九)—— 确认订单、创建订单功能的实现及AOP

    静态资源及sql文件分享 链接:https://pan.baidu.com/s/1X-yjmQcPD3PqS21x0HplNA?pwd=23gr 提取码:23gr 文章目录 确认订单 1.确认订单-持 ...

最新文章

  1. SQL compute by 的使用
  2. 保证java的jar包在后台运行
  3. 字节流读数据(一次读一个字节数据)
  4. 小汤学编程之JAVA基础day09——常用类(一):比较器、内部类和包装类
  5. 7-102 单词首字母大写 (15 分)
  6. error C2662
  7. 本地算术验证码识别教程
  8. Enterprise Library 3.1 简化使用范例一
  9. 关于抓包软件Fiddler的简单汉化
  10. SQL Server 2014各版本区别
  11. IAR的基本使用教程
  12. 如何前后端分离的架构中使用Shiro框架
  13. cf鼠标宏数据大全_两只“轻量、不打孔、右手工学”鼠标,DX30E和魔幻豹ULTRA
  14. 北斗高精度定位在民航机场的创新应用
  15. 【UE编辑器怎么添加新的语法高亮】
  16. 【2021年度总结】积跬步,「卷」千里,2022 继续「卷」
  17. matlab 对数回归,matlab的对数回归
  18. c语言next函数定义,c语言的数据结构中,next是如何指向下一个元素的?
  19. 我亦无他,唯手熟尔:Verilog基本语法目录
  20. latex文字加粗、斜体

热门文章

  1. BIOS int 10H中断介绍
  2. 编程语言常见符号集合分享,赶快收藏
  3. 2019年python爬虫-我破解了中文裁判网数据挖掘-反爬技术哪些事情
  4. 谷歌或Edge浏览器在开始菜单页面不显示图标
  5. 什么是像素格式(色彩采样、色度抽样)RGB 4:4:4、(Limit)RGB 4:4:4、Ycbcr 4:4:4、Ycbcr 4:2:2、Ycbcr 4:2:0又是什么?
  6. 将Windows10中的C盘desktop移到D盘
  7. 最短路径系列【最短路径、哈密顿路等】
  8. 关于VS2017配置OpenCV出现无法打开文件“opencv_ml249d.lib”的解决方案
  9. Exception in thread “main“ java.lang.ArithmeticException: / by zero
  10. 输出200以内所有素数(python)