รูปวาด DWG

Contents
[ ]

การส่งออก DWG ไปยัง PDF

Aspose.CAD สำหรับ .NET API สามารถโหลดรูปวาด AutoCAD ในรูปแบบ DWG และแปลงให้เป็น PDF. หัวข้อนี้อธิบายการใช้งาน Aspose.CAD API เพื่อบรรลุการแปลง DWG เป็น PDF ผ่านขั้นตอนง่ายๆ ที่กำหนดไว้ด้านล่าง

รูปแบบไฟล์ DWG

DWG เป็นไฟล์ไบนารีที่มีข้อมูลภาพเวกเตอร์และข้อมูลเมตา ข้อมูลภาพเวกเตอร์ให้ข้อมูลแก่แอปพลิเคชัน CAD เกี่ยวกับวิธีการแสดง DWG; ข้อมูลเมตาอาจมีข้อมูลต่างๆ เกี่ยวกับไฟล์รวมถึงข้อมูลเฉพาะตำแหน่งและข้อมูลลูกค้า ข้อมูลจำเพาะเปิดสำหรับรูปแบบไฟล์ DWG สามารถพบได้ ใน PDF นี้

แปลงไฟล์ DWG เป็น PDF

ขั้นตอนง่ายๆ ต่อไปนี้ต้องใช้ในการแปลง DWG เป็น PDF.

  1. โหลดไฟล์ DWG เข้าสู่ตัวอย่างของ Image.
  2. สร้างอ็อบเจ็ทของคลาส CadRasterizationOptions และตั้งค่า PageHeight & PageWidth คุณสมบัติ
  3. สร้างอ็อบเจ็ทของคลาส PdfOptions และตั้งค่า VectorRasterizationOptions คุณสมบัติ
  4. โทร Image.Save ในขณะที่ส่งอ็อบเจ็ทของ PdfOptions เป็นพารามิเตอร์ที่สอง

ตัวอย่างโค้ดด้านล่างแสดงวิธีการส่งออก DWG รูปวาดไปยัง PDF

// 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);
}

สร้าง PDF เดียวที่มีขนาดรูปแบบต่างกัน

Aspose.CAD สำหรับ .NET อนุญาตให้คุณแปลงไฟล์ DWG เป็น PDF เดียวที่มีขนาดรูปแบบต่างกัน วิธีการนี้ทำงานดังนี้:

  1. โหลดไฟล์ DWG โดยใช้วิธีแฟกตอรี Aspose.CAD.Image.Load.
  2. สร้างตัวอย่างของคลาส CadRasterizationOptions และตั้งค่าความสูงและความกว้างของหน้าผลลัพธ์
  3. เพิ่ม LayoutPageSizes ที่จำเป็นสำหรับอ็อบเจ็ท CadRasterizationOptions
  4. สร้างตัวอย่างของคลาส PdfOptions และตั้งค่า VectorRasterizationOptions คุณสมบัติ
  5. ส่งออกภาพไปยัง PDF โดยใช้วิธี Image.Save()

ตัวอย่างโค้ดด้านล่างแสดงวิธีสร้าง PDF เดียวที่มีรูปแบบต่างๆ

// 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);
}

รูปทรง AutoCAD ที่รองรับ

รูปทรง AutoCAD ต่อไปนี้ได้รับการสนับสนุน

  • TEXT
  • MTEXT
  • ATTDEF
  • ATTRIB
  • ARC
  • ELLIPSE
  • HATCH
  • LEADER
  • POINT
  • VERTEX 2D
  • VERTEX 3D
  • POLYLINE 2D
  • LWPOLYLINE
  • RAY
  • CIRCLE
  • DIMENSION ORDINATE
  • DIMENSION LINEAR
  • DIMENSION ALIGNED
  • DIMENSION ANG 3Pt
  • DIMENSION ANG 2Ln
  • DIMENSION RADIUS
  • DIMENSION DIAMETER
  • SHAPE
  • SOLID
  • SPLINE
  • MLINE
  • LINE
  • XLINE
  • STYLE
  • DIMSTYLE
  • LTYPE
  • MLINESTYLE
  • LAYER
  • VIEWPORT
  • LAYOUT

ส่งออกเลย์เอาต์ DWG เฉพาะไปยัง PDF

วิธีการนี้ทำงานดังนี้:

  1. โหลดไฟล์ DWG โดยใช้วิธีแฟกตอรี Aspose.CAD.Image.Load
  2. สร้างตัวอย่างของคลาส CadRasterizationOptions และตั้งค่าความสูงและความกว้างของหน้าผลลัพธ์
  3. ตั้งค่า Layouts สำหรับอ็อบเจ็ท CadRasterizationOptions
  4. สร้างตัวอย่างของคลาส PdfOptions และตั้งค่า VectorRasterizationOptions คุณสมบัติ
  5. ส่งออกภาพไปยัง PDF โดยใช้วิธี Image.Save()

