الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دورة برمجة CAD Programming using C#.net

بدأه عمرو عماد في 27 مارس 2013 · 13 رد · 3,302 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

بسم الله الرحمن الرحيم

إن الحمد لله نحمد ونستعينه ونستغفره ونعوذ بالله من شرور أنفسنا ومن سيئات أعمالنا من يهديه الله فهو المعتد ومن يضلل فلن تجد له وليا مرشدا وأشهد أن لا إله إلا الله وأن محمد عبده ورسوله اللهم صلي وسلم  علي محمد النبي الأمي خاتم الرسل وأفضل الخلق أجمعين.

أما بعد ...

اخوكم مبتدئ في الفيجوال سي شارب .. ولكني كان عندي خلفية كبيرة بـ C++ والفيجوال بيسك والرياضيات ومفاهيم عديدة في المجال البرمجي وهذا كان منذ فترة ليست بالقصيرة .

وقد من الله علي في هذا الوقت أن اقوم بالعودة إلي البرمجة مرة أخري .. فأنا مهتم بتصميم VBA تحت منصة أتوكاد مستخدما اللغة القديمة VB6 لأقوم بتصميم بعض البريمجات الصغيرة التي تفيد في العمل الهندسي وهذا ما حثني علي البدء بتعلم لغة ذات إمكانيات كبيرة بدلا من الدراجة العادية التي اعمل عليها ونويت منذة عدة أشهر الإنتقال إلي الدوت نت ليفيدني في تصميم البرامج الهندسية وبالأخص التي تعمل منصة AutoCAD.

ولكني عانيت معناه شديدة ومازلت في فهم وإستيعاب كل التغير الهائل في هذا البرمجة فكأني بمن عاش سنينا طويلة في كهف ثم خرج ليري السيارات والطائرات والنقود الورقية بدلا من سرة الدنانير التي كنت اتعامل بها..

حقا صعقت لما رأيت هذا الكم من التغير والتنظيم والترتيب .. فقد قدمت مايكروزفت الدوت نت ومكتبات كنت احلم بها قديما بضغطة عددا من الأزرار القليلة عوضا عن العناء الذي كان متبعا من قبل ..

وأجمل ما في الموضوع ترابط اللغات السي والسي شارب والفيجوال بيسك والجافا و و و .. واشعر بأني نتكلم بنفس المفهوم والمكتبات ولكن بلغات مختلفة .. فهنيئا لها مايكروزفت ما صنعت .. هذا خير كبير أتمني نحن العرب إستخدامه وتطويره لما يفيد مجتماعتنا.. فقد من الله علينا أن هناك مجتمعات تنفني اعماراها في إنشاء ما يفيدنا في حياتنا دون عناء لنتفرغ لما هو أهم..

هذه المقدمة الدرامية التي صدعتكم بها لابد منها حتي أبين لمن سيتبع موضوعاتي بإذن الله ما السبب الذي قمت بكتابة مثل هذا الموضوع ..

أتمني من الله عز وجل أكون مؤسس وراعي قسم جديد في منتدي الفريق العربي للبرمجة صاحب الفضل بعد الله عز وجل ثم منتدي فيجوال بيسك للعرب القديم وليس الحالي في أستيعابي الكثير من المفاهيم البرمجية وتكوين تفكيري المنطقي وهناك من الأخوة الذين أثروا فيا تأثيرا إيجابيا أذكر منهم علي سبيل المثال لا الحصر .. أستاذي رغيد الطيب و أستاذنا تركي العسيري والكثير منهم الذين علمونا وبذلوا الوقت والجهد لإنشاء الكتب والشروحات حتي نكون كما رأيتمونا الأن.

فأسأل الله عز وجل أن يجزيهم عنا خير الجزاء وأن يوفقهم الله لما يحبه ويرضاه وأن يكونوا يارب دائما منارة لنا وقلعة علم نقتبس منها كل وقت وحين.

القسم الذي أنا في صدد التحدث عنه وأتمني أن يكون في هذا المنتدي قسما خاص بهذه البرمجة التي لم أجد منتدي عربيا يتكلم فيها هو برمجة برامج تعمل تحت منصة الأتوكاد مستخدمين فيها أي من الثلاث أدوات الأتية :

 

