Yük kombinasyonu oluşturucusunun en son güncellemesinde, modülün iç işleyişini basitleştirdik ve aşağıdaki işlevleri ekledik:
- Yük birleşimi oluşturma tek bir .json dosyasıyla tanımlanır (Şema) her standart için.
- Yük grupları ve kombinasyonları, önce S3D modelleme alanında yük atamaya gerek kalmadan oluşturulabilir.
- Desenler, eskilere dayanan “Rüzgar Yüklerini Genişletin” Yapının burkulma şekli çizilir ve burkulma yükü faktörü hakkında sizi bilgilendirmek için bir açılır pencere belirir., artık herhangi bir yük durumuyla çalışın.
İsimlendirme
Yük kombinasyonu oluşturucunun son versiyonunda, birçok şey için kullanılan yük durumu adı:
- Benzersiz bir kimlik olarak hareket edin.
- Yük arasında ayrım yapın süper durumda ve çatı yüzeyinin altındaki engel, ve her zaman her birinde bir değer gerektirir (gibi tuhaf olanlara yol açıyor Ölü: ölü).
- İnsanlar tarafından okunabilir kal, kelimeleri daraltarak açılır menüler için yeterince küçük kalır (Canlı: Q-dist-çatı katı).
En son güncellemede, yük durumu adlarını şu şekilde ayırdık: semboller, kompakttır ve alanın sınırlı olduğu durumlarda kullanılır (örneğin yük kombinasyonlarını adlandırırken: 1.25D1 + 1.5La + 1.5Ld + 0.5Sl + 0.5T), ve etiketler, açıklayıcı olacak (örneğin açılır menülerde kullanılır). İkisi birden semboller ve etiketler Belirli bir standart dahilinde benzersiz olması gerekecek. Biz de izin vereceğiz Hindistan konumlarına girin yükle aynı isimde olmak süper durumda, genellikle varsayılan yükleme durumu için (en sık kullanılan). Yukarıda kullanılan iki örnek şu şekilde bölünecektir:
{"D": "Ölü"}
{“Ldr”: "Canlı - Konsantre, Çatılar, Zemin"}
NS sembol en az bir büyük harften oluşmalıdır, süper durumu tanımlayan. NS süper durumda yeni bir kavramdır, Genellikle birlikte hareket eden benzer yük durumlarını gruplamak için kullanılır. NS süper durumda etiket, yük durumu etiketinin başlangıcında verilir (çizgiden önce). Yukarıdaki örnekte (Eurocode) Ldr yük durumu L süper durumunun bir parçası olacaktır (etikette Live olarak adlandırıldı), Ldd ve Ldo gibi diğer yük durumlarının yanı sıra. Kamera ARKASI, NS süper durumda esas olarak filtreleme kurallarını uygulamak için kullanılır, yani hangi şema satırlarının tutulması ve hangilerinin kaldırılması gerektiğini belirlemek.

