نقشه‌های DXF

صادرات نقشه‌های DXF به PDF

Aspose.CAD قابلیت بارگذاری موجودیت‌های نقشه DXF اتوکد و رندر کردن آن‌ها به عنوان یک نقشه کامل در فرمت PDF را فراهم می‌کند. راه‌کار تبدیل DXF به PDF به شرح زیر عمل می‌کند:

  1. فایل نقشه DXF را با استفاده از روش کارخانه Image.load بارگذاری کنید.
  2. شیئی از کلاس CadRasterizationOptions ایجاد کنید و ویژگی‌های PageHeight و PageWidth را تنظیم کنید.
  3. شیئی از کلاس PdfOptions ایجاد کنید و ویژگی VectorRasterizationOptions را تنظیم کنید.
  4. متد Image.Save را با ارسال شیئی از PdfOptions به عنوان پارامتر دوم برای ذخیره فایل فراخوانی کنید.

نمونه کد زیر نشان می‌دهد که چگونه یک فایل را با تنظیمات پیش‌فرض تبدیل کنید.

// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java
// The path to the resource directory.
String dataDir = Utils.getDataDir(ExportDXFDrawingToPDF.class) + "DXFDrawings/";
String srcFile = dataDir + "conic_pyramid.dxf";
Image image = Image.load(srcFile);
// Create an instance of CadRasterizationOptions and set its various properties
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setBackgroundColor(Color.getWhite());
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export the DXF to PDF
image.save(dataDir + "conic_pyramid_out_.pdf", pdfOptions);

فرمت‌های پشتیبانی شده

در حال حاضر ما به طور کامل از فرمت‌های فایل DXF اتوکد ۲۰۱۰ پشتیبانی می‌کنیم. نسخه‌های قبلی DXF تضمین نمی‌شوند که ۱۰۰٪ معتبر باشند. ما برنامه داریم تا فرمت‌ها و ویژگی‌های بیشتری را در نسخه‌های آینده Aspose.CAD اضافه کنیم.

موجودیت‌های پشتیبانی شده

در حال حاضر ما از تمام موجودیت‌های ۲ بعدی رایج و پارامترهای پیش‌فرض اصلی آن‌ها به شرح زیر پشتیبانی می‌کنیم:

  1. ابعاد هم‌راستا
  2. ابعاد زاویه‌ای
  3. قوس
  4. ویژگی
  5. مرجع بلوک
  6. دایره
  7. ابعاد قطر
  8. بیضی
  9. الگو
  10. خط
  11. متن چند خطی
  12. ابعاد مدول
  13. نقطه
  14. چندخطی
  15. ابعاد شعاعی
  16. شعاع
  17. ابعاد چرخشی
  18. جدول
  19. متن
  20. Xline

مدیریت حافظه

ویژگی ExactReallocateOnly می‌تواند برای کنترل تخصیص مجدد حافظه استفاده شود. تخصیص مجدد احتمالاً برای حافظه‌های از پیش تخصیص داده شده اتفاق می‌افتد. این امر ممکن است زمانی اتفاق بیفتد که سیستم متوجه شود فضای تخصیص داده شده کافی نخواهد بود.

  • اگر ExactReallocateOnly بر روی مقدار پیش‌فرض یعنی False تنظیم شود، فضا به همان منبع مجدد تخصیص داده می‌شود.
  • زمانی که بر روی True تنظیم شود، تخصیص مجدد نمی‌تواند از فضای حداکثر تعیین‌شده تجاوز کند. در این صورت، حافظه فعلی که نیاز به تخصیص مجدد دارد آزاد شده و فضای جدیدی بر روی دیسک تخصیص داده می‌شود.

صادرات لایه خاصی از نقشه‌های DXF به PDF

این رویکرد به شرح زیر عمل می‌کند:

  1. فایل نقشه DXF را با استفاده از روش کارخانه Image.load باز کنید.
  2. یک نمونه از CadRasterizationOptions ایجاد کنید و ویژگی‌های PageWidth و PageHeight را مشخص کنید.
  3. لایه‌ها را به شیئی از CadRasterizationOptions اضافه کنید.
  4. یک نمونه از PdfOptions ایجاد کرده و ویژگی VectorRasterizationOptions را تنظیم کنید.
  5. نقشه را با استفاده از متد Image.save به PDF صادر کنید.

نمونه کد زیر نشان می‌دهد که چگونه یک لایه خاص از DXF را به PDF تبدیل کنید.

// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java
// The path to the resource directory.
String dataDir = Utils.getDataDir(ExportSpecificLayerOfDXFDrawingToPDF.class) + "DXFDrawings/";
String srcFile = dataDir + "conic_pyramid.dxf";
Image image = Image.load(srcFile);
// Create an instance of CadRasterizationOptions and set its various properties
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
// Add desired layers
rasterizationOptions.getLayers().add("0");
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export the DXF to PDF
image.save(dataDir + "conic_pyramid_layer_out_.pdf", pdfOptions);

صادرات لایه خاصی از نقشه‌های DXF به تصویر

این روش به شرح زیر عمل می‌کند:

  1. فایل نقشه DXF را با استفاده از روش کارخانه Image.load باز کنید.
  2. یک نمونه از CadRasterizationOptions ایجاد کنید و ویژگی‌های PageWidth و PageHeight را مشخص کنید.
  3. لایه‌ها را به شیئی از CadRasterizationOptions اضافه کنید.
  4. یک نمونه از JpegOptions ایجاد کرده و ویژگی VectorRasterizationOptions را تنظیم کنید.
  5. نقشه را با استفاده از متد Image.save به تصویر صادر کنید.

نمونه کد زیر نشان می‌دهد که چگونه یک لایه خاص از DXF را به تصویر تبدیل کنید.

// The path to the resource directory.
String dataDir = Utils.getDataDir(ExportSpecificDXFLayoutToPDF.class) + "DXFDrawings\\";
String srcFile = dataDir + "for_layers_test.dwf";
DwfImage image =(DwfImage)Image.load(srcFile);
List<String> layersNames=image.getLayers().getLayersNames();
DwfWhipLayer layer = image.getLayers().getLayerByName("0");
for (DwfWhipLayer lr : image.getLayers())
{
//...
}
// Create an instance of CadRasterizationOptions and set its various properties
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
String[] stringArray = Arrays.copyOf(layersNames.toArray(), layersNames.toArray().length, String[].class);
List<String> stringList = Arrays.asList(stringArray);
// Add desired layers
rasterizationOptions.setLayers(stringList);
JpegOptions jpegOptions = new JpegOptions();
jpegOptions.setVectorRasterizationOptions(rasterizationOptions);
String output = dataDir+"for_layers_test.jpg";
// Export the DXF to Image
image.save(output, jpegOptions);

رندر فایل‌های PDF به عنوان بخشی از نقشه‌های DXF

این روش به شرح زیر عمل می‌کند:

  1. فایل نقشه DXF را با استفاده از روش کارخانه Image.load بارگذاری کنید.
  2. شیئی از کلاس CadRasterizationOptions ایجاد کرده و فایل‌های PDF را بارگذاری کنید.
  3. ویژگی‌های PageHeight و PageWidth را تنظیم کنید.
  4. متد Image.save را فراخوانی کرده و فایل را ذخیره کنید.

نمونه کد زیر نشان می‌دهد که چگونه فایل‌های PDF را به عنوان بخشی از نقشه‌های DXF رندر کنید.

String srcFile = dataDir + "conic_pyramid.dxf";
Image image = Image.load(srcFile);
// Create an instance of CadRasterizationOptions and set its various properties
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setBackgroundColor(Color.getWhite());
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export the DXF to PDF
image.save(dataDir + "conic_pyramid_out_.pdf", pdfOptions);

صادرات DXF به WMF

این رویکرد به شرح زیر عمل می‌کند:

  1. فایل نقشه DXF را با استفاده از روش کارخانه Image.load بارگذاری کنید.
  2. شیئی از کلاس CadRasterizationOptions ایجاد کرده و فایل‌های PDF را بارگذاری کنید.
  3. ویژگی‌های PageHeight و PageWidth را تنظیم کنید.
  4. متد Image.save را فراخوانی کرده و فایل را ذخیره کنید.

نمونه کد زیر نشان می‌دهد که چگونه DXF را به WMF صادر کنید.

String srcFile = dataDir + "conic_pyramid.dxf";
Image image = Image.load(srcFile);
IfcImage cadImage = (IfcImage)Image.load((dataDir +"example.ifc"));
try
{
{
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(100);
rasterizationOptions.setPageHeight(100);
WmfOptions wmfOptions = new WmfOptions();
cadImage.save(dataDir+" example.ifc.wmf", wmfOptions);
}
}
finally
{
cadImage.dispose();
}
// Export the DXF to PDF
image.save(dataDir + "conic_pyramid_out_.pdf");
}

پشتیبانی از ذخیره فایل‌های DXF

Aspose.CAD قابلیت بارگذاری فایل‌های DXF اتوکد، انجام تغییرات در آن و ذخیره مجدد آن به عنوان یک فایل DXF را فراهم می‌کند. نمونه کد زیر نشان می‌دهد که چگونه الزامات مشخص شده را به دست آورید.

