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

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





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


شاطر
 

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

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

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

تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 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


_________________
تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2: Aaa11
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://magdi54.forumegypt.net
 
تطبيقات برمجة إكسل - التطبيق الثاني - إضافة تابع حساب تسليح مقطع 2:
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

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