DWG Çizimleri

DWG Çizimlerini PDF’ye Aktarma

Aspose.CAD for .NET API, DWG formatındaki AutoCAD çizimlerini yükleyebilir ve bunları PDF formatına dönüştürebilir. Bu konu, DWG’den PDF formatına dönüşüm için Aspose.CAD API kullanımını tanımlanan basit adımlarla açıklar.

DWG Dosya Formatı

Bir DWG dosyası, vektör görüntü verileri ve meta verileri içeren bir ikili dosyadır. Vektör görüntü verileri, CAD uygulamasına DWG’yi nasıl görüntüleyeceğine dair talimatlar verir; meta veriler, dosya hakkında çeşitli bilgileri, yerel verileri ve ayrıca istemci verilerini içerebilir. DWG dosya formatı için Açık Şartlar bu PDF’de bulunabilir.

DWG Dosyalarını PDF’ye Dönüştürme

DWG dosyasını PDF formatına dönüştürmek için aşağıdaki basit adımlar gereklidir.

  1. DWG dosyasını bir Image örneğine yükleyin.
  2. CadRasterizationOptions sınıfından bir nesne oluşturun ve PageHeight ve PageWidth özelliklerini ayarlayın.
  3. PdfOptions sınıfından bir nesne oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
  4. Image.Save yöntemini çağırarak PdfOptions nesnesini ikinci parametre olarak geçin.

Aşağıdaki kod örneği, DWG Çizimlerini PDF’ye aktarmanın nasıl yapılacağını gösterir.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
string sourceFilePath = MyDir + "Bottom_plate.dwg";
using (Aspose.CAD.Image image = Aspose.CAD.Image.Load(sourceFilePath))
{
// Create an instance of CadRasterizationOptions and set its various properties
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions();
rasterizationOptions.BackgroundColor = Aspose.CAD.Color.White;
rasterizationOptions.PageWidth = 1600;
rasterizationOptions.PageHeight = 1600;
// Create an instance of PdfOptions
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
MyDir = MyDir + "Bottom_plate_out.pdf";
//Export the DWG to PDF
image.Save(MyDir, pdfOptions);
}

Farklı Düzen Boyutlarıyla Tek PDF Oluşturma

Aspose.CAD for .NET, DWG dosyasını farklı düzen boyutlarıyla tek bir PDF’ye dönüştürmenize olanak tanır. Bu yaklaşım şu şekilde çalışır:

  1. Aspose.CAD.Image.Load fabrika yöntemini kullanarak bir DWG dosyası yükleyin.
  2. CadRasterizationOptions sınıfından bir örnek oluşturun ve elde edilen sayfa yüksekliğini ve genişliğini ayarlayın.
  3. CadRasterizationOptions nesnesi için gerekli LayoutPageSizes değerlerini ekleyin.
  4. PdfOptions sınıfından bir örnek oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
  5. Image.Save() yöntemini kullanarak resmi PDF’ye aktarın.

Aşağıdaki kod örneği, farklı düzenlerle tek bir PDF oluşturmanın nasıl yapılacağını gösterir.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
using (CadImage cadImage = (CadImage)Image.Load(MyDir + "City skyway map.dwg"))
{
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.PageWidth = 1000;
rasterizationOptions.PageHeight = 1000;
//custom sizes for several layouts
rasterizationOptions.LayoutPageSizes.Add("ANSI C Plot", new SizeF(500, 1000));
rasterizationOptions.LayoutPageSizes.Add("8.5 x 11 Plot", new SizeF(1000, 100));
PdfOptions pdfOptions = new PdfOptions() { VectorRasterizationOptions = rasterizationOptions };
cadImage.Save(MyDir + "singlePDF_out.pdf", pdfOptions);
}

Desteklenen AutoCAD Temel Alanları

Aşağıdaki AutoCAD temel alanları desteklenmektedir.

  • METİN
  • MTEXT
  • ATTDEF
  • ATTRIB
  • YAY
  • ELİPSE
  • DOLDURMA
  • LİDER
  • NOKTA
  • VERTEX 2D
  • VERTEX 3D
  • POLİLİNE 2D
  • LWPOLYLINE
  • IŞIN
  • DİSK
  • BOYUT ORDINAT
  • BOYUT LINEAR
  • BOYUT UYUMLU
  • BOYUT AÇI 3Pt
  • BOYUT AÇI 2Ln
  • BOYUT YAŞ
  • BOYUT ÇAP
  • ŞEKİL
  • KATI
  • SPLİN
  • MLINE
  • ÇİZGİ
  • XÇİZGİ
  • STİL
  • DIMSTYLE
  • LTYPE
  • MLINESTYLE
  • KATMAN
  • GÖRÜNTÜ ALANI
  • DÜZEN

