הכנס ציור DXF/DWG בתוך DXF
Contents
[
Hide
]איך להכניס ציור DXF/DWG בתוך DXF
בעיה: איך להכניס ציור DXF/DWG בתוך DXF.
טיפים: כדי לעשות זאת, עליך קודם כל ליצור CadInsertObject עם הערכים הנדרשים, ואז לקבל את כל הבלוקים ב-CadBlockDictionary, ליצור בלוק CadBlockEntity חדש ולהוסיף אותו ל-CadBlockDictionary, להוסיף את CadBlockDictionary ל-BlockEntities של הציור, להוסיף CadInsertObject ליישויות של הציור עבור המערך.
דוגמה:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/ this part is not required but detects the first available free ID for handle as each object should have unique one | |
// assuming that we only make export, but not saving to dxf/dwg, you may assign any unique value | |
string newObjectID = "FFFFFF"; | |
if (cadImage.Header.HeaderProperties.ContainsKey(CadHeaderAttribute.HANDSEED)) | |
{ | |
newObjectID = ((CadStringParameter)cadImage.Header.HeaderProperties[CadHeaderAttribute.HANDSEED][0]).Value; | |
int nextAvailableID = int.Parse(newObjectID, System.Globalization.NumberStyles.HexNumber) + 1; | |
((CadStringParameter)cadImage.Header.HeaderProperties[CadHeaderAttribute.HANDSEED][0]).Value = nextAvailableID.ToString("X"); | |
} | |
CadInsertObject newInsert = new CadInsertObject(); | |
newInsert.Name = "foreground"; | |
newInsert.SoftOwner.Value = cadImage.Layouts["Model"].BlockTableRecordHandle; | |
newInsert.ObjectHandle = newObjectID; | |
newInsert.LayerName = "0"; | |
newInsert.InsertionPoint.X = 200; | |
newInsert.InsertionPoint.Y = -1300; | |
CadBlockDictionary allBlocks = cadImage.BlockEntities; | |
CadBlockEntity newBlock = new CadBlockEntity(); | |
newBlock.XRefPathName.Value = "foreground.dwg"; | |
allBlocks.Add(newInsert.Name, newBlock); | |
cadImage.BlockEntities = allBlocks; | |
List entities = new List(cadImage.Entities); | |
entities.Add(newInsert); | |
cadImage.Entities = entities.ToArray(); | |
cadImage.Save(...) |