[arx] 创建acdb3dpolyline示例代码.txt

来自「看看吧,很好的东西,」· 文本 代码 · 共 63 行

TXT
63
字号
	void getUcsToWcsMatrix(AcGeMatrix3d& m, AcDbDatabase* db)
	{
		ASSERT(db != NULL);

		if (!acdbUcsMatrix(m, db)) {
			m.setToIdentity();
			ASSERT(0);
		}
	}

	void ucsToWcs(AcGePoint3dArray& ptArray)
	{
		AcDbDatabase* db = acdbHostApplicationServices()->workingDatabase();
		ASSERT(db != NULL);

		AcGeMatrix3d m;
		getUcsToWcsMatrix(m, db);

		int len = ptArray.length();
		for (int i=0; i<len; i++)
			ptArray[i] = m * ptArray[i];
	}

	// ----- asdktest._test command (do not rename)
	static void asdktest_test(void)
	{
		// Add your code for command asdktest._test here
		int i;

		AcDbObjectId lineId;
		AcDbObjectId ptId;
		AcGePoint3d Pt;

		AcDb3dPolyline *pLine;

		AcDbBlockTable *pBlockTable;
		acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable, AcDb::kForRead);

		AcDbBlockTableRecord *pBlockTableRecord;
		pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,AcDb::kForWrite);
		pBlockTable->close();

		AcGeMatrix3d ucsToWcsMat;

		acdbUcsMatrix(ucsToWcsMat);

		AcGePoint3dArray vertices;

		for(i=1;i<=10;i++)
		{
			Pt.x=i;
			Pt.y=i;
			Pt.z=0.0;
			vertices.append(Pt);
		}

		pLine = new AcDb3dPolyline(AcDb::k3dSimplePoly, vertices);
		pLine->setDatabaseDefaults();
		
		pBlockTableRecord->appendAcDbEntity(lineId, pLine); 
		pBlockTableRecord->close();
		pLine->close();
	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?