Belirli Bir DWG Düzenini PDF’ye Aktarma

Bu yaklaşım şu şekilde çalışır:

  1. Aspose.CAD.Image.Load fabrika yöntemini kullanarak bir DWG dosyası yükleyin.
  2. CadRasterizationOptions sınıfından bir nesne oluşturun ve elde edilen sayfa yüksekliğini ve genişliğini ayarlayın.
  3. CadRasterizationOptions nesnesi için Layouts özelliğini ayarlayın.
  4. PdfOptions sınıfından bir nesne oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
  5. Image.Save() yöntemini kullanarak resmi PDF’ye aktarın.

Aşağıdaki kod örneği, belirli bir DWG düzenini PDF’ye dönüştürmenin nasıl yapılacağını gösterir.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
string sourceFilePath = MyDir + "visualization_-_conference_room.dwg";
using (Aspose.CAD.Image image = Aspose.CAD.Image.Load(sourceFilePath))
{
// Create an instance of CadRasterizationOptions and set its various properties
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions();
rasterizationOptions.PageWidth = 1600;
rasterizationOptions.PageHeight = 1600;
// Specify desired layout name
rasterizationOptions.Layouts = new string[] { "Layout1" };
// Create an instance of PdfOptions
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
MyDir = MyDir + "ExportSpecificLayoutToPDF_out.pdf";
//Export the DWG to PDF
image.Save(MyDir, pdfOptions);
}

Koordinatları Belirterek DWG Belgesini İşleme

Aspose.CAD for .NET API, artık belge genişliği ve yüksekliği koordinatlarını sağlayarak DWG belgelerini işleme özelliği sunmaktadır.

Aşağıdaki kod örneği, bir DWG belgesini nasıl işleyebileceğinizi gösterir.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
string sourceFilePath = MyDir + "Bottom_plate.dwg";
using (CadImage cadImage = (CadImage)Image.Load(sourceFilePath))
{
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.Layouts = new string[] { "Model" };
rasterizationOptions.NoScaling = true;
// note: preserving some empty borders around part of image is the responsibility of customer
// top left point of region to draw
Point topLeft = new Point(6156, 7053);
double width = 3108;
double height = 2489;
CadVportTableObject newView = new CadVportTableObject();
// note: exactly such table name is required for active view
newView.Name.Value = "*Active";
newView.CenterPoint.X = topLeft.X + width / 2f;
newView.CenterPoint.Y = topLeft.Y - height / 2f;
newView.ViewHeight.Value = height;
newView.ViewAspectRatio.Value = width / height;
// search for active viewport and replace it
for (int i = 0; i < cadImage.ViewPorts.Count; i++)
{
CadVportTableObject currentView = (CadVportTableObject)(cadImage.ViewPorts[i]);
if ((currentView.Name.Value == null && cadImage.ViewPorts.Count == 1) ||
string.Equals(currentView.Name.Value.ToLowerInvariant(), "*active"))
{
cadImage.ViewPorts[i] = newView;
break;
}
}
PdfOptions pdfOptions = new PdfOptions();
rasterizationOptions.Layouts = new string[] { "Model" };
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
cadImage.Save(MyDir, pdfOptions);
}

DWG’yi Sabit Boyutla Raster veya PDF’ye Aktarma

Aspose.CAD for .NET API, AutoCAD çizimlerini DWG formatında yükleyebilir ve bunu sabit boyut kullanarak PDF veya Raster’a dönüştürebilir.

