文档章节

ObjectARX模仿AutoCAD中多段线命令实现颜色,线型,闭合等

一个小妞
 一个小妞
发布于 2016/10/28 11:52
字数 902
阅读 383
收藏 1

首先在acrxEntryPoint.cpp中注册一个命令:

IMPLEMENT_ARX_ENTRYPOINT(CARX_CreatePolylineApp)
ACED_ARXCOMMAND_ENTRY_AUTO(CARX_CreatePolylineApp, HH, AddPoly, AddPoly, ACRX_CMD_TRANSPARENT, NULL)

该命令的具体实现如下:

static void HHAddPoly(void)
	{
		int nColorIndex = 0; // 颜色索引值
		ads_real width = 0;  // 多段线的线宽
		int nIndex = 2;  // 当前输入点的次数
		ads_point ptStart; // 起点
		ads_point ptPrevious;// 前一个参考点
		ads_point ptCurrent; //当前拾取的点
		AcDbObjectId polyId; //多段线ID
	
		// 提示用户输入起点
		if (RTNORM != acedGetPoint(NULL, _T("\n输入第一点:"), ptStart))
		{
			return ;
		}
		
		// 输入第二点
		acedInitGet(NULL, _T("W C B F"));
		int rc = acedGetPoint(ptStart,_T("\n输入下一点 [宽度(W)/颜色(C)/闭合(B)]<完成(F)>:"), ptCurrent);
		while (RTNORM == rc || RTKWORD == rc)
		{
			if (RTKWORD == rc) // 如果用户输入了关键字
			{
				ACHAR keyWord[20];// 关键字
				//获取输入的关键字
				if (RTNORM != acedGetInput(keyWord))
				{
					return;
				}

				if (0 == _tcscmp(keyWord, _T("W")))
				{
					width = CAuxiliary::GetWidth();
					AcDbPolyline *pPoly = CAuxiliary::GetPolyLine(polyId);
					if (NULL == pPoly)
					{
						return;
					}
					pPoly->setConstantWidth(width);
					pPoly->close();
				}
				else if (0 == _tcscmp(keyWord, _T("C")))
				{
					nColorIndex = CAuxiliary::GetColorIndex();
					AcDbPolyline *pPoly = CAuxiliary::GetPolyLine(polyId);
					if (NULL == pPoly)
					{
						return;
					}
					pPoly->setColorIndex(nColorIndex);
					pPoly->close();
					
				}
				else if (0 == _tcscmp(keyWord, _T("B")))
				{
					if (nIndex < 3)
					{
						acutPrintf(_T("\n输入点个数不足,不能执行闭合操作"));
						return;
					}

					AcDbPolyline *pPoly = CAuxiliary::GetPolyLine(polyId);
					if (NULL == pPoly)
					{
						return;
					}
					pPoly->setClosed(Adesk::kTrue);
					pPoly->close();
					return;
				}
				else if (0 == _tcscmp(keyWord, _T("F")))
				{
					return;
				}
				else
				{
					acutPrintf(_T("\n无效的关键字."));
				}
			}
			else if (RTNORM == rc)  // 用户输入了点
			{
				acutPrintf(_T("\n输入点的坐标是(%.2f, %.2f, %.2f)"), ptCurrent[X], ptCurrent[Y], ptCurrent[Z]);
				
				if (2 == nIndex)
				{
					// 创建多段线
					polyId = CAuxiliary::CreatePolyline(ptStart, ptCurrent, width, nColorIndex);
				}
				else if (nIndex > 2)
				{
					//修改多段线
					CAuxiliary::AddPolyline(polyId, ptCurrent,nIndex, width, nColorIndex);
				}	

				++nIndex;
				acdbPointSet(ptCurrent, ptPrevious);//acdbPointSet宏: ads_point 变量值的复制
			}

			// 提示用户输入新的节点
			acedInitGet(NULL, _T("W C B F"));
			rc = acedGetPoint(ptPrevious, _T("\n输入下一点 [宽度(W)/颜色(C)/闭合(B)]<完成(F)>:"), ptCurrent);
		 }
	}