String dataDir = Utils.getDataDir(SaveDXFFiles.class) + "CADConversion/";
String srcFile = dataDir + "conic_pyramid.dxf";
CadImage cadImage = (CadImage)Image.load(srcFile);
cadImage.save(dataDir+"conic.dxf");

صادرات DGN زیرلایه جاسازی‌شده برای فرمت DXF

Aspose.CAD قابلیت بارگذاری فایل‌های DXF اتوکد و صادرات DGN زیرلایه جاسازی‌شده برای فرمت DXF را فراهم می‌کند.

نمونه کد زیر نشان می‌دهد که چگونه الزامات مشخص شده را به دست آورید.

String dataDir = Utils.getDataDir(ExportEmbeddedDGN.class) + "ExportingDGN/";
String fileName = dataDir + "BlockRefDgn.dwg";
com.aspose.cad.Image objImage = com.aspose.cad.Image.load(fileName);
{
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setLayouts(new String[] {"Model"});
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
objImage.save(dataDir + "BlockRefDgn.pdf", pdfOptions);
}

صادرات طرح خاص DXF به PDF

این رویکرد به شرح زیر عمل می‌کند:

  1. فایل نقشه DXF را با استفاده از روش کارخانه Image.load باز کنید.
  2. یک نمونه از CadRasterizationOptions ایجاد کنید و ویژگی‌های PageWidth و PageHeight را مشخص کنید.
  3. نام(های) طرح مورد نظر را با استفاده از ویژگی CadRasterizationOptions.Layouts مشخص کنید.
  4. یک نمونه از PdfOptions ایجاد کنید و ویژگی VectorRasterizationOptions را تنظیم کنید.
  5. نقشه را با استفاده از متد Image.save به PDF صادر کنید.

نمونه کد زیر نشان می‌دهد که چگونه یک طرح خاص از DXF را به PDF تبدیل کنید.

// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java
// The path to the resource directory.
String dataDir = Utils.getDataDir(ExportSpecificDXFLayoutToPDF.class) + "DXFDrawings/";
String srcFile = dataDir + "conic_pyramid.dxf";
Image image = Image.load(srcFile);
// Create an instance of CadRasterizationOptions and set its various properties
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setPageWidth(1600);
rasterizationOptions.setPageHeight(1600);
// Specify desired layout name
rasterizationOptions.setLayouts(new String[] {"Model"});
// Create an instance of PdfOptions
PdfOptions pdfOptions = new PdfOptions();
// Set the VectorRasterizationOptions property
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
// Export the DXF to PDF
image.save(dataDir + "conic_pyramid_layout_out_.pdf", pdfOptions);

دسترسی به اشیاء ATTRIB و MTEXT

این رویکرد به شرح زیر عمل می‌کند:

  1. فایل نقشه DXF را با استفاده از روش کارخانه Image.load باز کنید.
  2. به موجودیت‌های داخل فایل CAD دسترسی پیدا کنید.
  3. بر روی اشیاء CadEntityTypeName.MTEXT و CadEntityTypeName.INSERT چک کنید.
  4. برای پردازش بیشتر به لیست موقت اضافه کنید.
String srcFile = dataDir + "conic_pyramid.dxf";
CadImage cadImage =(CadImage) Image.load(srcFile);
List<CadBaseEntity> mtextList = new ArrayList<CadBaseEntity>();
List<CadBaseEntity> attribList = new ArrayList<CadBaseEntity>();
try
{
for (CadBaseEntity entity : cadImage.getEntities())
{
if (entity.getTypeName() == CadEntityTypeName.MTEXT)
{
mtextList.add(entity);
}
if (entity.getTypeName() == CadEntityTypeName.INSERT)
{
for (CadBaseEntity childObject : entity.getChildObjects())
{
if (childObject.getTypeName() == CadEntityTypeName.ATTRIB)
{
attribList.add(childObject);
}
}
}
}
System.out.println("MText Size: "+ mtextList.size());
System.out.println("Attribute Size: "+ attribList.size());
}
finally
{
cadImage.dispose();
}

تجزیه اشیاء درج CAD

این روش به شرح زیر عمل می‌کند:

  1. فایل DXF را با استفاده از روش کارخانه Image.load باز کنید.
  2. به موجودیت‌های داخل فایل CAD دسترسی پیدا کنید.
  3. به اشیاء CadEntityTypeName.INSERT چک کنید.
  4. به لیست نوع CadBlockEntity چک کنید.
  5. موجودیت‌ها را پردازش کنید.