Aşağıdaki kod örneği, bu özelliği nasıl uygulayabileceğinizi gösterir.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
string sourceFilePath = MyDir + "Bottom_plate.dwg";
string outPath = MyDir + "Bottom_plate.pdf";
using (CadImage cadImage = (CadImage)Image.Load(sourceFilePath))
{
// export to pdf
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.Layouts = new string[] { "Model" };
bool currentUnitIsMetric = false;
double currentUnitCoefficient = 1.0;
DefineUnitSystem(cadImage.UnitType, out currentUnitIsMetric, out currentUnitCoefficient);
if (currentUnitIsMetric)
{
double metersCoeff = 1 / 1000.0;
double scaleFactor = metersCoeff / currentUnitCoefficient;
rasterizationOptions.PageWidth = (float)(210 * scaleFactor);
rasterizationOptions.PageHeight = (float)(297 * scaleFactor);
rasterizationOptions.UnitType = UnitType.Millimeter;
}
else
{
rasterizationOptions.PageWidth = (float)(8.27f / currentUnitCoefficient);
rasterizationOptions.PageHeight = (float)(11.69f / currentUnitCoefficient);
rasterizationOptions.UnitType = UnitType.Inch;
}
rasterizationOptions.AutomaticLayoutsScaling = true;
PdfOptions pdfOptions = new PdfOptions
{
VectorRasterizationOptions = rasterizationOptions
};
cadImage.Save(outPath, pdfOptions);
// export to raster
//A4 size at 300 DPI - 2480 x 3508
rasterizationOptions.PageHeight = 3508;
rasterizationOptions.PageWidth = 2480;
PngOptions pngOptions = new PngOptions
{
VectorRasterizationOptions = rasterizationOptions
};
cadImage.Save(outPath.Replace("pdf", "png"), pngOptions);
}
}
private static void DefineUnitSystem(UnitType unitType, out bool isMetric, out double coefficient)
{
isMetric = false;
coefficient = 1.0;
switch (unitType)
{
case UnitType.Parsec:
coefficient = 3.0857 * 10000000000000000.0;
isMetric = true;
break;
case UnitType.LightYear:
coefficient = 9.4607 * 1000000000000000.0;
isMetric = true;
break;
case UnitType.AstronomicalUnit:
coefficient = 1.4960 * 100000000000.0;
isMetric = true;
break;
case UnitType.Gigameter:
coefficient = 1000000000.0;
isMetric = true;
break;
case UnitType.Kilometer:
coefficient = 1000.0;
isMetric = true;
break;
case UnitType.Decameter:
isMetric = true;
coefficient = 10.0;
break;
case UnitType.Hectometer:
isMetric = true;
coefficient = 100.0;
break;
case UnitType.Meter:
isMetric = true;
coefficient = 1.0;
break;
case UnitType.Centimenter:
isMetric = true;
coefficient = 0.01;
break;
case UnitType.Decimeter:
isMetric = true;
coefficient = 0.1;
break;
case UnitType.Millimeter:
isMetric = true;
coefficient = 0.001;
break;
case UnitType.Micrometer:
isMetric = true;
coefficient = 0.000001;
break;
case UnitType.Nanometer:
isMetric = true;
coefficient = 0.000000001;
break;
case UnitType.Angstrom:
isMetric = true;
coefficient = 0.0000000001;
break;
case UnitType.Inch:
coefficient = 1.0;
break;
case UnitType.MicroInch:
coefficient = 0.000001;
break;
case UnitType.Mil:
coefficient = 0.001;
break;
case UnitType.Foot:
coefficient = 12.0;
break;
case UnitType.Yard:
coefficient = 36.0;
break;
case UnitType.Mile:
coefficient = 63360.0;
break;
}
}

DWG’yi PDF/A ve PDF/E’ye Aktarma

Bu yaklaşım şu şekilde çalışır:

  1. Aspose.CAD.Image.Load fabrika yöntemini kullanarak bir DWG dosyası yükleyin.
  2. CadRasterizationOptions sınıfından bir nesne oluşturun.
  3. PdfOptions sınıfından bir nesne oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
  4. PDF uyumluluk özelliğini ayarlayın ve kaydedin.
  5. Image.Save() yöntemini kullanarak resmi PDF’ye aktarın.

