الاستاذ مجدى
تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2: 613623
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2: 829894
ادارة المنتدي تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2: 103798

تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2: Uoou_u10


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



 
الرئيسيةالأستاذ التعليمأحدث الصورضع التسجيلدخولالتسجيل
سبحانك لا علم لنا إلا ما علمتنا أنك أنت العليم
عزيزى الزائر قم بالتسجيل بالمنتدى لمشاهدة باقى الاقسام المهمه
مع تحيات مجدى عبد المنعم محمود يونس ببورسعيد " مدير المنتدى "
أهلا بك من جديد يا زائر آخر زيارة لك كانت في الخميس يناير 01, 1970
آخر عضو مسجل Heliany فمرحبا به


 

 تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2:

اذهب الى الأسفل 
2 مشترك
كاتب الموضوعرسالة
مجدى يونس
Admin
مجدى يونس


عدد المساهمات : 3773
تاريخ التسجيل : 22/02/2013
العمر : 69

تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2: Empty
مُساهمةموضوع: تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2:   تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2: Avatarالإثنين ديسمبر 02, 2013 2:50 pm

تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2:

هذا التطبيق هو تتمة للتطبيق الأول، وتم نشرهما سابقاً مع الدرس الخامس في ملتقى المهندسين العرب في موضوع واحد.
المستوى

مبتدئ

مقدمة

تعلمنا في التطبيق السابق كيف نقوم بكتابة تابع لحساب تسليح مقطع مستطيل خاضع لعزم حدي مصعد بحسب معطيات الكود العربي السوري، بتسليح شد فقط، وقمنا بشرح طريقة الحساب نظرياً.

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

معرفة بسيطة بلغة Visual Basic أي (VB).
معرفة باستخدام أوامر إكسل الأساسية.
يفضل أن تكون مهندساً مدنياً أو طالباً في الهندسة المدنية لفهم العلاقات المستخدمة.
قراءة الدرس الخامس وما سبقه.
قراءة التطبيق الأول مع علاقات التصميم النظرية فيه.

تعديل التابع الذي تمت كتابته في التطبيق السابق

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

Public Function RectMomentLimit2(Mu As Single, B As Single, d As Single, _
d1 As Single, fy As Single, fc As Single) As Single()

أما التعديل الثاني فهو لحساب التسليح الثنائي، أي إضافة برنامج حساب التسليح الثنائي عندما يكون تسليح الشد الناتج سابقاً أكبر من التسليح الأعظمي (في التطبيق السابق أعدنا القيمة -1 وهنا سنقوم بالتعديل):

If tAs < As_min Then
tAs = As_min
ElseIf tAs > As_max Then
Dim Mu1 As Single
alpha = mu_max * fy / (0.85 * fc)
gamma = 1 - alpha / 2
Mu1 = OMEGA * As_max * fy * gamma * d

cAs = (Mu - Mu1) / (OMEGA * fy * (d - d1))
tAs = As_max + cAs
If tAs > 1.5 * As_max Then
tAs = -1: cAs = -1
End If
End If

قمنا أولاً بحساب العزم Mu1 الذي يتحمله المقطع إذا قمنا بتسليحه تسليحاً أحادياً أعظمياً، ثم حسبنا تسليح الضغط cAs ثم حسبنا تسليح الشد النهائي tAs كما هو موضح في العلاقات الموضحة في التطبيق السابق.

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

حتى هذه النقطة حصلنا على قيمة تسليح الضغط في المتحول cAs وقيمة تسليح الشد في المتحول tAs.

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

Dim result(0, 0 To 1) As Single
result(0, 0) = tAs
result(0, 1) = cAs
RectMomentLimit2 = result

التابع كاملاً أصبح كما يلي:

Public Function RectMomentLimit2(Mu As Single, B As Single, d As Single, _
d1 As Single, fy As Single, fc As Single) As Single()
Dim OMEGA As Single: OMEGA = 0.9

Dim mu_min As Single, mu_max As Single
Dim As_min As Single, As_max As Single

mu_min = 0.9 / fy
mu_max = 0.5 * 455 / (630 + fy) * fc / fy

As_min = mu_min * B * d: As_max = mu_max * B * d

Dim A0 As Single, alpha As Single, gamma As Single
Dim tAs As Single, cAs As Single

A0 = Mu / (OMEGA * B * d ^ 2 * 0.85 * fc)
alpha = 1 - Sqr(1 - 2 * A0)
gamma = 1 - alpha / 2
tAs = Mu / (OMEGA * gamma * d * fy)

If tAs < As_min Then
'حالة التسليح الأصغري
tAs = As_min
ElseIf tAs > As_max Then
'حالة التسليح الثنائي
Dim Mu1 As Single
alpha = mu_max * fy / (0.85 * fc)
gamma = 1 - alpha / 2
Mu1 = OMEGA * As_max * fy * gamma * d

cAs = (Mu - Mu1) / (OMEGA * fy * (d - d1))
tAs = As_max + cAs
If tAs > 1.5 * As_max Then
'المقطع صغير ولا يتحمل العزم
tAs = -1: cAs = -1
End If
End If

Dim result(0, 0 To 1) As Single
result(0, 0) = tAs
result(0, 1) = cAs
RectMomentLimit2 = result
End Function

لاستخدامه نعود إلى ملف إكسل السابق (الذي صممناه في التطبيق السابق)، ونختار المجال D7:E7 المكون من خليتين على سطر واحد ثم نكتب المعادلة التالية:

=RectMomentLimit2(B7;$B$2;$D$2;$B$3;$B$1;$D$1)

تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2: Figure-ex-02-01

الشكل (1): إدراج المعادلة بعد اختيار المجال D7:E7 وهو عبارة عن خليتين

ثم نضغط Ctrl+Shift+Enter ونعيد نفس الخطوات لبقية الأسطر (أو ننسخ هاتين الخليتين إلى بقية الأسطر) فنحصل على صفحة النتائج التالية:

تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2: Figure-ex-02-02

الشكل (2): النتائج النهائية

إن تسليح العزم 13 كن.م هو تسليح أصغري، أما العزم 60 كن.م فتسليحه حسابي، وهي نفس نتائج التابع السابق.

نلاحظ أن تسليح المقطع على العزم 128 كن.م هو تسليح ثنائي، أما العزم 200 كن.م فلا يمكن تحمله ويجب تغيير أبعاد المقطع.
خاتمة

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

http://www.jwdstructure.com/downloads/vba/excel-exercise02.zip

الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://magdi54.forumegypt.net
bnnami




عدد المساهمات : 79
تاريخ التسجيل : 01/08/2022

تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2: Empty
مُساهمةموضوع: رد: تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2:   تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2: Avatarالسبت أغسطس 13, 2022 6:41 am

جزاك الله خيرا وبوركت مجهوداتك
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2:
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» تطبيقات برمجة إكسل - التطبيق الأول - إضافة تابع حساب تسليح مقطع 1:
» برمجة إكسل - الدرس الخامس - إضافة تابع مخصص 2:
» برمجة إكسل - الدرس الرابع - إضافة تابع مخصص 1:
» برمجة إكسل - الدرس الثاني - التعرف على الماكرو:
» برمجة إكسل - الدرس الثالث - التعرف على بيئة برمجة VBA:

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
الاستاذ مجدى :: قسم مجموعة الاوفيس :: قسم الاكسل-
انتقل الى: