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());
}
}