ObjectARX中三维多段线转二维多段线的方法

Acad::ErrorStatus
AcDb3dPolylineToAcDb2dPolyline(AcDbObjectId objId, int flag /* =0 */)
{

	Acad::ErrorStatus es;
	AcDbEntity *pEnt = NULL;
	double elev = 0.0;
	es = acdbOpenObject(pEnt, objId, AcDb::kForWrite);
	int i = 0;
	if (pEnt->isKindOf(AcDb3dPolyline::desc()))
	{
		AcDb2dPolyline *pNewline = new AcDb2dPolyline();
		AcDb3dPolyline *pPline = AcDb3dPolyline::cast(pEnt);
		AcDbObjectIterator *pItr = pPline->vertexIterator();

		for (pItr->start(); !pItr->done(); pItr->step())
		{
			AcDb3dPolylineVertex *pVertex = NULL;
			AcDbObjectId vId = pItr->objectId();
			acdbOpenObject(pVertex, vId, AcDb::kForRead);
			AcDb::Vertex3dType verType = pVertex->vertexType();
			if (verType != AcDb::k3dControlVertex)
			{
				i++;
				AcDb2dVertex *p2dVertex = new AcDb2dVertex(pVertex->position());
				p2dVertex->setXData(pVertex->xData());
				pNewline->appendVertex(p2dVertex);
				p2dVertex->close();
			}
			if (flag == 1)
			{
				elev += pVertex->position().z;
			}

			pVertex->close();
		}
		delete pItr;
		pItr = 0;
		double eleva = elev / i;

		pNewline->setElevation(eleva);
		pNewline->setPropertiesFrom(pPline);
		if (pPline->isClosed())
		{
			pNewline->makeClosed();
		}
		pNewline->setXData(pPline->xData());
		m_DbUtil.PostToModelSpace(pNewline);
		pPline->erase();

	}
	pEnt->close();

	return es;
}

  

原文地址:https://www.cnblogs.com/laoxuGiser/p/8960650.html

时间: 2024-11-09 03:40:38

ObjectARX中三维多段线转二维多段线的方法的相关文章

在angular中结合使用jquery的生成二维码插件

最近在开发项目中,需要在ionic框架中使用到jquery的生成二维码功能的插件,起初我直接在templates中写js代码: 发现这段代码根本就不会执行,原因是js代码必须要在该模块的作用域范围内才能生效,于是把这段代码该模块对应的controller中即可: 在学习angular中永远不要忘记作用域这件事.哈哈,看来学习编程的过程中有时需要抛开传统的思维方式才行啊.虽然只是一个小小的问题,但对于初学angular的我还是纠结了好一阵.

Java读取excel指定sheet中的各行数据,存入二维数组,包括首行,并打印

1. 读取 //读取excel指定sheet中的各行数据,存入二维数组,包括首行 public static String[][] getSheetData(XSSFSheet sheet) throws IOException { String[][] testArray = new String[sheet.getPhysicalNumberOfRows()][]; for(int rowId =0;rowId<sheet.getPhysicalNumberOfRows();rowId++)

在vue中利用vue-qr插件动态生成二维码并嵌入LOGO

收到需求要生成二维码的时候刚进项目组不久,接触vue也才一两个星期,还处于懵逼状态. 本小白的第一反应就是百度二维码的生成方法,网上有很多大神给出解决方案,最开始本小白以为是在后台生成图片然后传到前台页面,后来发现可以直接在前端用js生成,网上查到的大部分都是用jquery.qrcode.js配合utf.js(为了支持中文)和jquery-1.8.0.js来实现,亲测可行(但本白只在原生HTML中实现,vue中死活报错:"找不到qrcode方法",是不是本小白没找准姿势,哪位大神求告知

C# 链表去重 List 一维 二维 分别使用 Distinct() GroupBy() 方法

分别使用过List中Distinct(),GroupBy()实现链表的去重. 1.先上效果: 一维链表中分别有元素"aa","bb",'aa','aa',"cc",使用Distinct()方法后输出 aa,bb,cc 二维链表中类型为ClassA类型,其中对象的属性A分别为1,1,2,3,1,使用GroupBy()方法实则是分类,输出Key值分别为1,2,3. 2.上代码,类ClassA 1 class ClassA 2 { 3 private

PHP生成带logo图像二维码的两种方法

本文主要和大家分享PHP生成带logo图像二维码的两种方法,主要以文字和代码的形式和大家分享,希望能帮助到大家. 一.利用Google API生成二维码Google提供了较为完善的二维码生成接口,调用API接口很简单,以下是调用代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 $urlToEncode="http://www.php.cn"; generateQRfromGoogle($urlToEncode); /**

二维码生成及读取方法

二维码的制作主要是引用第三方的程序集ThoughtWorks.QRCode.dll,调用QRCodeEncoder的Encode方法得到一个Bitmap图:相反,解析二维码就是用的Decode方法. 如下示例生成二维码的方法: /// <summary> /// 生成不带logo的二维码图片 /// </summary> /// <param name="data">要生成二维码的字符串</param> /// <returns&g

直观理解C语言中指向一位数组与二维数组的指针

一维数组和指针: 对于一位数组和指针是很好理解的: 一维数组名: 对于这样的一维数组:int a[5];  a作为数组名就是我们数组的首地址, a是一个地址常量 . 首先说说常量和变量的关系, 对于变量来说, 用箱子去比喻再好不过了, 声明一个变量就声明一个箱子,比如我们开辟出一个苹果类型的箱子, 给这个变量赋值就是把盛放苹果的箱子中放入一个实实在在的苹果, 这就是变量的赋值.  而对于数组来说, 就是一组类型相同的箱子中,一组苹果箱子, 可以放入不同的苹果. 一维数组空间: 变量被声明后, 我

条码打印软件中如何制作彩色渐变的二维码

我们常见的二维码一般都是黑白色的,这是为什么呢?我们都知道,计算机底层设计中是用二进制"1"和"0"来存储数据的,而二维码也正是用黑白矩形表示数据的,对应关系就是黑色为1,白色为0,这样,二维码看似无规则的黑白配,其实都是根据后面的数据转成二进制,然后对应黑白颜色有规律的排列的.加上黑白色对比更强烈,也更容易扫描读取,所以一般二维码设计都会设计成黑白色.但有时我们需要把二维码设计的更炫酷,更加吸人眼球一些,于是,很多朋友就会想着把二维码做成彩色的.这个在新版中琅条码

如何在条码标签打印软件中导入数据库并做出彩色二维码

我们现在看到的二维码大部分都是黑白相间的,但是二维码也是有彩色的,那么彩色二维码是怎么做出来的呢,如果有txt的数据文件,如何实现导入数据库生成可变的彩色二维码,接下来我们就在我们的中琅条码标签软件中为大家演示一下.1.新建标签打开条码标签打印软件,出现一个文档设置文本框,点击新建,我们可以在这里设置纸张上要打印的标签的行数和列数,以及标签尺寸.2.导入数据库在中琅条码打印软件左上角,选择"文件-数据库设置",弹出的数据库设置窗口中,点击添加-选择TXT文本数据源,出现一个文本数据源管