AutoLispVBA.Net Languages (C# , VB )

 

قلما أري من يتكلم في هذا الموضوع وهو موضوع مهم وتطويره سيفيد الكثير من المكاتب والشركات الهندسية في توفير الجهد والوقت والملل.فأهم محور سوف نبني علي دراستنا القادمة هو فهم برنامج الأتوكاد جيدا حتي نتمكن من أستخدام عناصره وخصائصها جيدا في المجال البرمجي.

لمن لا يعرف برنامج الأتوكاد AutoCAD  هو برنامج من إنتاج شركة أتوديسك AutoDesk صاحبة برنامج السري دي ماكث والمايا والعديد من البرامج الهندسية في هذا الشأن وأري أنها منافس قوي لشركة أدوبي في مجال الجرافيك.وإن أخطأ فأرجوا التصحيح من الإخوة الكرام.

وهو برنامج كبير وضخم متخصص في رسم المنشأت الهندسية بدقة منتاهية ومنها المدنية والمعمارية والميكانيكا وكذلك يستطيع الرسم  ثنائي الأبعاد أو ثلاثي الأبعاد ..

بإذن الله تعالي سأحاول جاهدا ولكن علي فترات متفاوتة بدء دورة متكاملة بإذن الله عن برمجة الإتوكاد بإستخدام السي شارب دوت نت .. وأعذروني إن تأخرت في وضع الدروس فأنا أمل من الكتابة والتنسيق .. وأسأل الله عز وجل أن أتم هذا العمل .. ولن أستطيع فعل شئ إلا بنصائح أساتذتي الكرام في هذا المنتدي وحسن التوجيه لأبدأ.

سأقسم دروسي القادمة بإذن الله كالتالي :

  • مقدمة السي شارب (تحتوي علي المتغيرات وجمل أخذ القرار والحلقات والطرق والكلاسس و و )
  • مقدمة الأتوكاد ( كيفية الرسم في الأتوكاد ثنائي الأبعاد)
  • بعض التكنلوجي الخاصة بالسي شارب والتي سوف تفيدنا في برمجة الأتوكاد مثل WCF.

إن كان هذا الموضوع مهم ومفيد للأخوة فأرجوا التأييد وكتابة الإقتراحات للبدء. وأسأل الله عز وجل أن يعينني علي هذا البلاء وأن أستطيع إنهائه.

أما إن غير هذا فأطلب من المشرف مشكورا حذف هذه المشاركة (والحمد لله أن عفيت من هذا الحمل)

 

أعذروني في قواعد اللغة العربية فأنا لست .... والحمد لله :) :) :)

أيضا أن غير متمكن في تنسيق الموضوعا علي المنتديات فهلا من إقتراحات لسهولة التنسيق وأتفرغ لتفكير

تم تعديل هذه المشاركة بواسطة عمرو عماد في 27 مارس 2013 في 15:48

1
#2

صديقي .. إبدأ على بركة الله ... حتى لو لم تجد تفاعلا من الأعضاء الآن ... فبعد فترة قد تجد أن عدد المشاهدات بالمئات بل بالآلاف :rolleyes:  ..  و تجد أن الدورة قد تم نسخها و لصقها في الكثير من المنتديات ... بالنسبة للتنسيق فهو جيد ... لا عليك .. فقط ضع الأكواد ضمن  الوسم  <> في المحرر ..

2

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

ليست مشكلتي الألاف أخي الفاضل .. بل مشكلتي أن يكون الدرس متكامل .. ويكون ورائي مراجع ومصحح نظرا لأني جديد في لغة السي شارب

 

علي أي حال سأقوم سأقوم بوضع أول درس .. ولكن هل أبدأ بشرح السي شارب خطوة خطوة كمان أسير الأن مع نفسي أم أشرح برمجة VBA التي إجيدها

لا أعرف أنا مشوش في إختيار نقطة البداية .. وأيضا لابد أن أتحدث مع شخص يعرف جيدا الأتوكاد .. فهل أشرح أتوكاد أم أشرح البرمجة فقط .. كلها مجرد تسائلات .. حيث أنني قمت بوضع منذ فترة موضوع في المقترحات عن إقتراح فتح باب عن هذ النوع .. وأخبرني المشرف بأن أبدا بوضع الدروس

#4

السلام عليكم ....

بالنسبة لشرح الــ #C  خطوة خطوة .. فاعتقد أنه لا داعي كثيرا للتفصيل و خصوصا أن هناك كتب عربية و مواضيع تشرحها بالتفصيل و كذلك الــ VBA  و لكن لو أحببت يمكنك شرح ما يتيسر لك فلا مشكلة ... يفضل التركيز على الأمور الاختصاصية في الدورة ... أنت صاحب الدورة و لك الحرية في الشرح و التفصيل و الإيجاز ... جزاك الله خيرا ..

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#5