Aşağıdaki kod örneği, bir DWG dosyasını PDF/A ve PDF/E’ye dönüştürmenin nasıl yapılacağını gösterir.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
string sourceFilePath = MyDir + "Bottom_plate.dwg";
Aspose.CAD.Image cadImage = Aspose.CAD.Image.Load(sourceFilePath);
// Create an instance of CadRasterizationOptions and set its various properties
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions();
rasterizationOptions.BackgroundColor = Aspose.CAD.Color.White;
rasterizationOptions.PageWidth = 1600;
rasterizationOptions.PageHeight = 1600;
// Create an instance of PdfOptions
PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions
{
VectorRasterizationOptions = rasterizationOptions
};
pdfOptions.CorePdfOptions = new PdfDocumentOptions();
pdfOptions.CorePdfOptions.Compliance = PdfCompliance.PdfA1a;
cadImage.Save(MyDir + "PDFA1_A.pdf", pdfOptions);
pdfOptions.CorePdfOptions.Compliance = PdfCompliance.PdfA1b;
cadImage.Save(MyDir + "PDFA1_B.pdf", pdfOptions);

DWG/DXF’yi BMP ve PDF’ye Aktarırken Yuvarlak Gizli Hatların Desteklenmesi

Bu yaklaşım şu şekilde çalışır:

  1. Aspose.CAD.Image.Load fabrika yöntemini kullanarak bir DWG dosyası yükleyin.
  2. CadRasterizationOptions sınıfından bir nesne oluşturun ve elde edilen sayfa yüksekliğini ve genişliğini ayarlayın.
  3. PdfOptions sınıfından bir nesne oluşturun ve VectorRasterizationOptions özelliğini ayarlayın.
  4. Image.Save() yöntemini kullanarak resmi PDF’ye aktarın.

Aşağıdaki kod örneği, bu özelliği nasıl uygulayabileceğinizi gösterir.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
string sourceFilePath = MyDir + "Bottom_plate.dwg";
string outPath = MyDir + "Bottom_plate.pdf";
using (CadImage cadImage = (CadImage)Image.Load(sourceFilePath))
{
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.PageHeight = cadImage.Height;
rasterizationOptions.PageWidth = cadImage.Width;
rasterizationOptions.Layers = new string[] { "Print", "L1_RegMark", "L2_RegMark" };
PdfOptions pdfOptions = new PdfOptions();
rasterizationOptions.Layouts = new string[] { "Model" };
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
cadImage.Save(outPath, pdfOptions);
}
Console.WriteLine("\nThe DWG file exported successfully to PDF.\nFile saved at " + MyDir);
}

DWG Görüntüsü için PDF’ye Aktarılan Yazdırma Alanının Ayarlanması Desteği

Aspose.CAD for .NET API, DWG formatındaki AutoCAD çizimlerini yükleyebilir ve bunları PDF’ye dönüştürebilir. Bu konu, DWG görüntüsü için dışa aktarılan PDF’de bir yazdırma alanı ayarlama desteğinin nasıl sağlanacağını açıklar.

Aşağıdaki kod örneği, bu özelliği nasıl uygulayabileceğinizi gösterir.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
string sourceFilePath = MyDir + "visualization_-_conference_room.dwg";
using (Aspose.CAD.Image image = Aspose.CAD.Image.Load(sourceFilePath))
{
// Create an instance of CadRasterizationOptions and set its various properties
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions = new Aspose.CAD.ImageOptions.CadRasterizationOptions();
rasterizationOptions.PageWidth = 1600;
rasterizationOptions.PageHeight = 1600;
// Specify desired layout name
rasterizationOptions.Layouts = new string[] { "Layout1" };
// Create an instance of PdfOptions
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
MyDir = MyDir + "ExportSpecificLayoutToPDF_out.pdf";
//Export the DWG to PDF
image.Save(MyDir, pdfOptions);
}

DWG Dosyası için XREF Meta Verilerini Okuma Desteği

  1. Aspose.CAD.Image.Load fabrika yöntemini kullanarak bir DWG dosyası yükleyin.
  2. Her bir görüntü varlığında geçiş yapın.
  3. Eğer bir varlık CadUnderlay ise, XREF varlığı ile meta verileri alın.

Aşağıdaki kod örneği, bu özelliği nasıl elde edebileceğinizi gösterir.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
string sourceFilePath = MyDir + "Bottom_plate.dwg";
using (CadImage image = (CadImage)Image.Load(sourceFilePath))
{
foreach (CadBaseEntity entity in image.Entities)
{
if (entity is CadUnderlay)
{
//XREF entity with metadata
Cad3DPoint insertionPoint = ((CadUnderlay)entity).InsertionPoint;
string path = ((CadUnderlay)entity).UnderlayPath;
}
}
}