Etiketin ilk kısmı (çizgiden önce) adı nedir süper durumda. İkinci bölüm bir açıklamadır, kategorileri alt kategorilerden ayırmak için virgül kullanma. İkinci kısım isteğe bağlıdır, ancak yalnızca bir yük durumu varsayılanı alabilir süper durumda leke.
Standart Şemalar satırları
Her standardın bir şema bu standart için olası tüm yük kombinasyonlarını tamamen tanımlayan. NS Schema.json dosya oldukça basit, ama oldukça uzun olabilir, özellikle standartlarda (Eurokod gibi) çok sayıda permütasyon gerektiren. Basit bir örnek almak gerekirse, aşağıdaki örnek gereksinimi alın.
1.2*D + 1.5*L + (0.5*S veya 0,5*W veya 0,5*T)
Bunu bizimkine dönüştürmek için şema, onu olası her permütasyona ayırmamız gerekiyor:
1.2*D + 1.5*L 1.2*D + 1.5*L + 0.5*S 1.2*D + 1.5*L + 0.5*W 1.2*D + 1.5*L + 0.5*T 1.2*D + 1.5*L + 0.5*S + 0.5*W 1.2*D + 1.5*L + 0.5*W + 0.5*T 1.2*D + 1.5*L + 0.5*T + 0.5*S 1.2*D + 1.5*L + 0.5*S + 0.5*W + 0.5*T
Her yük kombinasyonu bu şekilde listelendiğinde, bu adımları izleyerek şemayı oluşturabilirsiniz:
- Bir şema satırı nesnesi oluşturmak için her yük durumu anahtarını ve katsayısını kullanın.
- Her satırı benzersiz bir tanımlayıcıyla adlandırın (çünkü bu bir nesne olacak). Kural, adın farklı öğelerini ayırmak için kısa çizgi kullanmaktır.
- Bir seviye yukarı, satırları ölçütlere göre gruplandırın (gücü, kullanışlılık, tesadüfi, vb.)
Nihai sonuç şöyle görünmeli:
"satırlar": {
"gücü":{
"A-1-u": {"D": 1.40},
"A-2a-u":{"D": 1.25, "L": 1.50, "L": 1.50},
"A-2b-u":{"D": 1.25, "L": 1.50, "L": 1.50, "S": 1.00},
"A-2c-u":{"D": 1.25, "S": 1.50, "W": 0.40},
"A-3a-u":{"D": 1.25, "S": 1.50}
}
}
Yük Kombinasyonu oluşturma algoritması
Algoritma, son yük birleşimi nesnesini oluşturmak için birkaç adımdan geçer:
- NS şema yukarıda tanımlandığı gibi gereklidir. Ana yük kombinasyonu oluşturma fonksiyonuna aktarılacaktır..
- sayısını gruplamak için bir nesne oluşturulur. Hindistan konumlarına girin tarafından model. Örneğin, aşağıdaki yükleme durumları için bir talebi inceleyelim:
2 Ölü yük durumu, birleştirme modeliyle 4 Rüzgar yükü durumları, bireysel bir desenle 1 Kar yükü durumları, bireysel bir desenle 2 Ölü yük durumları, birleştirme modeliyle
Gruplandırma desenler tarafından çatı yüzeyinin altındaki engel aşağıdaki nesneyi verecek, ana yük kombinasyonu oluşturma fonksiyonuna aktarılacak.
input_by_case =
{
"D": {"birleştirmek": [2, 2], "bireysel": []},
"W": {"birleştirmek": [], "bireysel": [4]},
"S": {"birleştirmek": [], "bireysel": [1]}
}
- Son iki argüman filtreleme nesneleridir, filtrelemeye izin veren kriterler veya şema anahtarıyla.
- Gerekli tüm argümanlara sahip olduktan sonra, ana yük kombinasyonu oluşturma fonksiyonu çağrılır. Bu işlev, gerekli her kombinasyonu oluşturmak için birden fazla iç içe geçmiş döngüden geçer, aşağıdaki maddelerde açıklananlar, ve sonraki şekilde gösterilmiştir.
- En üst düzeyde, şema satırları arasında döngü yapar. Bu adımda her satırın tutulması mı yoksa atlanması mı gerektiği kontrol edilir., aşağıdaki bölümde açıklanan filtreleme nesnelerini ve özel mantığı kullanarak.
- İlk döngünün içine ikinci bir döngü yerleştirilmiştir, talep edilenlerin her biri arasında döngü yapan çatı yüzeyinin altındaki engel şema satırında. Eğer talep edilirse çatı yüzeyinin altındaki engel şema satırı da mevcut (istekler input_by_case nesnesinde özetlenir), sonra bir sonraki seviyeye geçiyoruz.
- İkinci döngünün içine üçüncü bir döngü yerleştirilmiştir, her olası döngüden geçen model içlerinde oluşturulacak yük grupları olup olmadığını görmek için, ve bunu yaptıklarında bunları adlandırmak ve oluşturmak için işlevi çalıştırır.
- Şema satırındaki tüm yükleme durumları oluşturulup adlandırıldıktan sonra, yeniden birleşiyorlar (katsayılarının yanı sıra) bir veya daha fazla yük kombinasyonuna.

