Přesunutí kresby dolů pro přidání nadpisu

Jak přesunout kresbu dolů pro přidání nadpisu

Problém: Jak přesunout kresbu dolů pro přidání nadpisu (CADNET-980).

Tipy: Pro provedení tohoto úkonu vytvořte objekt CadText s parametry, přidejte tento blok do kresby, pak aktualizujte kresbu s novými rozměry pomocí UpdateSize, přidejte polyline, která bude rámečkem kolem kresby, přidejte polyline do BlockEntities["*Model_Space"] a znovu aktualizujte velikost pomocí UpdateSize.

Příklad:

using (CadImage cadImage = (CadImage)Image.Load(GetPath(fileName)))
{
CadText text = new CadText();
text.DefaultValue = "CAD Drawing";
text.TextHeight = 5;
// second alignment point is required in case text is aligned (first alignment point is ignored)
text.SecondAlignmentPoint = new Cad3DPoint(cadImage.Width / 2, cadImage.Height - text.TextHeight);
text.HorizontalJustification = 1;
text.ObjectHandle = "bebebebe";//Guid.NewGuid().ToString();
text.LayerName = "0";
text.SoftOwner = cadImage.Layouts["Model"].BlockTableRecordHandle;
cadImage.BlockEntities["*Model_Space"].AddEntity(text);
// should be called because we need to add one more entity using new size of image
cadImage.UpdateSize();
// add polyline that is a border around the drawing
CadLwPolyline lwPolyline = new CadLwPolyline();
lwPolyline.Coordinates = new List<Cad2DPoint>();
lwPolyline.Coordinates.Add(new Cad2DPoint(cadImage.MinPoint.X - 20, cadImage.MinPoint.Y - 20));
lwPolyline.Coordinates.Add(new Cad2DPoint(cadImage.MinPoint.X - 20, cadImage.MaxPoint.Y + 20));
lwPolyline.Coordinates.Add(new Cad2DPoint(cadImage.MaxPoint.X + 20, cadImage.MaxPoint.Y + 20));
lwPolyline.Coordinates.Add(new Cad2DPoint(cadImage.MaxPoint.X + 20, cadImage.MinPoint.Y - 20));
cadImage.BlockEntities["*Model_Space"].AddEntity(lwPolyline);
// should be called because adding of new entity may change size of drawing
cadImage.UpdateSize();
// remove border polyline after drawing is updated
cadImage.RemoveEntity(lwPolyline);
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
cadImage.Save(outPath, pdfOptions);
}