public:

// - ArxProject2.partLine command (do not rename)

static void ArxProject2partLine(void)

{

// Add your code for command ArxProject2.partLine here

ads_name entName;

ads_point pt;

acedEntSel( _T("\n选择:"),entName,pt);//得到选中的实体

AcDbObjectId ObjId;//得到实体ID

if( acdbGetObjectId(ObjId,entName) != Acad::eOk )//如果没有选中的实体则返回

{

acutPrintf( _T("\nno"));

return;

}

AcDbEntity* pEnt;//得到实体

if( acdbOpenObject(pEnt,ObjId,AcDb::kForRead) == Acad::eOk)

{

acutPrintf( _T("\nok"));

AcDbLine* pLine = (AcDbLine* )pEnt;//强制转换

AcGePoint3d ptStart = pLine->startPoint();//得到起点

AcGePoint3d ptEnd = pLine->endPoint();

pEnt->close();

//根据点和线的方向生成点组,绘制线段

int nPart = 5;//五等分

AcGeVector3d Vect = (ptEnd - ptStart)/nPart;//矩阵,点与点的差集平分可得到

for (int n=0; n

{

AcDbObjectId ObjIdNew;

MakeLine(ptStart+n*Vect,ptStart+(n+1)*Vect,ObjIdNew);//等分线段的方法

}

//将选中的线段删除,

if( acdbOpenObject(pEnt,ObjId,AcDb::kForWrite) == Acad::eOk )

{

pEnt->erase();

pEnt->close();

}

}

}

//将实体添加到数据库

//cad中的实体最终都要添加到数据库中才能被显示(图纸其实是一个数据库格式的),所以它的作用就是添加实体到数据库中

static Acad::ErrorStatus AddToDb(AcDbEntity* ent, AcDbObjectId& objId)

{

Acad::ErrorStatus      es;

AcDbBlockTable*        pBlockTable;

AcDbBlockTableRecord*  pSpaceRecord;

if ((es = acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable, AcDb::kForRead))

!= Acad::eOk) {

return es;

}

if ((es = pBlockTable->getAt(ACDB_MODEL_SPACE,

pSpaceRecord,

AcDb::kForWrite)) != Acad::eOk) {

return es;

}

if ((es = pBlockTable->close()) != Acad::eOk) {

return es;

}

if ((es = pSpaceRecord->appendAcDbEntity(objId, ent)) != Acad::eOk) {

return es;

}

return pSpaceRecord->close();

}

private://画线函数

static void MakeLine(AcGePoint3d ptStart,AcGePoint3d ptEnd,AcDbObjectId lineId)

{

AcDbLine *pLine = new AcDbLine(ptStart,ptEnd);

if(AddToDb(pLine,lineId)!=Acad::eOk)//传入指针,传出id

AfxMessageBox( _T("加入实体到数据库失败!"));

pLine->close();

}

lisp求面与面的差集_AcGeVector3d是点阵的集合,通过等分点的差集得到。 新的点可以通过点与点阵相差得......相关推荐

  1. lisp求面与面的差集_Lisp 入门

    Lisp 入门 LISP 是 LISt Processor 的缩写,是"列表处理语言"意思. Lisp语言最初是由美国的 John McCarthy 在 1958 年提出来的,是最 ...

  2. lisp求面与面的差集_cad里经差集后的两个物体怎样单个移动

    CAD快捷键一览 创建三维阵列 3A 创建三维面 3F 在三维空间创建由直线段组成的多段线 3P 在二维和三维空间中将某对象与其他对象对齐 AL 加载 AutoLISP.ADS 和 ARX 应用程序 ...

  3. 求差集(C语言)两个集合的差集定义如下:集合A、B的差集,由所有属于A但不属于B的元素构成。输入两个集合A、B,每个集合中元素都是自然数。求集合A、B的差集。

    [问题描述] 两个集合的差集定义如下: 集合A.B的差集,由所有属于A但不属于B的元素构成. 输入两个集合A.B,每个集合中元素都是自然数.求集合A.B的差集. [输入形式] 从标准输入先输入集合元素 ...

  4. 求解集合A与B的差集

    已知集合A和B的元素分别用不含头结点的单链表存储,函数difference( )用于求解集合A与B的差集,并将结果保存在集合A的单链表中.例如,若集合A={5,10,20,15,25,30},集合B= ...

  5. ①编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。②集合A、B的差集③对分行输入的若干字符串按字典序(由小到大)进行排序并输出。

    文章目录 ①编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符 ②集合A.B的差集 ③对分行输入的若干字符串按字典序(由小到大)进行排序并输出. ①编写一个程序,从 ...

  6. python两个集合的交集 合集 差集

    python两个集合的交集 合集 差集 https://blog.csdn.net/qq_17753903/article/details/84899612 python & | and or ...

  7. Java中求集合交集、并集、差集

    前言 如果是自定义类,需要重写equals方法,如果使用Set集合,还需要重写hashCode方法:如下以User为例子: public class User{private Integer id;p ...

  8. OGR示例:写shp,求面与面的交和差操作

    编译命令:g++ main.cpp -lgdal 调用命令:./a.out  输出shp名称 操作选项 注释:操作选项(1:多边形A - 多边形B,2:B - A,3:A和B的交集部分) #inclu ...

  9. python众数问题给定含有n个元素的多重集合s_分治法求众数 给定含有n个元素的多重集合S 联合开发网 - pudn.com...

    分治法求众数 所属分类:数据结构 开发工具:C/C++ 文件大小:240KB 下载次数:3 上传日期:2018-01-04 20:19:09 上 传 者:九鼎 说明:  给定含有n个元素的多重集合S, ...

最新文章

  1. SQLSERVER 分页
  2. Flash Builder 4.7 安装
  3. 企业应用开发平台-GAP平台
  4. atitit.Sealink2000国际海运信息管理系统
  5. MATLAB实战系列(三十七)-MATLAB基于PQ解耦风电场并网潮流计算
  6. 函数式编程filter函数,list()表示列表显示值
  7. Apollo进阶课程㉑丨Apollo规划技术详解——Basic Motion Planning and Overview
  8. Java笔记-JDK搭建WebService客户端其他调用方法
  9. Chrome 将不再允许 https:// 页面加载 HTTP 资源
  10. ASP.net用法系列:如何从基类调用LINQ/EF类的属性
  11. 计算机过程控制系统教材,过程控制系统——高等院校教材
  12. click option/argument参数详解(click.option()和click.argument())
  13. 【贵州i茅台周年答题--答案】
  14. Android添加UserAgent
  15. 第五章--设备内容(The Device Context)(2)
  16. 如何批量将多个 PPT 文档中的图片提取出来
  17. 浏览器兼容性笔记(转)
  18. three.js开发全景视频播放器的现实方法
  19. 12、go语言的duck typing
  20. unity3D摄像机跟随

热门文章

  1. OpenCASCADE:Foundation Classes库组织
  2. wxWidgets:wxWizardEvent类用法
  3. wxWidgets:wxFileCtrl类用法
  4. boost::range_category和boost::iterator_category相关的测试程序
  5. boost::math::chebyshev_transform用法的测试程序
  6. boost::intrusive::pointer_traits用法的测试程序
  7. boost::icl::interval_map用法的测试程序
  8. boost::breadth_first_search用法的测试程序
  9. GDCM:gdcm::Testing的测试程序
  10. Boost::context模块callcc的回声测试程序