ObjectARX2010 学习笔记004:复制多段线点生成新多段线

static void swtArxProject5plcopy(void)
    {
        // Add your code for command swtArxProject5.plcopy here
        //定义对象名和点
        ads_name ename;ads_point pt;
        //如果没有选择到实体
        if(acedEntSel(NULL,ename,pt)!=RTNORM)
        {
            return;
        }
        //定义并获取ID
        AcDbObjectId id;
        acdbGetObjectId(id,ename);
        //定义并获取实体
        AcDbEntity *pEnt;
        acdbOpenObject(pEnt,id,AcDb::kForRead);
        //定义点集
        AcGePoint2dArray pts;
        //判断是否是多段线
        if(pEnt->isKindOf(AcDbPolyline::desc()))
        {
            //如果是,定义多段线
            AcDbPolyline *pPline=AcDbPolyline::cast(pEnt);
            //点数量
            int num=pPline->numVerts();
            //在点中循环
            for (int i=0;i<num;i++)
            {
                AcGePoint2d pt;
                //取得每个点
                pPline->getPointAt(i,pt);
                //将点加入到点集
                pts.append(pt);
            }
            pPline->close();
        }
        //关闭实体
        pEnt->close();
        //创建多段线
        CreatePolyline(pts,1.0);
    }
AcDbObjectId CreatePolyline(AcGePoint2dArray pts,double width)
{
	int numVertex =pts.length();
	AcDbPolyline *pPoly=new AcDbPolyline(numVertex);
	for (int i=0;i<numVertex;i++)
	{
		pPoly->addVertexAt(i,pts.at(i),0,width,width);
	}
	AcDbObjectId polyId;
	pPoly->setColorIndex(1);
	polyId=PostToModelSpace(pPoly);
	pPoly->close();
	return polyId;
}

ObjectARX2010 学习笔记004:复制多段线点生成新多段线,布布扣,bubuko.com

时间: 2024-10-10 00:42:34

ObjectARX2010 学习笔记004:复制多段线点生成新多段线的相关文章

ObjectARX2010 学习笔记001:在新数据库中创建直线并将此数据库保存成DWG文件

static void swtArxProject5createLine(void) { // Add your code for command swtArxProject5.createLine here //创建新的CAD数据库 AcDbDatabase *pDb=new AcDbDatabase(); //定义块表指针 AcDbBlockTable *pBlkTbl; //获取块表 pDb->getSymbolTable(pBlkTbl,AcDb::kForRead); //定义块表记录

ObjectARX2010 学习笔记003:增加实体到数据库

AcDbObjectId PostToModelSpace(AcDbEntity *pEnt) { //定义块表 AcDbBlockTable *pBlk; acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlk,AcDb::kForRead); //定义块表记录 AcDbBlockTableRecord *pBlkTblRcd; pBlk->getAt(ACDB_MODEL_SPACE,pBlkTblR

quick-cocos2d-x学习笔记【2】——项目结构分析、创建新场景

创建完一个新项目之后,我们可以简单的看一看这个项目的文件组成,有这么一个文件层次结构 几个proj.*文件夹就不用说了,是对应的平台的解决方案,res专门存放我们的游戏资源,scripts存放我们的lua代码,sources中有我们熟悉的AppDelegate类,我们主要常用的就两个文件夹,res和scripts(我这不是废话吗) 好吧,还是再打开scripts文件夹看下, 该文件下有main.lua,它是程序lua脚本的启动文件 function __G__TRACKBACK__(errorM

Verilog学习笔记基本语法篇(七)&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183; 生成块

生成块可以动态的生成Verilog代码.可以用于对矢量中的多个位进行重复操作.多个模块的实例引用的重复操作.根据参数确定程序中是否包含某段代码.生成语句可以控制变量的声明.任务和函数的调用.还能对实例引用进行全面的控制.在编程时,应用关键字generate_endgenerate来说明生成的实例范围. 生成实例可以是一下的以下一种或多种类型: 1)模块 :  2)用户定语原语 : 3)门级原语 :  4)连续赋值语句:   5)initial 和 always 块. 生成实例中语序的数据类型:

MySQL学习笔记11复制错误处理(二)删除不存在的行的问题

(1)问题情况 在master上删除某个数据表的某一行,而该行在slave上并不存在,则slave上的复制过程会出错. MySQL的log文件中发现如下错误信息: 2017-08-15T04:52:19.529509Z 13 [ERROR] Slave SQL for channel '': Could not execute Delete_rows event on table test.test; Can't find record in 'test', Error_code: 1032;

Nodejs学习笔记之复制文件

前端童鞋都知道,javascript是没有权限操作磁盘文件的,server童鞋一向都很鄙视.但是nodejs可谓让咱们前端扬眉吐气啊,最近在学node,其强大的功能让人异常激动和兴奋.今天就学习了它怎么读写文件. 首先需要引入fs模块,这是nodejs自带的. var fs=require("fs"); 具体可参考Nodejs API:http://www.w3cfuns.com/tools.php?mod=booknodejs 主要用到了两个方法: 1.fs.readFile(fil

MySQL学习笔记10复制错误处理(一)表已存在的问题

(1)错误情况 在slave上已经有数据表test,而master上并没有这张表,现在在master上新建test表,则slave上的复制过程会出错. MySQL的log记录中相关信息如下: 2017-08-15T04:24:30.337730Z 11 [ERROR] Slave SQL for channel '': Error 'Table 'test' already exists' on query. Default database: 'test'. Query: 'create ta

C语言学习笔记 (004) - 数组名和数组首地址(转)

一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址.指针变量既然可以指向变量,当然也可以指向数组和数组元素(把数据起始地址或某一元素的地址放到一个指针变量中).所谓数组的指针是指数组的起始地址,数组元素的指针数组元素的地址. 这种指针变量的定义与以前介绍的指向变量的指针变量相同.应当注意,如果数组为int型,则指针变量亦应指向int型. C语言规定数组名代表数组的首地址,也就是第一个元素的地址.因此,下面两个语句等价: p=&a[0]: p=a: 注意数

ios开发学习笔记004

进制 二进制   0 1组成,封2进1 八进制 0-7组成,封8进1 十进制 0-9组成,封10进1 十六进制 0-15组成,封16进1 printf以不同进制形式进行输出 变量的内存地址形式 变量在内存中是从高地址到低地址依次保存的,并且只保存二进制 查看内存地址的两种方式:%x和%p 各个类型变量的取值范围 类型修饰符 在64bit编译器环境下, int占用4个字节(32bit),取值范围是-231~231-1: short占用2个字节(16bit),取值范围是-215~215-1: lon