EGITIM 2 22/05/22

https://youtu.be/knToP8jDjdc

PRIVATE / EXPORT

  1. 2. eğitimde basit 2 objeyi birbirine bağlamayı öğreteceğiz.

  2. Bu objelerin yapılmış örneklerini linklerinde bulabilirsiniz.
    https://openbrim.org/app/?incubator=1&author=%C3%96zer_G%C3%BCnd%C3%BCz_OpenBrim&obj=objidb79cwktg4fs67t2lbysfjt https://openbrim.org/app/?incubator=1&author=%C3%96zer_G%C3%BCnd%C3%BCz_OpenBrim&obj=objidbezhlgifffszxp6e7n5d9d

  3. Eğitime aşağıdaki objelerin hazır haliyle başlayacağız.

DOSEME

<O N="Doseme1" T="Project"> <!-- created by Özer Gündüz on 14.03.2022 --> <P N="t" V="5" D="Thickness of deck" Role="Input" /> <P N="l" V="300" D="Length of the Deck" Role="Input" /> <P N="w" V="3000" D="Width of the Deck" Role="Input" /> <O T="Volume" X="0" Y="0" Z="-t"> <O T="Surface"> <O T="Point" X="0" Y="-l/2" Z="t" /> <O T="Point" X="0" Y="l/2" Z="t" /> <O T="Point" X="0" Y="l/2" Z="0" /> <O T="Point" X="0" Y="-l/2" Z="0" /> </O> <O T="Surface"> <O T="Point" X="w" Y="-l/2" Z="t" /> <O T="Point" X="w" Y="l/2" Z="t" /> <O T="Point" X="w" Y="l/2" Z="0" /> <O T="Point" X="w" Y="-l/2" Z="0" /> </O> </O> <O N="Refline" T="Line"> <O T="Point" X="w/2" Y="-l/2" Z="-2*t" /> <O T="Point" X="w/2" Y="l/2" Z="-t" /> </O> </O>

DUVAR

<O N="Duvar1" T="Project"> <!-- created by Özer Gündüz on 14.03.2022 --> <P N="h" V="50" D="Height of the Wall" Role="Input" /> <P N="t" V="10" D="Thickness of the Wall" Role="Input" /> <P N="l" V="100" D="Length of the Wall" Role="Input" /> <O T="Volume" X="0" Y="0" Z="0” Color="#fcba03" Opacity="0.5"> <O T="Surface"> <O T="Point" X="-l/2" Y="-t/2" Z=“0” /> <O T="Point" X="l/2" Y="-t/2" Z=“0” /> <O T="Point" X="l/2" Y="t/2" Z=“0” /> <O T="Point" X="-l/2" Y="t/2" Z=“0” /> </O> <O T="Surface"> <O T="Point" X="-l/2" Y="-t/2" Z="-h" /> <O T="Point" X="l/2" Y="-t/2" Z="-h" /> <O T="Point" X="l/2" Y="t/2" Z="-h" /> <O T="Point" X="-l/2" Y="t/2" Z="-h" /> </O> </O> </O>
  • En başta döşemeyi modelledikten sonra bu döşemenin altına 2 adet duvar tanımladık.

    • Bunları app tarafına çektiğimizde, hepsinin üst üste geldiğini gördük. Bunları ayırmak gerektiğini anlattık.-> (why konsepti)

  • Objeleri oluştururken global koordinatta birbirine bağladığımız parametreleri gösterdik. (duvarın döşeme kenarlarına gelmesi gerekiyor.) ->Why konsepti

  • Color ve Opacity parametrelerini konuştuk. Birçok objeyi ekranda gördüğümüzde farkındalık için bu parametrelere ihtiyacımız var

  • Duvarın yerleşmesi için Referans alabileceğimiz bir refline oluşturduk. Biz bu duvarı bu refline a doğrultusunda oluşturmak istiyoruz

  • Duvar objesini bağlarken Döşeme pick ettirmek istediğimizi varsayalım. ( Paraminfo objesini burada kullandık.)-> How

    • Duvar objesinin döşemeden haberdar olması gerekiyor. Sisteme core olmayan incubator içinde bulunan authors tarafından yazılan doseme objesini çağıralım

    • Gelen obje 3d wievde ekran görüntüsünü oluşturdu

    • Bu noktada App tarafına gidip bu objenin nasıl davrandığına bakıyoruz ve sadece duvar objesini çağırdığımızda döşemenin de oluştuğunu görüyoruz

    • Burada oluşan sıkıntı tek obje özelinde 2 objenin aynı objede gelmesi ve diğerinin inputlarını değiştiremem. Bu yüzden duvar objesinde döşemeyi private objesi içine almam gerekiyor.

      • Private ne işe yarıyor bu noktada?

      • Objenin içinde ben objeyi görebiliyorum ve app tarafında diğer obje görünmüyor. Bunu “Source Code” a bakarak da kontrol edeceğiz

  • Parametrik olarak objelerin iskeletini oluşturduktan sonra, döşeme objesini parametrik olarak duvara bağlamak için altta ki kodu kullanacağız

<P N="control" V="D" T="Doseme2" Role="Input" /> <O T="ParamInfo" Min="1" Max="1" Required="1" Pick="1" Param="control" />
  • Private objesiyle çektiğimiz döşemeye göre duvar objesini düzenledik ve app tarafında bunları denedik. Role=Input kavramıyla beraber Private objesinin App’te source code a neler getirdiğini gördük. -> How

  • Inputların kategorilenmesinden bahsettik. Bunun fazla inputlu olan objelerin gruplanmasında faydası olacağından bahsettik

  • 2. Tur olarak duvar ile döşeme uzunluğunun aynı olmasını ve bunun inputunun sadece döşemeden toplanmasını istedik. -> How

  • Duvar objesinin yukarıda bahsettiğimiz Refline’a bağlamamız için Döşeme objesinde “Role=”Input”” olmayan parametrelere ihtiyacımız olduğunu gördük. Bu noktada export objesiyle bir diğer objeye input olmayan şeyleri parametrik olarak çekmeyi gördük.

  • Export konseptini diğer objeye yazarken gösterdik

    • Temel anlamda Role=Input ve Exportlanan parametreler Source code’a ve kütüphane tarafında çağrılan objenin içine gidiyor. 2 veya daha fazla objede ortak kullanılacak parametreler kullanıcı tarafından girilecekse Role=”Input”, girilmeyecekse Export objesi ile çekileceği iyice irdelenecek

  • Bu 2 objeyi birbirine bağlarken belirlenen refline üzerinden birbirine oturtulmaya çalışılacak.Bunları yaparken kullanılacak fonksiyonlar; -> How

    • Online, onliner, toglobal

  • En sonunda ise bu 2 objenin birbirine bağlı olarak nasıl çalıştığını gördük. -> What we achieved

  • Duvar objesinin uzunluk parametresini otomatik olarak döşemeden alacağı kurguda ilerledik.

  • Bahsedilen objelerin son hali şu şekilde;

DOSEME

DUVAR

  • Database section and material oluşturma

    • Başlığa Database=”Section” ekliyoruz