رنگآمیزی ورودیها با لایههای جدید اضافه شده
Contents
[
Hide
]چگونه ورودیها را با لایههای جدید اضافه شده رنگآمیزی کنیم (CADNET-1146)
مسئله: چگونه ورودیها را با لایههای جدید اضافه شده رنگآمیزی کنیم (CADNET-1146).
نکات: برای این کار، از کلاس CadLayerTable برای ایجاد یک لایه استفاده کنید تا بتوانید یک لایه جدید به طراحی اضافه کنید، همچنین میتوانید از CadLayersList برای اضافه کردن چندین لایه استفاده کنید.
مثال:
فایل اولیه شامل ۵ ورودی با نامهای “1”، “2”، “3”، “4” و “5” است و همه آنها در لایه پیشفرض ۰ قرار دارند.
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
using (CadImage cadImage = (CadImage)Image.Load(GetPath(fileName))) | |
{ | |
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions(); | |
rasterizationOptions.DrawType = CadDrawTypeMode.UseObjectColor; | |
CadLayersList newList = cadImage.Layers; | |
CadLayerTable redLayer = new CadLayerTable(); | |
redLayer.Name = "REDLAYER"; | |
redLayer.ColorId = 1; // ID of red color | |
redLayer.ObjectHandle = "REDLAYER"; | |
CadLayerTable greenLayer = new CadLayerTable(); | |
greenLayer.Name = "GREENLAYER"; | |
greenLayer.ObjectHandle = "GREENLAYER"; | |
greenLayer.ColorId = 3; // ID of green color | |
newList.AddRange(new CadLayerTable[] {redLayer, greenLayer}); | |
cadImage.Layers = newList; | |
foreach (CadBaseEntity entity in cadImage.Entities) | |
{ | |
if (entity.TypeName == CadEntityTypeName.INSERT) | |
{ | |
CadInsertObject insert = (CadInsertObject)entity; | |
// the required block to change color for is identified by name | |
if (insert.Name == "3") | |
{ | |
insert.LayerName = "REDLAYER"; | |
} | |
if (insert.Name == "2") | |
{ | |
insert.LayerName = "GREENLAYER"; | |
} | |
} | |
} | |
PdfOptions pdfOptions = new PdfOptions(); | |
pdfOptions.VectorRasterizationOptions = rasterizationOptions; | |
cadImage.Save(outPath, pdfOptions); | |
} |