ตัวอย่างโค้ดด้านล่างแสดงวิธีการแปลงเลย์เอาต์เฉพาะของ DWG เป็น PDF

// 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 โดยระบุพิกัด

Aspose.CAD สำหรับ .NET API ตอนนี้มีฟีเจอร์ในการเรนเดอร์เอกสาร DWG โดยการระบุพิกัดของความกว้างและความสูงของเอกสาร

ตัวอย่างโค้ดด้านล่างแสดงวิธีการเรนเดอร์เอกสาร DWG

// 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 ไปยัง Raster หรือ PDF โดยใช้ขนาดคงที่

Aspose.CAD สำหรับ .NET API สามารถโหลดรูปวาด AutoCAD ในรูปแบบ DWG และแปลงเป็น PDF หรือ Raster โดยใช้ขนาดคงที่

ตัวอย่างโค้ดด้านล่างแสดงวิธีการใช้งานคุณสมบัตินี้

// 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 ไปยัง PDF/A และ PDF/E

วิธีการนี้ทำงานตามรายละเอียดดังนี้:

  1. โหลดไฟล์ DWG โดยใช้วิธีแฟกตอรี Aspose.CAD.Image.Load
  2. สร้างอ็อบเจ็ทของคลาส CadRasterizationOptions
  3. สร้างอ็อบเจ็ทของคลาส PdfOptions และตั้งค่า VectorRasterizationOptions คุณสมบัติ
  4. ตั้งค่าคุณสมบัติการปฏิบัติตาม PDF และบันทึก
  5. ส่งออกภาพไปยัง PDF โดยใช้วิธี Image.Save()

ตัวอย่างโค้ดด้านล่างแสดงวิธีการแปลงไฟล์ DWG เป็น PDF/A และ PDF/E

// 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 ไปยัง BMP และ PDF

วิธีการนี้ทำงานตามรายละเอียดดังนี้:

  1. โหลดไฟล์ DWG โดยใช้วิธีแฟกตอรี Aspose.CAD.Image.Load
  2. สร้างอ็อบเจ็ทของคลาส CadRasterizationOptions และตั้งค่าความสูงและความกว้างของหน้าผลลัพธ์
  3. สร้างอ็อบเจ็ทของคลาส PdfOptions และตั้งค่า VectorRasterizationOptions คุณสมบัติ
  4. ส่งออกภาพไปยัง PDF โดยใช้วิธี Image.Save()

ตัวอย่างโค้ดด้านล่างแสดงวิธีการใช้งานคุณสมบัตินี้

// 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 ใน PDF ที่ส่งออก

Aspose.CAD สำหรับ .NET API สามารถโหลดรูปวาด AutoCAD ในรูปแบบ DWG และแปลงเป็น PDF หัวข้อนี้อธิบายการใช้งาน Aspose.CAD API เพื่อบรรลุการสนับสนุนในการตั้งค่าพื้นที่พิมพ์สำหรับภาพ DWG ใน PDF ที่ส่งออก

ตัวอย่างโค้ดด้านล่างแสดงวิธีการใช้งานคุณสมบัตินี้

// 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);
}

สนับสนุนการอ่านข้อมูลเมตา XREF สำหรับไฟล์ DWG

  1. โหลดไฟล์ DWG โดยใช้วิธีแฟกตอรี Aspose.CAD.Image.Load
  2. เดินทางผ่านทุกหน่วยภาพ
  3. หากหน่วยเป็น CadUnderlay ให้ทำการสร้างหน่วย XREF ที่มีข้อมูลเมตา

ตัวอย่างโค้ดด้านล่างแสดงวิธีการใช้งานคุณสมบัตินี้

// 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 เป็นอาร์เรย์ประเภทสตริง ดังนั้นคุณสามารถระบุรูปแบบมากกว่าหนึ่งแบบในครั้งเดียวสำหรับการแปลงเป็นรูปแบบ PDF ที่เป็นไปได้ ในขณะที่ระบุรูปแบบหลายรูปแบบสำหรับคุณสมบัติ CadRasterizationOptions.Layouts PDF ที่ได้จะมีหลายหน้า โดยแต่ละหน้าจะแสดงเลย์เอาต์ AutoCAD เฉพาะ

รายการรูปแบบทั้งหมด

คุณสามารถแสดงรายการรูปแบบทั้งหมดที่มีอยู่ในรูปวาด AutoCAD โดยใช้ตัวอย่างโค้ดด้านล่างนี้

// 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