- Bu işlem şemanın her satırı için tekrarlanır, oluşturulan tüm yük kombinasyonlarını son yük kombinasyonu nesnesine itmek.
Kalıplarla ilgili tüm mantığın tek bir şema satırı içinde gerçekleşmesinin hiçbir önemi yoktur.. Bunu bilmek kalıpların davranışını anlamak açısından önemlidir.. Birleştirme modeli, Örneğin, atandığı yük durumu dışında herhangi bir şeyin birleştirilmesine izin vermez. Bu, yapamayacağınız anlamına gelir:
- Farklı yük durumlarını bir araya getirin, D1 ve L1 yük gruplarını birleştirmeye çalışmak gibi.
- Giriş tablosunun farklı satırlarındaki aynı yük durumlarını birleştirin. Örneğin, Maddede verilen örnekte #2 yukarıda, üretmemiz isteniyor 2 iki ayrı satırda birleştirme modelini kullanan ölü yükler. Nihai sonuç kombinasyonları daha sonra şunun gibi görünecektir:
1.2*D1 + 1.2*D2 + 1.5*L 1.2*D3 + 1.2*D4 + 1.5*L 1.2*D1 + 1.2*D2 + 1.5*L + 0.5*S 1.2*D3 + 1.2*D4 + 1.5*L + 0.5*S 1.2*D1 + 1.2*D2 + 1.5*L + 0.5*W 1.2*D3 + 1.2*D4 + 1.5*L + 0.5*T
Gereksiz yük kombinasyonlarını otomatik filtreleme
Yukarıdaki algoritma herhangi bir filtreleme olmadan işlevsel olsa da, gereksiz yük kombinasyonlarına yol açabilir, bu da ekstra hesaplama süresine ve gereksiz sonuçlara yol açar. Aşağıdaki yük kombinasyonlarını alın:
1.2*D + 1.5*L 1.2*D + 1.5*L + 0.5*S 1.2*D + 1.5*L + 0.5*W 1.2*D + 1.5*L + 0.5*T
Tek bir ölü yük durumumuz varsa, bu dört yük kombinasyonu aynı yük kombinasyonlarıyla sonuçlanacaktır:
1.2*D
1.2*D
1.2*D
1.2*D
Bu durumdan kaçınmak için, her biri bazı küçük istisnalar içeren dört kural kullanılır. İlk, kurallara bir göz atalım. Varsayılan durum, kombinasyonun saklanması içindir ve kurallar, hangisinin hariç tutulacağını belirlemek için kullanılır..
Kriterlere göre filtreleme
Bu vaka oldukça açıklayıcıdır. Eğer kriterler talep edilmedi, bununla ilişkili tüm şema satırları kriterler atılır.
Şema anahtarındaki karakterlere göre filtreleme
Şema anahtarları genellikle orijinal referansa yönelik virgülle ayrılmış işaretçilerdir. Örneğin, aşağıdaki NBCC örneğinde, anahtarın üç bileşeni var:
- Bir: İlk terim genellikle ana referanstır, yüklerin bu kısmının alındığı tabloya bakın.
- 2b: İkinci terim genellikle tablonun içindeki yük kombinasyonu için benzersiz bir tanımlayıcıdır..
- sen: Üçüncü terim genellikle çok sayıda yük kombinasyonunun hafif bir değişiklikle değiştirildiğini belirtmek için ayrılmıştır.. Örneğin, yük kombinasyonundaki ölü yüklerin uygun olup olmadığını gösterebilir ( f ) veya olumsuz ( sen ).
{
"gücü":{
"A-2b-u":{"D": 1.25, "L": 1.50, "L": 1.50, "S": 1.00},
}
}
Şema anahtarında filtreleme bu terimlerden herhangi biri için yapılabilir. Örneğin, üçüncü terime göre filtrelemek istiyorsak, aşağıdaki filtreyi ekleyebiliriz, bu terim için bir filtreleme açılır menüsü oluşturulacak:
"name_filters": {
"Avustralya ve Yeni Zelanda'da": {
"Ölü Yük": {
"durum": 2,
"ipucu": "",
"öğeler": {
"uygun": "f",
"Olumsuz": "sen"
},
"varsayılanlar": ["uygun", "Olumsuz"]
}
}
}
Olası tüm açılır adlar ve ilgili terimler "öğeler" altında listelenmelidir. Yalnızca eşleşen sembollere sahip şema satırları tutulacaktır. Filtreye girilenlerden bağımsız olarak bir şema satırının tutulması gerekiyorsa, terim boş bırakılabilir. Eşleşen açılır liste terimlerinin tümünü içermeyen şema anahtarları atılacak.
Yedekli kombinasyonlar
Bir şema satırı ilk iki adımda filtrelenmezse, üçüncü adıma geçiyor. Bu adımda, Yukarıdaki örnekteki fazlalık sorunu giderildi. Bunu yapmak için, aynı anda iki nesneye bakmamız gerekiyor, şema satırı ve sıralanmış input_by_case nesnesi (yukarıdaki açıklamaya bakın), hangi yük durumlarının talep edildiğini açıklar. Şema satırı, input_by_case nesnesinin içermediği herhangi bir süper harf içeriyorsa, yük kombinasyonu kaldırıldı. Almak, Örneğin, aşağıdaki şema satırı:
"A-2a-u":{"D": 1.25, "L": 1.50, "S": 1.50}
ve aşağıdaki input_by_case nesnesi:
input_by_case =
{
"D": {"birleştirmek": [], "bireysel": [1]},
"L": {"birleştirmek": [], "bireysel": [4]}
}
Bu örnekte, şema satırı şunları içerir: süper durumda Talep edilmeyen S. Bu satırı tutmak, aşağıdaki şema satırıyla ilişkili yük kombinasyonuyla aynı olan bir yük kombinasyonuna yol açacaktır., yani kaldırıldı.
"A-1a-u":{"D": 1.25, "L": 1.50}
İstisnalar
Bu davranış genellikle arzu edilir olsa da, Yük durumu yokken bir satırın silinmemesinin çok daha basit bir şemaya yol açtığı durumlar vardır. Örneğin, her şema kombinasyonuna eklenmesi gereken yatay toprak yüklerimiz varsa, ama her zaman mevcut değil, yatay toprak yükleri için tüm yük kombinasyonlarını kopyalayıp yapıştırabilir ve yeni satırların şema anahtarını “h” gibi bir sonekle değiştirebiliriz.. Alternatif olarak, yatay toprak yükünü tüm durumlara ekleyebilir ve meta verilerdeki yük durumuna bir tutma istisnası ekleyebiliriz. bu şekilde, yük durumu talep edilmezse, ortaya çıkmayacak, ancak sıra yine de tutulacak. Sonuç, şemanın meta özelliğinde buna benzer bir şeye benziyor:
"H": {
"etiket": "Yan toprak - Olumsuz",
"rütbe": 1,
"istisnalar": ["kale"],
"eski_etiketler": []
},
Gereksiz kombinasyonlar
Bir şema satırı ilk üç adımda filtrelenmezse, dördüncü adıma geçiyor. Bu adımda, şema ile istenen şey arasındaki belirli yük durumlarının eşleştirilmesi sorunu. Bir şema satırı ve bir isteğin eşleşen süper durumları varsa, ancak istenen özel yük durumu şemada yok, sıra tutulmayacak. Almak, Örneğin, aşağıdaki şema satırı:
"A-2a-u":{"D": 1.25, "Sl": 1.50}
ve aşağıdaki input_by_case:
input_by_case =
{
"D": {"birleştirmek": [], "bireysel": [1]},
"Ş": {"birleştirmek": [], "bireysel": [1]}
}
Bu örnekte, hem şema satırında hem de istekte eşleşen süper durumlar var. ancak, istek Sh ile bir kombinasyon gerektirir, şema satırının sağlamadığı. Böylece, şema satırı saklanmıyor.
İstisnalar
Bir kez daha, bu davranış genellikle arzu edilir, ancak sorunlara yol açabilir. Böyle bir sorun, standartların bir süper durumu paylaşan yük durumlarına sahip olmasıdır., ama aynı anda hareket etmeyin. Örneğin, ASCE'de, rüzgar yükleri W ve kasırga yükleri Wt aynı anda etki etmez, aynı süper durum W'yi paylaşmalarına rağmen. Bu problemle karşılaştığımızda, diğerine geçmek için bir istisna ekleyebiliriz süper durumda kod meta verilerde çalıştırılmadan önce. Kamera ARKASI, aşağıdaki sembol “->” karakterler yükleme durumuna atfedilecek, bu, buna etki eden yük durumlarını simüle edecek süper durumda. Sonuç, şemanın meta özelliğinde buna benzer bir şeye benziyor:
"Wt" : {
"etiket": "Rüzgar - Kasırga",
"rütbe": 8,
"istisnalar": ["süper harf->X"],
"eski_etiketler": []
},
Yukarıdaki durumda, NS süper durumda “W” ile değiştirilecek “X” kod çalıştırılmadan önce. Bu özellik aynı zamanda benzersiz özelliklere sahip grup yükleme durumlarını göndermek için de kullanılabilir. süper durumda semboller bir arada.

