![]() |
كود لقراءة ملفات DXF بواسطة لغة #C |
يمكن الاستفادة من الكود أدناه في ترجمة نصوص DXF وقراءتها بواسطة التطبيقات المطورة بلغة #C
try
{
TextReader r = new StreamReader(أسم الملف);
string g = r.ReadToEnd();
int last = g.LastIndexOf("AcDbLine");
int a = g.IndexOf("AcDbBlockBegin");
string p1 = g.Substring(a);
int count = 0;
int counter = 0;
while (counter < last)
{
Try
{
p1 = p1.Substring(counter);
int b = p1.IndexOf("AcDbLine");
string p2 = p1.Substring(b);
مجموع أحرف كلمة AcDbline هو ثمانية //
string g5 = p2.Substring(8);
int nnn10 = g5.IndexOf(" 10");
string nn10 = g5.Substring(nnn10 + 3);
int nnn10n = nn10.IndexOf(".");
string test = g5.Substring(nnn10 + 5, nnn10n + 2);
x[count] = Convert.ToDouble(g5.Substring(nnn10 + 5, nnn10n + 2));
listBox1.Items.Add(x[count]);
يستخدم الكود أعلاه لقراءة نص DXF الذي يتكون من مقاطع عديدة تتمثل فيها كل نقطة بالمخطط بالكود الاتي:
AcDbLine
10
1433.260800051317
20
396.7336593840455
30
0.0
11
1597.170766689316
21
1133.845501609716
31
0.0
0
LINE
10
1433.260800051317
20
396.7336593840455
30
0.0
11
1597.170766689316
21
1133.845501609716
31
0.0
0
LINE
ويبتدئ البلوك الواحد من الكود بعبارة AcDbBlockBegin فيقوم البرنامج اولا بتحديد اخر مقطع entity يبدأ بـ Acdbline وأول مقطع يبدأ بـ AcDbBlockBegin ثم وبإستخدام العداد يقوم البرنامج بالمضي نزولا طالما أن العداد ما زال دون قيمة النهاية التي تم تحديدها بالبداية.
وبطرق الاقتطاع والبحث في لغة #C یقوم البرنامج بتحديد كافة المقاطع وخزن كافة النقاط في مصفوفات X و Y و Z.
ليست هناك تعليقات:
إرسال تعليق