zoukankan      html  css  js  c++  java
  • 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;
    }
    
  • 相关阅读:
    Authentication with SignalR and OAuth Bearer Token
    [Web API] 如何让 Web API 统一回传格式以及例外处理[转]
    EF6 Database First (DbContext)
    DbContext运行时动态附加上一个dbset
    命令模式
    责任链模式
    策略模式
    Sql Server isnull() 用法
    状态者模式
    dom元素改变监听
  • 原文地址:https://www.cnblogs.com/swtool/p/3815776.html
Copyright © 2011-2022 走看看