إذا سأقوم بإذن الله بوضع أول درس تفاعلي مع الأتوكاد بإستخدام تطبيق VBA .. ويكون بوابة لفهم مكونات الأتوكاد وربطها بالكود تمهيدا لدخول في الدوت نت

#6
عمرو عماد كتب:

إذا سأقوم بإذن الله بوضع أول درس تفاعلي مع الأتوكاد بإستخدام تطبيق VBA .. ويكون بوابة لفهم مكونات الأتوكاد وربطها بالكود تمهيدا لدخول في الدوت نت

على بركة الله .. جزاك الله خيرا ..

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#7

بسم الله الرحمن الرحيم

الحمد لله وكفي وصلاة وسلاما علي المصطفي محمد صلي الله عليه وسلم

أبدأ بإذن الله أولي دروسي في تعلم برمجة الأتوكاد مستخدما في البداية VBA  حتي نأخذ نظرة عامة بالبئية الجديدة وكيفية التعامل معها مستخدمين كود فيجوال بيسك 6.

المتطلبات :

  1. AutoCAD 2010
  2. CAD2010 VBA Enabler

يجب تنصيب برنامج الأتوكاد ثم تنصيب مترجم الـ VBA  بعد ذلك . حتي نتمكن من إستكمال الدروس القادمة.

الأتوكاد له إصدارات عديدة منها 2000 – 2002 – 2004 – 2005 – 2006 – 2007 – 2008 – 2009 – 2010 – 2011- 2012 – 2013

وكلها متشابه إلا في بعض الإضافات والتقنيات الجديدة في تسهيل الرسم وترتيبه .. وكان إلي الإصدار 2009 يأتي مترجم VBA مدمج بداخل نسخة الأتوكاد . إلا أنه تم فصله إبتداءا من النسخة 2010 وأعتقد الهدف منه التمهيد لإلغاء والإعتماد علي لغتين أساسين هما AutoLisp و الدوت نت. وسيأتي ذكر إن شاء الله الدوت نت في الدروس القادمة بإذن الله أسأل الله العظيم أن يوفقنا لما يحبه ويرضاه.

الدرس الأول :

أهلا ومرحبا بكم في عالمي الخاص برمجة الأتوكاد . الذي ظل حلقة الوصل بيني وبين العالم البرمجي ولم تنقطع صلتي به بفضل الله ثم بفضل VBA.

من المفترض اخي الكريم أنك رساما ماهرا تعرف كيف تدير لوحة هندسية بداخل الصفحة السوداء الموجودة في الصورة التالية . التي ظلت سوداء إلي الإصدار 2008 . حتي قلبت إلي اللون المائل  للإصفرار حتي لا يعطي حالة كئيبة للمستخدم حين فتحه البرنامج. وبما أنني أعتدت علي الكائابة فسأقوم بتغير الصفحة إلي اللون الأسود. هذه مجرد مزحة فاللون الأسود يسمح برؤية أفضل للخطوط ومريح للعين جدا فلا يشع مزيدا من الطاقة بإتجاه العين فأنصحك لو كنت تخاف علي عينك فاجعل الخلفية سوداء.

كما نري الصفحة جميلة جدا وملئية بالقوائم والكلام والأيقونات والصور وتنقسم الواجهة إلي ثلاثة أجزاء رئيسية

 

post-51117-0-65970700-1364459695_thumb.j

الأول : شريط القوائم وشريط الأدوات

الثاني : الحيز الكبير الأسود هو مكان الرسم.

الثالث : شريط الأوامر أو Command Line . وهو بمثابة العصب للرسام.

 

 

الصورة التالية توضح كيفية فتح Visual Basic Editor  لبدء كتابة الكود والتحكم في هذه الصفحة السوداء وكذلك شريط الأدوات والقوائم وأيضا شريط الأومر. كل هذا سيكون ملك يديك بإذن الله ولكن به بعض القصور سوف نعالجه في وقته.

post-51117-0-37973600-1364459779_thumb.j

 

الصفحة التالية توضح شكل محرر الفيجوال بيسك وهو كبير الشبه بالفيحوال بيسك 6 . لمن لا يعرف فيجوال بيسك 6 هو مترجم أصدر وقت إستخدام أشرطة الكاسيت  J . مجرد مزحة لأعبر عن مدي قدم هذه اللغة . لكن مازالت مستخدمة في صورة جديدة الفيجوال بيسك دوت نت.

 

post-51117-0-71137800-1364460019_thumb.j

عموما دعنا من الكلام الكثير وأنظر الصفحة القادمة .

محرر الفيجوال بيسك كما في الصورة يتكون كما في الفيجوال بيسك 6 شريط الأدوات والقوائم ومستعرض المشروع والخصائص ومكان كتابة الكود.

