DWG تحتوي ملفات الرسم على بيانات تصميم ثنائية الأبعاد أو ثلاثية الأبعاد. يستخدم على نطاق واسع من قبل المصممين والمهندسين والمهندسين المعماريين. في سيناريوهات معينة ، قد تحتاج إلى العثور على بعض النصوص في ملف DWG. وفقًا لذلك ، تتناول هذه المقالة كيفية البحث عن نص في ملف DWG برمجيًا في C#.
- البحث عن نص في ملف رسم DWG - تكوين C# API
- كيفية البحث عن نص في ملف DWG باستخدام C#
- نص البحث في ملف رسم DWG في C#
البحث عن نص في ملف رسم DWG - تكوين C# API
Aspose.CAD for .NET يدعم إنشاء أو معالجة رسومات CAD مختلفة مثل DWG و DXF والعديد من تنسيقات الملفات. يمكنك بسهولة إعداد API عن طريق تنزيل ملفات DLL من قسم التنزيلات أو تشغيل أمر التثبيت NuGet التالي:
PM> Install-Package Aspose.CAD
كيفية البحث عن نص في ملف DWG باستخدام C#
توضح الخطوات التالية كيفية البحث عن نص في ملف DWG باستخدام C#:
- قم بتحميل ملف DWG موجود.
- البحث عن نص من خلال التكرار من خلال كيانات النص التشريعي.
- ابحث عن نص في تخطيط معين.
- قم بتصدير الملف إلى تنسيق PDF.
نص البحث في ملف رسم DWG في C#
تحتاج إلى اتباع الخطوات أدناه للبحث عن نص في ملف DWG باستخدام C#:
- قم بتحميل ملف DWG موجود بفئة CadImage.
- ابحث عن النص عن طريق التكرار من خلال CadText الكيانات.
- ابحث عن نص في تخطيط محدد.
- قم بتصدير الملف إلى تنسيق PDF.
يوضح نموذج التعليمات البرمجية أدناه كيفية البحث عن نص في ملف DWG باستخدام C#:
// قم بتحميل ملف DWG موجود كـ CadImage.
using (CadImage cadImage = (CadImage)Aspose.CAD.Image.Load(sourceFilePath))
{
// ابحث عن نص في الملف
foreach (CadBaseEntity entity in cadImage.Entities)
{
// نقوم بالتكرار من خلال كيانات CadText ، ولكن قد تحتوي بعض الكيانات الأخرى على نص أيضًا ، مثل CadMText وغيرها
IterateCADNodes(entity);
}
// ابحث عن نص في تخطيط معين احصل على جميع أسماء التخطيطات وقم بربط كل تخطيط بالكتلة المقابلة بالكيانات
CadLayoutDictionary layouts = cadImage.Layouts;
string[] layoutNames = new string[layouts.Count];
int i = 0;
foreach (CadLayout layout in layouts.Values)
{
layoutNames[i++] = layout.LayoutName;
System.Console.WriteLine("Layout " + layout.LayoutName + " is found");
// البحث عن كتلة ، ينطبق على DWG فقط
CadBlockTableObject blockTableObjectReference = null;
foreach (CadBlockTableObject tableObject in cadImage.BlocksTables)
{
if (string.Equals(tableObject.HardPointerToLayout, layout.ObjectHandle))
{
blockTableObjectReference = tableObject;
break;
}
}
if (blockTableObjectReference != null)
{
// جمع cadBlockEntity.Entity.Entity يحتوي على معلومات حول جميع الكيانات في تخطيط معين
CadBlockEntity cadBlockEntity = cadImage.BlockEntities[blockTableObjectReference.BlockName];
}
}
// تصدير إلى PDF
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.PageWidth = 1600;
rasterizationOptions.PageHeight = 1600;
rasterizationOptions.AutomaticLayoutsScaling = true;
// إذا كانت مجموعة cadBlockEntity للتخطيط المحدد أو مجموعة الكياناتOnLayouts بواسطة BlockTableRecordHandle للتخطيط (لـ dxf) فارغة
rasterizationOptions.Layouts = new[] { "Layout1" };
ImageOptions.PdfOptions pdfOptions = new PdfOptions();
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
cadImage.Save("SearchText_CAD.pdf", pdfOptions);
}
public static void SearchTextInDWGAutoCADFile()
{
// المسار إلى دليل المستندات.
string sourceFilePath = "search.dwg";
// قم بتحميل ملف DWG موجود كـ CadImage.
CadImage cadImage = (CadImage)Aspose.CAD.Image.Load(sourceFilePath);
// ابحث عن نص في قسم الكيانات
foreach (var entity in cadImage.Entities)
{
IterateCADNodes(entity);
}
// ابحث عن نص في قسم الحظر
foreach (CadBlockEntity blockEntity in cadImage.BlockEntities.Values)
{
foreach (var entity in blockEntity.Entities)
{
IterateCADNodes(entity);
}
}
}
private static void IterateCADNodes(CadBaseEntity obj)
{
switch (obj.TypeName)
{
case CadEntityTypeName.TEXT:
CadText childObjectText = (CadText)obj;
Console.WriteLine(childObjectText.DefaultValue);
break;
case CadEntityTypeName.MTEXT:
CadMText childObjectMText = (CadMText)obj;
Console.WriteLine(childObjectMText.Text);
break;
case CadEntityTypeName.INSERT:
CadInsertObject childInsertObject = (CadInsertObject)obj;
foreach (var tempobj in childInsertObject.ChildObjects)
{
IterateCADNodes(tempobj);
}
break;
case CadEntityTypeName.ATTDEF:
CadAttDef attDef = (CadAttDef)obj;
Console.WriteLine(attDef.DefaultString);
break;
case CadEntityTypeName.ATTRIB:
CadAttrib attAttrib = (CadAttrib)obj;
Console.WriteLine(attAttrib.DefaultText);
break;
}
}
احصل على رخصة مؤقتة مجانية
يمكنك اختبار ميزات واجهة برمجة التطبيقات بدون أي قيود تقييمية عن طريق طلب ترخيص مؤقت مجاني.
استنتاج
في هذه المقالة ، تعلمت كيفية البحث عن نص في ملف DWG برمجيًا في C#. علاوة على ذلك ، يمكنك استكشاف الميزات المختلفة لواجهة برمجة التطبيقات من خلال إلقاء نظرة على قسم التوثيق. في حالة وجود أي مخاوف ، يرجى مراسلتنا على المنتدى.