Aspose.CAD สำหรับ .NET ได้จัดทำธงแบบซ้อนทับสำหรับรูปแบบ DWG และอนุญาตให้นักพัฒนาสามารถเข้าถึงได้ โดยมีการสาธิตโค้ดง่ายๆ ดังนี้

// 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

Aspose.CAD สำหรับ .NET API สามารถโหลดรูปวาด AutoCAD ในรูปแบบ DWG และรองรับหน่วยต่างๆ สำหรับการทำงานด้วย

การสนับสนุนสำหรับหน่วย MLeader

DWG เป็นไฟล์ไบนารีที่มีข้อมูลภาพเวกเตอร์และข้อมูลเมตา มีหน่วยที่แตกต่างกันในไฟล์ DWG ส่วนถัดไปอธิบายถึงตัวอย่างการทำงานกับหน่วย MLeader ภายในไฟล์ DWG

// 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 เป็นภาพ

DWG เป็นไฟล์ไบนารีที่มีข้อมูลภาพเวกเตอร์และข้อมูลเมตา มีหน่วยที่แตกต่างกันในไฟล์ DWG ส่วนถัดไปอธิบายถึงตัวอย่างการส่งออกหน่วย DWG เฉพาะไปยังภาพ

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

Aspose.CAD สำหรับ .NET API สามารถโหลดรูปวาด AutoCAD ในรูปแบบ DWG และรองรับหน่วยต่างๆ สำหรับการทำงานด้วย DWG เป็นไฟล์ไบนารีที่มีข้อมูลภาพเวกเตอร์และข้อมูลเมตา มีหน่วยที่แตกต่างกันในไฟล์ DWG ส่วนถัดไปอธิบายถึงวิธีการเพิ่มข้อความภายในไฟล์ DWG

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

Aspose.CAD สำหรับ .NET API สามารถโหลดรูปวาด AutoCAD ในรูปแบบ DWG และรองรับหน่วยต่างๆ สำหรับการทำงานด้วย DWG เป็นไฟล์ไบนารีที่มีข้อมูลภาพเวกเตอร์และข้อมูลเมตา มีหน่วยที่แตกต่างกันในไฟล์ DWG ส่วนถัดไปอธิบายถึงวิธีการนำเข้าไฟล์รูปภาพภายในไฟล์ DWG

// 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);

การสนับสนุนสำหรับ Mesh ใน DWG

Aspose.CAD สำหรับ .NET API สามารถเข้าถึงหน่วยที่สนับสนุน mesh ซึ่งรวมถึง CadPolyFaceMesh และ CadPolygonMesh ประเภท ตัวอย่างต่อไปนี้อธิบายถึงวิธีการเข้าถึงประเภท mesh

// 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 รูปวาดเป็น DXF

Aspose.CAD ให้ฟีเจอร์ในการโหลดไฟล์ DWG ของ AutoCAD และส่งออกเป็นรูปแบบ DXF วิธีการแปลงจาก DWG เป็น DXF ทำงานดังนี้:

  1. โหลดไฟล์รูปวาด DWG โดยใช้วิธี Image.Load
  2. ส่งออกรูปวาด DWG เป็น DXF โดยใช้วิธี Image.Save()

ตัวอย่างโค้ดด้านล่างแสดงวิธีการแปลงไฟล์ DWG เป็นรูปแบบ DXF

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 รูปวาดเป็น SVG

Aspose.CAD สำหรับ .NET API สามารถโหลดรูปวาด AutoCAD ในรูปแบบ DWG และแปลงให้เป็น SVG หัวข้อนี้อธิบายการใช้งาน Aspose.CAD API เพื่อบรรลุการแปลง DWG เป็นรูปแบบ SVG ผ่านขั้นตอนง่ายๆ ดังนี้

  1. โหลดไฟล์ DWG เข้าสู่ตัวอย่างของ Image.
  2. สร้างอ็อบเจ็ทของคลาส SvgOptions และตั้งค่าคุณสมบัติที่จำเป็น
  3. ส่งออกรูปวาด DWG เป็น SVG โดยใช้วิธี Image.Save()

ตัวอย่างโค้ดด้านล่างแสดงวิธีการแปลงไฟล์ DWG เป็น SVG

// 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");
}

โหลดไฟล์ DWG ขนาดใหญ่

Aspose.CAD สำหรับ .NET มีฟีเจอร์ในการเปิดไฟล์ DWG ขนาดใหญ่มากโดยใช้คลาส Image ตอนนี้คุณสามารถเปิดไฟล์ขนาดใหญ่ได้อย่างง่ายดายด้วยความช่วยเหลือของตัวอย่างโค้ดที่ให้ไว้ด้านล่าง

// 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);
}