String srcFile = dataDir + "conic_pyramid.dxf";
CadImage cadImage =(CadImage) Image.load(srcFile);
try
{
for (int i=0; i<cadImage.getEntities().length;i++)
{
if (cadImage.getEntities()[i].getTypeName() == CadEntityTypeName.INSERT)
{
CadBlockEntity block =
(CadBlockEntity)cadImage.getBlockEntities().get_Item(((CadInsertObject)cadImage.getEntities()[i]).getName());
for (CadBaseEntity blockChild : block.getEntities())
{
// process entities
}
}
}
}
finally
{
cadImage.dispose();
}

پشتیبانی از برش بلوک

Aspose.CAD قابلیت برش بلوک را فراهم می‌کند. رویکرد برش بلوک به شرح زیر عمل می‌کند:

  1. فایل نقشه DXF را با استفاده از روش کارخانه Image.load بارگذاری کنید.
  2. شیئی از کلاس CadRasterizationOptions ایجاد کرده و فایل‌های PDF را بارگذاری کنید.
  3. ویژگی‌های مورد نظر CadRasterizationOptions را تنظیم کنید.
  4. متد Image.save را فراخوانی کنید و شیئی از PdfOptions را به عنوان پارامتر دوم ارسال کنید و فایل را ذخیره کنید.

نمونه کد زیر نشان می‌دهد که چگونه برش بلوک عمل می‌کند.

// For complete examples and data files, please go to https://github.com/aspose-cad/Aspose.CAD-for-Java
// The path to the resource directory.
String dataDir = Utils.getDataDir(RenderDXFAsPDF.class) + "DXFDrawings/";
String inputFile = dataDir + "SLS-CW-CD-CE001-R01_blockClip.dxf";
String outputFile = dataDir + "SLS-CW-CD-CE001-R01_blockClip.pdf";
CadImage cadImage = (CadImage)Image.load(inputFile);
Margins margins = new Margins();
margins.setTop(5);
margins.setRight(30);
margins.setBottom(5);
margins.setLeft(30);
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setBackgroundColor(Color.getWhite());
rasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
rasterizationOptions.setPageWidth(1200);
rasterizationOptions.setPageHeight(1600);
rasterizationOptions.setMargins(margins);
rasterizationOptions.setLayouts( new String[] { "Model" } );
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
cadImage.save(outputFile, pdfOptions);

صادرات تصاویر به DXF

با استفاده از Aspose.CAD، می‌توانید تصاویر را به فرمت DXF صادر کنید. با استفاده از این رویکرد، می‌توانید اقدامات زیر را انجام دهید:

  1. تنظیم فونت جدید
  2. پنهان کردن موجودیت‌ها
  3. به‌روزرسانی متن

نمونه کد زیر نشان می‌دهد که چگونه اقدامات ذکر شده را انجام دهید.

// The path to the resource directory.
String dataDir = Utils.getDataDir(RenderDXFAsPDF.class) + "DXFDrawings/";
File[] files = new File(dataDir).listFiles();
for (File file : files) {
String extension = GetFileExtension(file);
if(extension == ".dxf"){
// ****************************
// Set new font per document
// ****************************
CadImage cadImage = (CadImage)Image.load(file.getName());
for (Object style : cadImage.getStyles()) {
// Set font name
((com.aspose.cad.fileformats.cad.cadtables.CadStyleTableObject)style).setPrimaryFontName("Broadway");
}
cadImage.save(file.getName() + "_font.dxf");
// ****************************
// Hide all "straight" lines
// ****************************
CadImage cadImageEntity = (CadImage)Image.load(file.getName());
for (CadBaseEntity entity : cadImageEntity.getEntities()) {
// Make lines invisible
if ((entity.getTypeName() == CadEntityTypeName.LINE)) {
entity.setVisible((short)0);
}
}
cadImageEntity.save(file.getName() + "_lines.dxf");
// ****************************
// Manipulations with text
// ****************************
CadImage cadImageText = (CadImage)Image.load(file.getName());
for (CadBaseEntity entity : cadImageText.getEntities()) {
// Make lines invisible
if ((entity.getTypeName() == CadEntityTypeName.TEXT)) {
((CadText)entity).setDefaultValue("New text here!!! :)");
break;
}
}
cadImageText.save(file.getName() + "_text.dxf");
}//If extension = .dxf
}
private static String GetFileExtension(File file) {
String extension = "";
try {
if (file != null && file.exists()) {
String name = file.getName();
extension = name.substring(name.lastIndexOf("."));
}
} catch (Exception e) {
extension = "";
}
return extension;
}