إن وصلت إلي هذه الصفحة فأنا علي يقين بإذن الله أنك تسير في الطريق الصحيح وإلا فتأكد من تنصيب مترجم اللغة أو راجع تنصيب البرنامج مرة أخري أو قم بوضع صورة لمشكلتك وأقوم بمحاولة حلها بإذن الله.

الدرس القادم بإذن الله كتابة أول برنامج بإذن الله ..  :)  :)  :)  :)    HelloWorld  الموجود في بداية كل كتب البرمجة.  :) :) :) :)

تم تعديل هذه المشاركة بواسطة عمرو عماد في 28 مارس 2013 في 11:45

#8

السلام عليكم 

جزاك الله خير انا بدأت اتابع ياريت تكمل باقي الدروس

جعله الله في ميزان حسناتك

#9

ظننت اخي مصطفي انه موضوع غير مفيد للإخوة الموجودين في المنتدي لذي توقفت

عموما سأعود قريبا إن شاء الله ..

 

وهذا نفس الدرس منسق لحين إضافة الدرس الثاني إن شاء الله

 

1.pdf

#10
عمرو عماد كتب:

ظننت اخي مصطفي انه موضوع غير مفيد للإخوة الموجودين في المنتدي لذي توقفت

عموما سأعود قريبا إن شاء الله ..

صديقي إلى الآن 302 مشاهدة للموضوع .. علما أننا لم نكتب أي كود #C  ..ضع الدورة و ارجع بعد عدة شهور فقط .. ستجد عدد مرات تحميل المرفقات بالمئات و المشاهدات بالمئات أو بالآلاف ربما و ستجد الدورة قد تم نسخها لباقي المنتديات (بشرط أن يكون محتواها العلمي جيد) .. :rolleyes:

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#11

أخي وحبيبي وسيدي المشرف Hossam

موضوعي ليس بالهين .. ولكني ظننت أنه غير مهم لأقوم بكتابة دروس جديدة فيه . ولكن إن شاء الله سأخذ بنصحيتك في هذ الشأن

وأنا أردت أن أقوم بكتابة نبذات عن لغات متعددة حتي يستطيع أصحاب اللغات المختلفة التحكم في الأتوكاد .. ولهذا بدأ بالفيجوال بيسك 6 .. حتي يتمكنوا أصحاب الإصدارات القديمة من البرمجة .

 

والقادم إن شاء الله أفضل .. علي أمل أن يتفضل القائمين بالمنتدي فتح قسم خاص بهذه البرمجة فهمي مهمة نوعا ما وغير موجودة بين العرب



ونظرا لأني غير متمكن في التنسيق علي المنتديا سأضع درسي علي هيئة PDF ومنسقة حتي لا أرهق إخواني في القراءة

أسأل الله عز وجل أن يكون هذا العمل خالصا لوجه .. وان يفيد الأخوة والأخوات .. وأي سؤال في هذا الشأن أنا حاضر بإذن الله

 

هذا هو الدرس الثاني عن كتابة أول برنامج وربطه بسطر الأوامر .. والدرس مصور .. وإن شاء الله إن أستطعت فيما بعد تسجيله بالفيديوا .. حتي أفيد أكبر فئة بإذن الله

 



ونظرا لأني غير متمكن في التنسيق علي المنتديا سأضع درسي علي هيئة PDF ومنسقة حتي لا أرهق إخواني في القراءة

أسأل الله عز وجل أن يكون هذا العمل خالصا لوجه .. وان يفيد الأخوة والأخوات .. وأي سؤال في هذا الشأن أنا حاضر بإذن الله

 

هذا هو الدرس الثاني عن كتابة أول برنامج وربطه بسطر الأوامر .. والدرس مصور .. وإن شاء الله إن أستطعت فيما بعد تسجيله بالفيديوا .. حتي أفيد أكبر فئة بإذن الله

 

2.pdf

#12

اضم صوتي لصوتك اخي عمرو بشأن فتح قسم جديد ..

كما ارجو منك عد الاهتمام بالتنسيق المهم هو محتوى المادة العلمية و العملية 

شكرا لك وجزاك الله خير

#13

الدرس الثالث:

أهلا ومرحبا بكم في اللقاء الثالث من دروسي تعلم برمجة الأتوكاد.

في هذا الدرس سوف نبدأ بإذن الله بالتعامل مع العناصر المكونة للرسم بداخل برنامج الأتوكاد وسوف أطلق عليه أسم أوبجكت Object.

