Tô màu cho các phần chèn với lớp mới được thêm vào
Contents
[
Hide
]Cách tô màu cho các phần chèn với lớp mới được thêm vào (CADNET-1146)
Vấn đề: Cách tô màu cho các phần chèn với lớp mới được thêm vào (CADNET-1146).
Mẹo: Để làm điều này, hãy sử dụng lớp CadLayerTable để tạo một lớp để có thể thêm một lớp mới vào bản vẽ, bạn cũng có thể sử dụng CadLayersList để thêm nhiều lớp.
Ví dụ:
Tệp ban đầu chứa 5 phần chèn với tên “1”, “2”, “3”, “4” và “5” và tất cả chúng đều nằm trong lớp 0 mặc định.
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); | |
} |