CadRasterizationOptions.Layouts özelliği string dizisi türündedir, dolayısıyla PDF formatına dönüşüm için birden fazla düzen belirtilebilir. CadRasterizationOptions.Layouts özelliği için birden fazla düzen belirtildiğinde, elde edilen PDF birden fazla sayfaya sahip olacaktır; burada her sayfa bireysel bir AutoCAD düzenini temsil eder.

Tüm Düzenleri Listeleme

Aşağıdaki kod parçasını kullanarak bir AutoCAD çiziminde bulunan tüm düzenleri listeleyebilirsiniz.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_ConvertingCAD();
string sourceFilePath = MyDir + "conic_pyramid.dxf";
using (Aspose.CAD.Image image = Aspose.CAD.Image.Load(sourceFilePath))
{
Aspose.CAD.FileFormats.Cad.CadImage cadImage = (Aspose.CAD.FileFormats.Cad.CadImage)image;
Aspose.CAD.FileFormats.Cad.CadLayoutDictionary layouts = cadImage.Layouts;
foreach (Aspose.CAD.FileFormats.Cad.CadObjects.CadLayout layout in layouts.Values)
{
Console.WriteLine("Layout " + layout.LayoutName);
}
}

DWG Formatında Alt Katman Bayraklarına Erişim

Aspose.CAD for .NET, DWG formatında alt katman bayraklarını uygulamıştır ve geliştiricilerin bunlara erişmesine olanak tanımaktadır. Aşağıda basit bir kod gösterimi bulunmaktadır.

// Input file name and path
string fileName = "BlockRefDgn.dwg";
// Load an existing DWG file and convert it into CadImage
using (Aspose.CAD.FileFormats.Cad.CadImage image = (Aspose.CAD.FileFormats.Cad.CadImage)Image.Load(fileName))
{
// Go through each entity inside the DWG file
foreach (Aspose.CAD.FileFormats.Cad.CadObjects.CadBaseEntity entity in image.Entities)
{
// Check if entity is of CadDgnUnderlay type
if (entity is Aspose.CAD.FileFormats.Cad.CadObjects.CadDgnUnderlay)
{
// Access different underlay flags
Aspose.CAD.FileFormats.Cad.CadObjects.CadUnderlay underlay = entity as Aspose.CAD.FileFormats.Cad.CadObjects.CadUnderlay;
Console.WriteLine(underlay.UnderlayPath);
Console.WriteLine(underlay.UnderlayName);
Console.WriteLine(underlay.InsertionPoint.X);
Console.WriteLine(underlay.InsertionPoint.Y);
Console.WriteLine(underlay.RotationAngle);
Console.WriteLine(underlay.ScaleX);
Console.WriteLine(underlay.ScaleY);
Console.WriteLine(underlay.ScaleZ);
Console.WriteLine((underlay.Flags & Aspose.CAD.FileFormats.Cad.CadObjects.UnderlayFlags.UnderlayIsOn) == Aspose.CAD.FileFormats.Cad.CadObjects.UnderlayFlags.UnderlayIsOn);
Console.WriteLine((underlay.Flags & Aspose.CAD.FileFormats.Cad.CadObjects.UnderlayFlags.ClippingIsOn) == Aspose.CAD.FileFormats.Cad.CadObjects.UnderlayFlags.ClippingIsOn);
Console.WriteLine((underlay.Flags & Aspose.CAD.FileFormats.Cad.CadObjects.UnderlayFlags.Monochrome) != Aspose.CAD.FileFormats.Cad.CadObjects.UnderlayFlags.Monochrome);
break;
}
}
}

DWG Varlıklarına Destek

Aspose.CAD for .NET API, DWG formatındaki AutoCAD çizimlerini yükleyebilir ve çalışmak için farklı varlıkları destekler.

MLeader Varlığına Destek