其中调用了一些函数,新建一个类CAuxiliary,具体实现如下:

***********************Auxiliary.h********************


#pragma once

class CAuxiliary
{
public:
	CAuxiliary(void);
	~CAuxiliary(void);

	//图形数据库
	static bool PostToModelSpace(AcDbEntity* pEnt, AcDbObjectId &entId);

	//通过ID获取对象
	static AcDbPolyline * GetPolyLine(AcDbObjectId polyId);

	//创建仅包含一条直线的多段线
	static AcDbObjectId CreatePolyline(ads_point ptStart, ads_point ptEnd, double width, int nColorIndex);

	//添加一条直线到多段线
	static void AddPolyline(AcDbObjectId polyId, ads_point ptCurrent,int nIndex, double width, int nColorIndex);
	
	//获取用户输入的线宽
	static ads_real GetWidth();

	//提示用户输入颜色索引值
	static int GetColorIndex();
};

 

***********************Auxiliary.cpp********************


#include "StdAfx.h"
#include "Auxiliary.h"
#include <atlstr.h>
#include <tchar.h>

CAuxiliary::CAuxiliary(void)
{
}

CAuxiliary::~CAuxiliary(void)
{
}

bool CAuxiliary::PostToModelSpace(AcDbEntity* pEnt, AcDbObjectId &entId)
{
	if (NULL == pEnt)
	{
		return false;
	}
	// 获得指向块表的指针
	AcDbBlockTable *pBlockTable = NULL;
	//workingDatabase()能够获得一个指向当前活动的图形数据库的指针,
	acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable, AcDb::kForRead);
	if (NULL == pBlockTable)
	{
		return false;
	}

	// 获得指向特定的块表记录(模型空间)的指针
	AcDbBlockTableRecord *pBlockTableRecord = NULL;
	pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,AcDb::kForWrite);
	if (NULL == pBlockTableRecord)
	{
		return false;
	}

	// 将AcDbLine类的对象添加到块表记录中
	pBlockTableRecord->appendAcDbEntity(entId, pEnt); 

	// 关闭图形数据库的各种对象
	pBlockTable->close();
	pBlockTableRecord->close();
	pEnt->close(); 

	return true;
}

AcDbPolyline * CAuxiliary::GetPolyLine(AcDbObjectId polyId)
{
	AcDbPolyline * pPoly(NULL);
	if (Acad::eOk != acdbOpenObject(pPoly, polyId, AcDb::kForWrite))
	{
		return NULL;
	}
	return pPoly;
}

AcDbObjectId CAuxiliary::CreatePolyline(ads_point ptStart, ads_point ptCurrent, double width,int nColorIndex)
{
	AcDbPolyline *pPoly = new AcDbPolyline;

	AcGePoint2d ptInsert = asPnt2d(ptStart);
	AcGePoint2d ptInsert1 = asPnt2d(ptCurrent);

	pPoly->addVertexAt(0, ptInsert, nColorIndex, width, width);
	pPoly->addVertexAt(1, ptInsert1, nColorIndex, width, width);

	AcDbObjectId polyId;
	if (!CAuxiliary::PostToModelSpace(pPoly, polyId))
	{
		acutPrintf(_T("\n加入图形数据库失败"));
		return NULL;
	}
	return polyId;
}

void CAuxiliary::AddPolyline(AcDbObjectId polyId, ads_point ptCurrent,int nIndex, double width, int nColorIndex)
{
	AcDbPolyline *pPoly = GetPolyLine(polyId);
	if (NULL == pPoly)
	{
		return;
	}
	AcGePoint2d ptInsert = asPnt2d(ptCurrent);
	pPoly->addVertexAt(nIndex - 1, ptInsert, nColorIndex, width, width);	
	pPoly->close();
}
ads_real CAuxiliary::GetWidth()
{
	ads_real width = 0;
	if (RTNORM == acedGetReal(_T("\n输入线宽:"), &width))
	{
		return width;
	}
	else
	{
		return 0;
	}
}