في بادئ الأمر يجب أن أنوه أننا سنقوم دائما بالرسم بداخل ModelSpace لذا الذي لا يدري الرسم علي الأتوكاد جيدا لن يستطيع إستكمال هذه الدروس أبدا . فجيب علي المبرمج دراسة البيئة المحيطة التي سوف نقوم بالبرمجة تحت وبيئتنا في هذه الحالة هي الأتوكاد.

  • النقطة AcadPoint :

تحدد النقطة  بثلاث نقاط في الفراغ X , Y , Z وسأهتم بدروسي فقط في حالة نظام ثنائي الأبعاد فقط لذا سوف تكون قيمة الإحداثي Z دائما بصفر.

ولتحديد النقطة يجب علينا تعريف مصفوفة ذات بعد واحد وبطول ثلاثة. حيث الأول يقابل الأحداثي السيني والثاني هو الإحداثي الصادي والثالث هو الإرتفاع عن مستوي الأحداثي الثنائي. أنظر معي كيف سأقوم بتعريف نقطة :

Dim P(2) As DoubleP(0)=1P(1)=1P(2)=0

قمنا بتعريف مصفوفة بطول ثلاثة أسمها P من النوع Double ثم قمنا بوضع الإحداثي السيني بوحدة والإحداثي الصادي بوحدة والإرتفاع صفر . فهذا يعني أن هذه النقطة تقع في المستوي الأفقي.

الأن نريد أن نأمر المترجم برسم هذه النقطة علي صفحة الأتوكاد وهذا سيكون بإستخدام الكود التالي :

ThisDrawing.ModelSpace.AddPoint P()

دالة إضافة النقطة دالة تأخذ مصفوفة بطول ثلاثة فقط وترجع نقطة من النوع AcadPoint ,وإذا أردنا التعديل علي هذه النقطة بعد إضافتها علي صفحة الرسم يجب حملها بمتغير فسنقوم بتعديل سطر إضافة النقطة إلي التالي

Dim NewPoint as AcadPoint
Set NewPoint =ThisDrawing.ModelSpace.AddPoint P()

سيأتي إن شاء الله ذكر الخصائص في وقتها بإذن الله . لكن دعونا الأن ننتقل إلي عنصر جديد ألا وهو

  • القطعة المستقيمة AcadLine :

كما نعلم جميعا أن القطعة المستقيمة تحدد بنقطتين البداية والنهاية . لذا سوف نقوم بتعريف نقطتين كما قمنا سابقا ثم نستخدم دالة رسم القطعة المستقيمة كما يلي :

Dim S(0 To 2) As Double
Dim E(0 To 2)  As Double
Dim NewLine as AcadLine
S(0)=1 :S(1)=1 :S(2)=0
E(0)=10 :E(1)=10 :E(2)=0
Set NewLine = ThisDrawing.ModelSpace.AddLine(S, E(

 

فالبراميتر الأول عبارة عن بداية القطعة المستقيمة والثاني عبارة عن نهاية القطعة المستقيمة. الموضوع بسيط كما ترون لا يحتاج عناء ولا تفكير ولا جهد .. يمكننا الان تحديد الكثير من النقاط ورسم العديد من الأشكال بإستخدام القطعة المستقيمة.

  • الدائرة AcadCircle  :

كما نعلم أن الدائرة تحدد بنقطة مركزها وطول نصف قطرها إذا يتوجب علينا تحديد متغيرين أحدهما مصفوفة نقطة المركز والأخر طول نصف القطر كما يلي :

Dim C(0 To 2)  As Double
Dim Radius As Double
Dim NewCircle as AcadCircle
C(0)=1 :C(1)=1 :C(2)=0
Radius=10
Set NewCircle = ThisDrawing.ModelSpace.AddCircle(C, Reduis)

أرجوا ممن يهتمون بهذه الدروس ممارسة ما ذكرته سابقا لأني سوف أنتقل إلي جزء من العناصر مركب علي ماسبق وموعدنا في الدرس القادم مع رسم  AcadArc – AcadPolyline

 

وهذا الدرسة بصيغة PDF

3.pdf

By Amr EmadAmremad_world@yahoo.com   2013-04-22
#14

استمر و لا تتوقف !!!

الدرس جداً مهم لي شخصياً كوني أدرس الهندسة المدنية, و أريد إنشاء تطبيقات هندسية عديدة باستخدام الأوتوكاد !!!

 

قد أعتذر عن المتابعة بشكل يومي! لكني أعدك أنك سترى أول برنامج يعتمد هذه المكتبة فور انتهاء الدورة ان شاء الله!

مواضيع مشابهة