Bir DWG, vektör görüntü verileri ve meta verileri içeren bir ikili dosyadır. Bir DWG dosyasında farklı varlıklar vardır. Aşağıdaki bölüm, DWG dosyası içindeki MLeader varlığı ile çalışma örneğini açıklar.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
string file = MyDir + "sample.dwg";
using (Image image = Image.Load(file))
{
// Test
FileFormats.Cad.CadImage cadImage = (FileFormats.Cad.CadImage)image;
Assert.AreNotEqual(cadImage.Entities.Length, 0);
CadMLeader cadMLeader = (CadMLeader)cadImage.Entities[0];
Assert.AreEqual(cadMLeader.StyleDescription, "Standard");
Assert.AreEqual(cadMLeader.LeaderStyleId, "12E");
Assert.AreEqual(cadMLeader.ArrowHeadId1, "639");
Assert.AreEqual(cadMLeader.LeaderLineTypeID, "14");
CadMLeaderContextData context = cadMLeader.ContextData;
Assert.AreEqual(context.ArrowHeadSize, 30.0, 0.1);
Assert.AreEqual(context.BasePoint.X, 481, 1);
Assert.AreEqual(context.ContentScale, 1.0, 0.01);
Assert.AreEqual(context.DefaultText.Value, "This is multileader with huge text\\P{\\H1.5x;6666666666666666666666666666\\P}bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
Assert.AreEqual(context.HasMText, true);
CadMLeaderNode mleaderNode = context.LeaderNode;
Assert.AreEqual(mleaderNode.LastLeaderLinePoint.X, 473, 1);
CadMLeaderLine leaderLine = mleaderNode.LeaderLine;
Assert.AreEqual(leaderLine.BreakEndPoint, null);
Assert.AreEqual(leaderLine.BreakPointIndex.Value, 0);
Assert.AreEqual(leaderLine.BreakStartPoint, null);
Assert.AreEqual(leaderLine.LeaderLineIndex.Value, 0);
Assert.AreEqual(leaderLine.LeaderPoints.Count, 4);
Assert.AreEqual(mleaderNode.BranchIndex, 0);
Assert.AreEqual(mleaderNode.DogLegLength, 8.0, 0.1);
Assert.AreEqual(context.HasMText, true);
Assert.AreEqual(context.TextAttachmentType.Value, 1);
Assert.AreEqual(context.TextBackgroundColor.Value, 18);
Assert.AreEqual(context.TextHeight, 20.0, 0.1);
Assert.AreEqual(context.TextStyleID.Value, "11");
Assert.AreEqual(context.TextRotation.Value, 0.0, 0.01);
Assert.AreEqual(cadMLeader.ArrowHeadId1, "639");
Assert.AreEqual(cadMLeader.LeaderType, 1);
Assert.AreEqual(cadMLeader.BlockContentColor, 0);
Assert.AreEqual(cadMLeader.LeaderLineColor, 0);
Assert.AreEqual(cadMLeader.TextHeight, 1.0, 0.01);
}

DWG Varlığını Resme Aktarma Desteği

Bir DWG, vektör görüntü verileri ve meta verileri içeren bir ikili dosyadır. Bir DWG dosyasında farklı varlıklar vardır. Aşağıdaki bölüm, belirli bir DWG varlığını resme aktarma örneğini açıklar.

string MyDir = RunExamples.GetDataDir_DWGDrawings();
string sourceFilePath = MyDir + "visualization_-_conference_room.dwg";
var cadImage = (CadImage)Aspose.CAD.Image.Load(sourceFilePath);
CadBaseEntity[] entities = cadImage.Entities;
List<CadBaseEntity> filteredEntities = new List<CadBaseEntity>();
foreach (CadBaseEntity baseEntity in entities)
{
// selection or filtration of entities
if (baseEntity.TypeName == CadEntityTypeName.TEXT)
{
filteredEntities.Add(baseEntity);
}
}
cadImage.Entities = filteredEntities.ToArray();
// Create an instance of CadRasterizationOptions and set its various properties
Aspose.CAD.ImageOptions.CadRasterizationOptions rasterizationOptions =
new Aspose.CAD.ImageOptions.CadRasterizationOptions();
rasterizationOptions.PageWidth = 1600;
rasterizationOptions.PageHeight = 1600;
// Set Auto Layout Scaling
rasterizationOptions.AutomaticLayoutsScaling = true;
// Create an instance of PdfOptions
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
string outFile = MyDir + "result_out_generated.pdf";
// Export the CAD to PDF
cadImage.Save(outFile, pdfOptions);

DWG İçine Metin Ekleme Desteği

Aspose.CAD for .NET API, DWG formatındaki AutoCAD çizimlerini yükleyebilir ve çalışmak için farklı varlıkları destekler. Bir DWG, vektör görüntü verileri ve meta verileri içeren bir ikili dosyadır. Bir DWG dosyasında farklı varlıklar vardır. Aşağıdaki bölüm, DWG dosyasının içine nasıl metin ekleyebileceğimizi açıklar.

string MyDir = RunExamples.GetDataDir_DWGDrawings();
string dwgPathToFile = MyDir + "SimpleEntites.dwg";
using (Image image = Image.Load(dwgPathToFile))
{
CadText cadText = new CadText();
cadText.StyleType = "Standard";
cadText.DefaultValue = "Some custom text";
cadText.ColorId = 256;
cadText.LayerName = "0";
cadText.FirstAlignment.X = 47.90;
cadText.FirstAlignment.Y = 5.56;
cadText.TextHeight = 0.8;
cadText.ScaleX = 0.0;
CadImage cadImage = (CadImage)image;
cadImage.BlockEntities["*Model_Space"].AddEntity(cadText);
PdfOptions pdfOptions = new PdfOptions();
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
pdfOptions.VectorRasterizationOptions = cadRasterizationOptions;
cadRasterizationOptions.DrawType = CadDrawTypeMode.UseObjectColor;
cadRasterizationOptions.PageHeight = 1600;
cadRasterizationOptions.PageWidth = 1600;
cadRasterizationOptions.Layouts = new string[] { "Model" };
image.Save(MyDir+"SimpleEntites_generated.pdf", pdfOptions);
}

DWG Dosyasına Resim İçe Aktarma Desteği

Aspose.CAD for .NET API, DWG formatındaki AutoCAD çizimlerini yükleyebilir ve çalışmak için farklı varlıkları destekler. Bir DWG, vektör görüntü verileri ve meta verileri içeren bir ikili dosyadır. Bir DWG dosyasında farklı varlıklar vardır. Aşağıdaki bölüm, DWG dosyasının içine nasıl resim aktarabileceğimizi açıklar.

// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-.NET
string dwgPathToFile = MyDir + "Drawing11.dwg";
CadImage cadImage1 = (CadImage)Image.Load(dwgPathToFile);
CadRasterImageDef cadRasterImageDef = new CadRasterImageDef("road-sign-custom.png", 640, 562);
cadRasterImageDef.ObjectHandle = "A3B4";
Cad3DPoint insertionPoint = new Cad3DPoint(26.77, 22.35);
Cad3DPoint uVector = new Cad3DPoint(0.0061565450840500831, 0);
Cad3DPoint vVector = new Cad3DPoint(0, 0.0061565450840500822);
CadRasterImage cadRasterImage = new CadRasterImage(cadRasterImageDef, insertionPoint, uVector, vVector);
cadRasterImage.ImageDefReference = "A3B4";
cadRasterImage.DisplayFlags = 7;
cadRasterImage.ClippingState = 0;
cadRasterImage.ClipBoundaryVertexList.Add(new Cad2DPoint(-0.5, 0.5));
cadRasterImage.ClipBoundaryVertexList.Add(new Cad2DPoint(639.5, 561.5));
CadImage cadImage = (CadImage)cadImage1;
cadImage.BlockEntities["*Model_Space"].AddEntity(cadRasterImage);
List<CadBaseObject> list = new List<CadBaseObject>(cadImage.Objects);
list.Add(cadRasterImageDef);
cadImage.Objects = list.ToArray();
PdfOptions pdfOptions = new PdfOptions();
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
pdfOptions.VectorRasterizationOptions = cadRasterizationOptions;
cadRasterizationOptions.DrawType = CadDrawTypeMode.UseObjectColor;
cadRasterizationOptions.PageHeight = 1600;
cadRasterizationOptions.PageWidth = 1600;
cadRasterizationOptions.Layouts = new string[] { "Model" };
cadImage1.Save(MyDir + "export2.pdf", pdfOptions);

DWG’de Mesh Desteği

Aspose.CAD for .NET API, artık CadPolyFaceMesh ve CadPolygonMesh türlerini içeren mesh destekleyen varlıklara erişim sağlamaktadır. Aşağıdaki örnek, mesh türlerine nasıl erişebileceğimizi açıklamaktadır.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
string sourceFilePath = MyDir + "meshes.dwg";
// Load an existing DWG file as CadImage.
using (CadImage cadImage = (CadImage)Image.Load(sourceFilePath))
{
foreach (var entity in cadImage.Entities)
{
if (entity is CadPolyFaceMesh)
{
CadPolyFaceMesh asFaceMesh = (CadPolyFaceMesh)entity;
if (asFaceMesh != null)
{
Console.WriteLine("Vetexes count: " + asFaceMesh.MeshMVertexCount);
}
}
else if (entity is CadPolygonMesh)
{
CadPolygonMesh asPolygonMesh = (CadPolygonMesh)entity;
if (asPolygonMesh != null)
{
Console.WriteLine("Vetexes count: " + asPolygonMesh.MeshMVertexCount);
}
}
}
}

DWG Çizimlerini DXF’ye Dönüştürme

Aspose.CAD, AutoCAD DWG dosyasını yükleme ve DXF formatına aktarma özelliğini sunmaktadır. DWG’den DXF’ye dönüşüm yaklaşımı şu şekilde çalışır:

  1. Image.Load fabrika yöntemini kullanarak DWG çizim dosyasını yükleyin.
  2. DWG çizimini DXF’ye Image.Save() yöntemini kullanarak aktarın.

Aşağıdaki kod örneği, bir DWG dosyasını DXF formatına dönüştürmenin nasıl yapılacağını gösterir.

string MyDir = RunExamples.GetDataDir_DWGDrawings();
string inputFile = MyDir + "Line.dwg";
string outFile = MyDir + "Line_19.2.dxf";
using (var cadImage = (CadImage)Image.Load(inputFile))
{
cadImage.Save(outFile);
}

DWG Çizimlerini SVG’ye Dönüştürme

Aspose.CAD for .NET API, DWG formatındaki AutoCAD çizimlerini yükleyebilir ve bunları SVG’ye dönüştürebilir. Bu konu, DWG’den SVG formatına dönüşüm için Aspose.CAD API kullanımını tanımlanan basit adımlarla açıklar.

  1. DWG dosyasını bir Image örneğine yükleyin.
  2. SvgOptions sınıfından bir nesne oluşturun ve gerekli özellikleri ayarlayın.
  3. DWG çizimini SVG’ye Image.Save() yöntemi ile aktarın.

Aşağıdaki kod örneği, bir DWG dosyasını SVG formatına dönüştürmenin nasıl yapılacağını gösterir.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
using (Image image = Image.Load(MyDir + "sample.dwg"))
{
var options = new SvgOptions();
options.ColorType = Aspose.CAD.ImageOptions.SvgOptionsParameters.SvgColorMode.Grayscale;
options.TextAsShapes = true;
image.Save(MyDir + "sample.svg");
}

Büyük DWG Dosyası Yükleme

Aspose.CAD for .NET, Image sınıfını kullanarak çok büyük DWG dosyalarını açma kolaylığı sağlamaktadır. Artık aşağıdaki örnek kod yardımıyla büyük dosyaları kolayca açabilirsiniz.

// The path to the documents directory.
string MyDir = RunExamples.GetDataDir_DWGDrawings();
string filePathDWG = MyDir + "TestBigFile.dwg";
string filePathFinish = MyDir+ "TestBigFile.dwg.pdf";
Stopwatch stopWatch = new Stopwatch();
try
{
stopWatch.Start();
using (CadImage cadImage = (CadImage)Image.Load(filePathDWG))
{
stopWatch.Stop();
// Get the elapsed time as a TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;
// Format and display the TimeSpan value.
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
ts.Hours, ts.Minutes, ts.Seconds,
ts.Milliseconds / 10);
Console.WriteLine("RunTime for loading " + elapsedTime);
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.PageWidth = 1600;
rasterizationOptions.PageHeight = 1600;
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
stopWatch = new Stopwatch();
stopWatch.Start();
cadImage.Save(filePathFinish, pdfOptions);
stopWatch.Stop();
// Get the elapsed time as a TimeSpan value.
ts = stopWatch.Elapsed;
// Format and display the TimeSpan value.
elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
ts.Hours, ts.Minutes, ts.Seconds,
ts.Milliseconds / 10);
Console.WriteLine("RunTime for converting " + elapsedTime);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}