SkyCiv Belgeleri

SkyCiv yazılımı rehberiniz — öğreticiler, nasıl yapılır kılavuzları ve teknik makaleler

Yük Birleşim Şemaları

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.25G1 + 1.5Qa + 1.5Çeyrek + 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:

{"G": "Ölü"}
{"QDR": "Canlı - dağıtılmış, Ç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 (GİBİ 1170.0) Qdr yük durumu Q süper durumunun bir parçası olacaktır (etikette Live olarak adlandırıldı), Qdd ve Qdo 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. Her yük durumu aynı zamanda sembolünün html versiyonunu da saklar, görüntüleme için aboneleri kullanan (örneğin Qdoktor Qdr için).

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:

  1. Bir şema satırı nesnesi oluşturmak için her yük durumu anahtarını ve katsayısını kullanın.
  2. 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.
  3. Bir seviye yukarı, satırları ölçütlere göre gruplandırın (Avustralya ve Yeni Zelanda'da, Servis kolaylığı, Diğer, vb.). Ölçüt adları, Ölçüt açılır menüsünü doldurmak için kullanılır.

Nihai sonuç şöyle görünmeli:

"satırlar": {
  "Avustralya ve Yeni Zelanda'da":{
    "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, "L": 1.50, "L": 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, eş zamanlı bir desenle
4 Rüzgar yükü durumları, bağımsız bir desenle
1 Kar yükü durumları, bağımsız bir desenle
2 Ölü yük durumları, eş zamanlı bir desenle

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. Her yükleme durumu model başına bir dizi tutar (eşzamanlı, bağımsız, süpürmek, ayna, eşleştirilmiş ve denetleyici). Her dizi girişi, yük durumu tablosunun bir satırını temsil eder, ve miktarını saklar, grup adlarını yükle, ana oran ve alternatif oran. İhmal edilen özellikler şu şekilde gösterilir: “…” altında.

input_by_case = 
  {
    "D": {"eşzamanlı": [{"miktar": 2, ...}, {"miktar": 2, ...}], "bağımsız": [], ...},
    "W": {"eşzamanlı": [], "bağımsız": [{"miktar": 4, ...}], ...},
    "S": {"eşzamanlı": [], "bağımsız": [{"miktar": 1, ...}], ...}
  }
  • İşlev aynı zamanda kombinasyon adlandırma seçeneğini de alır, iki filtreleme nesnesi, filtrelemeye izin veren kriterler veya şema anahtarıyla, ve şema meta verilerinden yük durumu istisnaları.
  • 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. Her satır, aşağıdaki bölümde açıklanan filtreleme nesneleri ve özel mantık kullanılarak kontrol edilir.. Bu adımda atlanmak yerine, her satır ya tutuluyor olarak ya da reddedilme nedeni ile etiketlenir (filtrelenmiş, gereksiz veya gereksiz).
    • İ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ında 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. Reddedilen kombinasyonlar daha sonra aşağıdaki bölümde açıklandığı gibi kaldırılır..

Kalıplarla ilgili tüm mantığın tek bir şema satırı içinde gerçekleştiğini belirtmekte fayda var.. Bunu bilmek kalıpların davranışını anlamak açısından önemlidir.. Eş zamanlı desen, Ö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 İki ayrı sıra üzerinde eş zamanlı modeli 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*W

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.. İlk iki kuralın kapsamı dışında kalan kombinasyonlar (filtreleme) her zaman kaldırılır. Son iki kural tarafından hariç tutulan kombinasyonlar (gereksiz ve gereksiz) raporun Tüm Olası Kombinasyonlar tablosunda işaretlenir, ancak yalnızca şu durumlarda kaldırılır: Gereksizleri Kaldır ayar etkinleştirildi.

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 tireyle 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": "",
      "seçim": "çok",
      "öğeler": {
        "uygun": "f",
        "Olumsuz": "sen"
      },
      "varsayılanlar": ["uygun", "Olumsuz"]
    }
  }
}

Olası tüm açılır adlar ve ilgili terimler "öğeler" altında listelenmelidir. Birkaç öğenin seçilmesine izin vermek için "selection" özelliği "multi" olarak ayarlanabilir, veya yalnızca birine izin vermek için "tekli" olarak değiştirin (bu durumda varsayılan olarak yalnızca "varsayılanlar"daki ilk öğe seçilir). 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 veya artı işaretiyle değiştirilebilir (örneğin AS'de +-ii.1-f 1170.0). 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": {"eşzamanlı": [], "bağımsız": [{"miktar": 1, ...}], ...},
  "L": {"eşzamanlı": [], "bağımsız": [{"miktar": 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",
  "HTML": "H",
  "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": {"eşzamanlı": [], "bağımsız": [{"miktar": 1, ...}], ...},
  "Ş": {"eşzamanlı": [], "bağımsız": [{"miktar": 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",
  "HTML": "W<alt>t</alt>",
  "rütbe": 8,
  "istisnalar": ["süper harf->Y"],
  "eski_etiketler": []
},

Yukarıdaki durumda, NS süper durumda “W” ile değiştirilecek “Y” 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.

Nasıl yardımcı olabiliriz?

×

Başa gitmek