int CAuxiliary::GetColorIndex()
{
	int nColorIndex = 0;
	if (RTNORM != acedGetInt(_T("\n输入颜色索引值(0~256):"), &nColorIndex))
	{
		return 0;
	}

	// 处理颜色索引值无效的情况
	while (nColorIndex < 0 || nColorIndex > 256)
	{
		acedPrompt(_T("\n输入了无效的颜色索引."));
		if (RTNORM != acedGetInt(_T("\n输入颜色索引值(0~256):"), &nColorIndex))
		{
			return 0;
		}
	}

	return nColorIndex;
}

 

© 著作权归作者所有

一个小妞
粉丝 53
博文 187
码字总数 132764
作品 0
海淀
程序员
私信 提问
加载中

评论(10)

D
DeBerg

引用来自“DeBerg”的评论

你的這篇文章對我幫助很大。我按你的方法建了一個3d polyline的entity。我現在想做一個更進一步的3d polyline,用我自己定義的點,而不是pt3d。因為你上邊這個方法其實是調用ACADuto的內建函數,不能用我自定義的點,而3d polyline又不能繼承。要繼承curve來重建3d polyline的方法看來工作量太大。不知道你有沒有什麼好方法。我自定義的點其實就是繼承pt3d然後在裏面加了一個integer做點的標記(tag)。

引用来自“一个小妞”的评论

我没有明白你的意思,你是想要彻底脱离AutoCAD,用c++做一个3d polyline?还是因为点的问题,无法实现自定义点和CAD点的互相转换?

引用来自“DeBerg”的评论

还是AutoCAD ObjextARX. 是因为点的问题, 无法实现自定义点和CAD点的互相转换. 不能調用AutoCAD 3d polyline的內建函數. ObjectARX 有一个polysamp的例子. 里面几乎重建了所有需要的方法. 对我来说工作量是一方面, 然后复杂度是另一个问题,因为3d polyline是一种复杂entity和普通entity还不太一样.

引用来自“一个小妞”的评论

1.自定义点和cad点的互相转换应该是很容易的,可以实现
2.不允许使用cad,彻底脱离,可以参考应该VS的例子DrawCli,里面简单提供了用c++的直线,矩形,椭圆等的绘制
3.允许使用cad,只是你链接的库没有弄好,导致无法调用arx中提供的函数,我也可以帮你弄好
4.之定义实体需要重载的函数,网上例子较多,getGripPoints和getOsnapPoints,我最近也在搞,可以互相讨论,互相学习
方便留下联系方式么?或许我看一下你的代码,能更好的定位问题,帮助你解决问题.

引用来自“DeBerg”的评论

