Aspose.Cad for .Net 23.7 从一个dwg中拷贝一个元素到另一个dwg中。

Aspose.Cad for .Net 23.7 如何从一个dwg中拷贝一个元素到另一个dwg中。

@hardp,
这是基本示例:

string source = "source.dwg";
string destination = "destination.dwg";

using (CadImage cadImageSource = (CadImage)Aspose.CAD.Image.Load(GetPath(source)))
{
	using (CadImage cadImageDestination = (CadImage)Aspose.CAD.Image.Load(GetPath(destination)))
	{
		// get next available object ID to prevent collisions
		string newObjectID = "FFFFFF";

		if (cadImageDestination.Header.HeaderProperties.ContainsKey(CadHeaderAttribute.HANDSEED))
		{
			newObjectID = ((CadStringParameter)cadImageDestination.Header.HeaderProperties[CadHeaderAttribute.HANDSEED][0]).Value;
			int nextAvailableID = int.Parse(newObjectID, System.Globalization.NumberStyles.HexNumber) + 1;
			((CadStringParameter)cadImageDestination.Header.HeaderProperties[CadHeaderAttribute.HANDSEED][0]).Value = nextAvailableID.ToString("X");
		}

		// get entity from first drawing 
		CadEntityBase entityFromSource = cadImageSource.Entities[0];

		// replace its ID
		entityFromSource.ObjectHandle = newObjectID;

		// add it to drawing collections
		cadImageDestination.BlockEntities["*Model_Space"].AddEntity(entityFromSource);

		List<CadEntityBase> entities = new List<CadEntityBase>(cadImageDestination.Entities);
		entities.Add(entityFromSource);
		cadImageDestination.Entities = entities.ToArray();

		// update size to guarantee it is correct after addition of new entity
		cadImageDestination.UpdateSize();

		cadImageDestination.Save(outPath, new PdfOptions());
	}
}