Coloración de insertos con nuevas capas añadidas
Contents
[
Hide
]Cómo colorear insertos con nuevas capas añadidas (CADNET-1146)
Problema: Cómo colorear insertos con nuevas capas añadidas (CADNET-1146).
Consejos: Para hacer esto, usa la clase CadLayerTable para crear una capa y poder añadir una nueva capa al dibujo; también puedes usar CadLayersList para añadir múltiples capas.
Ejemplo:
El archivo inicial contiene 5 insertos con nombres “1”, “2”, “3”, “4” y “5” y todos están en la capa predeterminada 0.
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); | |
} |