没积分不能私信. :(
My email is: yaning.wang(at)hotmail.com

引用来自“一个小妞”的评论

那个码云的链接,我需要注册账号,才能下载代码
我没有用过网上代码托管的网站
我有试着给你发邮件,但是一直提示那是一个无效的地址
你是台湾人么?你不用刻意把字翻译成简体,我有一个台湾的网友,聊天很多年,所以我可以看懂繁体字
你有把(at)换成@吗?我不是台湾的,只是我的机器是英文系统,我用网上的输入法打的字。下次我用手机好了。那个码云可以用oschina的账号登录的。
一个小妞
一个小妞

引用来自“DeBerg”的评论

你的這篇文章對我幫助很大。我按你的方法建了一個3d polyline的entity。我現在想做一個更進一步的3d polyline,用我自己定義的點,而不是pt3d。因為你上邊這個方法其實是調用ACADuto的內建函數,不能用我自定義的點,而3d polyline又不能繼承。要繼承curve來重建3d polyline的方法看來工作量太大。不知道你有沒有什麼好方法。我自定義的點其實就是繼承pt3d然後在裏面加了一個integer做點的標記(tag)。

引用来自“一个小妞”的评论

我没有明白你的意思,你是想要彻底脱离AutoCAD,用c++做一个3d polyline?还是因为点的问题,无法实现自定义点和CAD点的互相转换?

引用来自“DeBerg”的评论

还是AutoCAD ObjextARX. 是因为点的问题, 无法实现自定义点和CAD点的互相转换. 不能調用AutoCAD 3d polyline的內建函數. ObjectARX 有一个polysamp的例子. 里面几乎重建了所有需要的方法. 对我来说工作量是一方面, 然后复杂度是另一个问题,因为3d polyline是一种复杂entity和普通entity还不太一样.

引用来自“一个小妞”的评论

1.自定义点和cad点的互相转换应该是很容易的,可以实现
2.不允许使用cad,彻底脱离,可以参考应该VS的例子DrawCli,里面简单提供了用c++的直线,矩形,椭圆等的绘制
3.允许使用cad,只是你链接的库没有弄好,导致无法调用arx中提供的函数,我也可以帮你弄好
4.之定义实体需要重载的函数,网上例子较多,getGripPoints和getOsnapPoints,我最近也在搞,可以互相讨论,互相学习
方便留下联系方式么?或许我看一下你的代码,能更好的定位问题,帮助你解决问题.

引用来自“DeBerg”的评论

没积分不能私信. :(
My email is: yaning.wang(at)hotmail.com
那个码云的链接,我需要注册账号,才能下载代码
我没有用过网上代码托管的网站
我有试着给你发邮件,但是一直提示那是一个无效的地址
你是台湾人么?你不用刻意把字翻译成简体,我有一个台湾的网友,聊天很多年,所以我可以看懂繁体字
D
DeBerg

引用来自“DeBerg”的评论

你的這篇文章對我幫助很大。我按你的方法建了一個3d polyline的entity。我現在想做一個更進一步的3d polyline,用我自己定義的點,而不是pt3d。因為你上邊這個方法其實是調用ACADuto的內建函數,不能用我自定義的點,而3d polyline又不能繼承。要繼承curve來重建3d polyline的方法看來工作量太大。不知道你有沒有什麼好方法。我自定義的點其實就是繼承pt3d然後在裏面加了一個integer做點的標記(tag)。

引用来自“一个小妞”的评论

我没有明白你的意思,你是想要彻底脱离AutoCAD,用c++做一个3d polyline?还是因为点的问题,无法实现自定义点和CAD点的互相转换?

引用来自“DeBerg”的评论

还是AutoCAD ObjextARX. 是因为点的问题, 无法实现自定义点和CAD点的互相转换. 不能調用AutoCAD 3d polyline的內建函數. ObjectARX 有一个polysamp的例子. 里面几乎重建了所有需要的方法. 对我来说工作量是一方面, 然后复杂度是另一个问题,因为3d polyline是一种复杂entity和普通entity还不太一样.

引用来自“一个小妞”的评论

1.自定义点和cad点的互相转换应该是很容易的,可以实现
2.不允许使用cad,彻底脱离,可以参考应该VS的例子DrawCli,里面简单提供了用c++的直线,矩形,椭圆等的绘制
3.允许使用cad,只是你链接的库没有弄好,导致无法调用arx中提供的函数,我也可以帮你弄好
4.之定义实体需要重载的函数,网上例子较多,getGripPoints和getOsnapPoints,我最近也在搞,可以互相讨论,互相学习
方便留下联系方式么?或许我看一下你的代码,能更好的定位问题,帮助你解决问题.
https://gitee.com/DeBerg/Custom-3dPolyline
D
DeBerg

引用来自“DeBerg”的评论

你的這篇文章對我幫助很大。我按你的方法建了一個3d polyline的entity。我現在想做一個更進一步的3d polyline,用我自己定義的點,而不是pt3d。因為你上邊這個方法其實是調用ACADuto的內建函數,不能用我自定義的點,而3d polyline又不能繼承。要繼承curve來重建3d polyline的方法看來工作量太大。不知道你有沒有什麼好方法。我自定義的點其實就是繼承pt3d然後在裏面加了一個integer做點的標記(tag)。

引用来自“一个小妞”的评论

我没有明白你的意思,你是想要彻底脱离AutoCAD,用c++做一个3d polyline?还是因为点的问题,无法实现自定义点和CAD点的互相转换?

引用来自“DeBerg”的评论

还是AutoCAD ObjextARX. 是因为点的问题, 无法实现自定义点和CAD点的互相转换. 不能調用AutoCAD 3d polyline的內建函數. ObjectARX 有一个polysamp的例子. 里面几乎重建了所有需要的方法. 对我来说工作量是一方面, 然后复杂度是另一个问题,因为3d polyline是一种复杂entity和普通entity还不太一样.

引用来自“一个小妞”的评论

1.自定义点和cad点的互相转换应该是很容易的,可以实现
2.不允许使用cad,彻底脱离,可以参考应该VS的例子DrawCli,里面简单提供了用c++的直线,矩形,椭圆等的绘制
3.允许使用cad,只是你链接的库没有弄好,导致无法调用arx中提供的函数,我也可以帮你弄好
4.之定义实体需要重载的函数,网上例子较多,getGripPoints和getOsnapPoints,我最近也在搞,可以互相讨论,互相学习
方便留下联系方式么?或许我看一下你的代码,能更好的定位问题,帮助你解决问题.
看看你能看到我的文件吗:
https://gitee.com/DeBerg/Custom-3dPolyline/tree/master
D
DeBerg

引用来自“DeBerg”的评论

你的這篇文章對我幫助很大。我按你的方法建了一個3d polyline的entity。我現在想做一個更進一步的3d polyline,用我自己定義的點,而不是pt3d。因為你上邊這個方法其實是調用ACADuto的內建函數,不能用我自定義的點,而3d polyline又不能繼承。要繼承curve來重建3d polyline的方法看來工作量太大。不知道你有沒有什麼好方法。我自定義的點其實就是繼承pt3d然後在裏面加了一個integer做點的標記(tag)。

引用来自“一个小妞”的评论

我没有明白你的意思,你是想要彻底脱离AutoCAD,用c++做一个3d polyline?还是因为点的问题,无法实现自定义点和CAD点的互相转换?

引用来自“DeBerg”的评论

还是AutoCAD ObjextARX. 是因为点的问题, 无法实现自定义点和CAD点的互相转换. 不能調用AutoCAD 3d polyline的內建函數. ObjectARX 有一个polysamp的例子. 里面几乎重建了所有需要的方法. 对我来说工作量是一方面, 然后复杂度是另一个问题,因为3d polyline是一种复杂entity和普通entity还不太一样.

引用来自“一个小妞”的评论

1.自定义点和cad点的互相转换应该是很容易的,可以实现
2.不允许使用cad,彻底脱离,可以参考应该VS的例子DrawCli,里面简单提供了用c++的直线,矩形,椭圆等的绘制
3.允许使用cad,只是你链接的库没有弄好,导致无法调用arx中提供的函数,我也可以帮你弄好
4.之定义实体需要重载的函数,网上例子较多,getGripPoints和getOsnapPoints,我最近也在搞,可以互相讨论,互相学习
方便留下联系方式么?或许我看一下你的代码,能更好的定位问题,帮助你解决问题.
没积分不能私信. :(
My email is: yaning.wang(at)hotmail.com
D
DeBerg

引用来自“DeBerg”的评论

你的這篇文章對我幫助很大。我按你的方法建了一個3d polyline的entity。我現在想做一個更進一步的3d polyline,用我自己定義的點,而不是pt3d。因為你上邊這個方法其實是調用ACADuto的內建函數,不能用我自定義的點,而3d polyline又不能繼承。要繼承curve來重建3d polyline的方法看來工作量太大。不知道你有沒有什麼好方法。我自定義的點其實就是繼承pt3d然後在裏面加了一個integer做點的標記(tag)。

引用来自“一个小妞”的评论

我没有明白你的意思,你是想要彻底脱离AutoCAD,用c++做一个3d polyline?还是因为点的问题,无法实现自定义点和CAD点的互相转换?

引用来自“DeBerg”的评论

还是AutoCAD ObjextARX. 是因为点的问题, 无法实现自定义点和CAD点的互相转换. 不能調用AutoCAD 3d polyline的內建函數. ObjectARX 有一个polysamp的例子. 里面几乎重建了所有需要的方法. 对我来说工作量是一方面, 然后复杂度是另一个问题,因为3d polyline是一种复杂entity和普通entity还不太一样.

引用来自“一个小妞”的评论

1.自定义点和cad点的互相转换应该是很容易的,可以实现
2.不允许使用cad,彻底脱离,可以参考应该VS的例子DrawCli,里面简单提供了用c++的直线,矩形,椭圆等的绘制
3.允许使用cad,只是你链接的库没有弄好,导致无法调用arx中提供的函数,我也可以帮你弄好
4.之定义实体需要重载的函数,网上例子较多,getGripPoints和getOsnapPoints,我最近也在搞,可以互相讨论,互相学习
方便留下联系方式么?或许我看一下你的代码,能更好的定位问题,帮助你解决问题.
先谢谢.你代码托管用哪个网站,我可以把我现在的代码放过去共享给你. 我把email私信给你.
一个小妞
一个小妞

引用来自“DeBerg”的评论

你的這篇文章對我幫助很大。我按你的方法建了一個3d polyline的entity。我現在想做一個更進一步的3d polyline,用我自己定義的點,而不是pt3d。因為你上邊這個方法其實是調用ACADuto的內建函數,不能用我自定義的點,而3d polyline又不能繼承。要繼承curve來重建3d polyline的方法看來工作量太大。不知道你有沒有什麼好方法。我自定義的點其實就是繼承pt3d然後在裏面加了一個integer做點的標記(tag)。

引用来自“一个小妞”的评论

我没有明白你的意思,你是想要彻底脱离AutoCAD,用c++做一个3d polyline?还是因为点的问题,无法实现自定义点和CAD点的互相转换?

引用来自“DeBerg”的评论

还是AutoCAD ObjextARX. 是因为点的问题, 无法实现自定义点和CAD点的互相转换. 不能調用AutoCAD 3d polyline的內建函數. ObjectARX 有一个polysamp的例子. 里面几乎重建了所有需要的方法. 对我来说工作量是一方面, 然后复杂度是另一个问题,因为3d polyline是一种复杂entity和普通entity还不太一样.
1.自定义点和cad点的互相转换应该是很容易的,可以实现
2.不允许使用cad,彻底脱离,可以参考应该VS的例子DrawCli,里面简单提供了用c++的直线,矩形,椭圆等的绘制
3.允许使用cad,只是你链接的库没有弄好,导致无法调用arx中提供的函数,我也可以帮你弄好
4.之定义实体需要重载的函数,网上例子较多,getGripPoints和getOsnapPoints,我最近也在搞,可以互相讨论,互相学习
方便留下联系方式么?或许我看一下你的代码,能更好的定位问题,帮助你解决问题.
D
DeBerg

引用来自“DeBerg”的评论

你的這篇文章對我幫助很大。我按你的方法建了一個3d polyline的entity。我現在想做一個更進一步的3d polyline,用我自己定義的點,而不是pt3d。因為你上邊這個方法其實是調用ACADuto的內建函數,不能用我自定義的點,而3d polyline又不能繼承。要繼承curve來重建3d polyline的方法看來工作量太大。不知道你有沒有什麼好方法。我自定義的點其實就是繼承pt3d然後在裏面加了一個integer做點的標記(tag)。

引用来自“一个小妞”的评论

我没有明白你的意思,你是想要彻底脱离AutoCAD,用c++做一个3d polyline?还是因为点的问题,无法实现自定义点和CAD点的互相转换?
还是AutoCAD ObjextARX. 是因为点的问题, 无法实现自定义点和CAD点的互相转换. 不能調用AutoCAD 3d polyline的內建函數. ObjectARX 有一个polysamp的例子. 里面几乎重建了所有需要的方法. 对我来说工作量是一方面, 然后复杂度是另一个问题,因为3d polyline是一种复杂entity和普通entity还不太一样.
一个小妞
一个小妞

引用来自“DeBerg”的评论

你的這篇文章對我幫助很大。我按你的方法建了一個3d polyline的entity。我現在想做一個更進一步的3d polyline,用我自己定義的點,而不是pt3d。因為你上邊這個方法其實是調用ACADuto的內建函數,不能用我自定義的點,而3d polyline又不能繼承。要繼承curve來重建3d polyline的方法看來工作量太大。不知道你有沒有什麼好方法。我自定義的點其實就是繼承pt3d然後在裏面加了一個integer做點的標記(tag)。
我没有明白你的意思,你是想要彻底脱离AutoCAD,用c++做一个3d polyline?还是因为点的问题,无法实现自定义点和CAD点的互相转换?
D
DeBerg
你的這篇文章對我幫助很大。我按你的方法建了一個3d polyline的entity。我現在想做一個更進一步的3d polyline,用我自己定義的點,而不是pt3d。因為你上邊這個方法其實是調用ACADuto的內建函數,不能用我自定義的點,而3d polyline又不能繼承。要繼承curve來重建3d polyline的方法看來工作量太大。不知道你有沒有什麼好方法。我自定義的點其實就是繼承pt3d然後在裏面加了一個integer做點的標記(tag)。
基于ObjectARX的DWG文件访问初探

摘 要 AutoCAD的DWG格式文件是其它图形软件的主要数据源,常常需要将其转换成其它格式。本文在讨论了DWG文件访问方法的基础上,重点介绍了基于ObjectARX的DWG文件的访问步骤与读取方法,并给...

wwl33695
2014/04/17
0
0
ObjectARX常用类和函数

(1)AcAx 开头的全局函数:这些函数通过 COM 的方式来让AutoCAD 完成一些操作。 (a) acutPrintf函数:在 AutoCAD 命令行显示指定的字符串 acutPrintf函数的具体用法如例: (b) AcAxMove 函数...

一个小妞
2016/10/20
0
0
2、Arx二次开发创建第一个应用程序

一、本节课程 Arx二次开发创建第一个应用程序 二、本节要讲解的知识点 1、手动创建ARX的应用的步骤。 2、应用向导创建ARX应用程序的步骤。 三、具体内容 1、需求:创建一个Hello World应用程...

云幽学院
2018/10/06
0
0
Autocad 二次开发

【业务需求】 Windows平台,采用ObjectARX完成从AutoCAD图库中读取相似图形模块, 根据输入规则参数自动适配调整相似图形模块参数,并相应修改修改图形库。 同时自动按照规则参数,生成Revit...

zb1486601863858
2017/05/04
1
0
Autocad 二次开发

【业务需求】 Windows平台,采用ObjectARX完成从AutoCAD图库中读取相似图形模块, 根据输入规则参数自动适配调整相似图形模块参数,并相应修改修改图形库。 同时自动按照规则参数,生成Revit...

zb1486601863858
2017/05/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

0.01-Win10安装linux子系统

一、安装Debian子系统 -1、控制面板设置: -1.1、打开“控制面板” —— “程序” —— “启用或关闭Windows功能” —— 勾选 “适用于Linux的Windows子系统” -2、设置: -2.1、打开“设置”...

静以修身2025
昨天
2
0
init 0-6 (启动级别:init 0,1,2,3,4,5,6)

启动级别: init 0,1,2,3,4,5,6 这是个很久的知识点了,只是自己一直都迷迷糊糊的,今天在翻出来好好理解下。。 0: 停机 1:单用户形式,只root进行维护 2:多用户,不能使用net file system...

圣洁之子
昨天
2
0
Android Camera HAL浅析

1、Camera成像原理介绍 Camera工作流程图 Camera的成像原理可以简单概括如下: 景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为电信号,经过A/D(模数转...

天王盖地虎626
昨天
2
0
聊聊Elasticsearch的ProcessProbe

序 本文主要研究一下Elasticsearch的ProcessProbe ProcessProbe elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/monitor/process/ProcessProbe.java public class ProcessProb......

go4it
昨天
3
0
mysql PL(procedure language)流程控制语句

在MySQL中,常见的过程式SQL语句可以用在存储体中。其中包括IF语句、CASE语句、LOOP语句、WHILE语句、ITERATE语句和LEAVE语句,它们可以进行流程控制。 IF语句相当于Java中的if()...else if(...

edison_kwok
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部