MAXSCRIPT KOMUTLARI

MAXSCRIPT KODLARI VE ŞEKİLLERİN LİSTESİ

Şekil 6.1 Metin (string) ifadeleri ile çalışma (findstring substring)
Şekil 6.2 Nesnelere değiştirici uygulama (addModifier)
Şekil 6.3 Buton davranışının çalıştırılması (on …… pressed do)
Şekil 6.4 Slider oluşturma
Şekil 6.5 Değiştiricilerin etkisinin bağımlı hale getirilmesi
Şekil 6.6 Gizmo konum değerinin başka bir nesneye bağlanması
Şekil 6.7 Değiştirici değerine alt ve üst limit verilmesi (upperlimit lowerlimit)
Şekil 6.8 Değiştirici alt nesnesine (gizmo) transform değeri verilmesi
Şekil 6.9 Sütun modelleme uygulaması
Şekil 6.10 Kemer modelleme uygulaması
Şekil 6.11 For komutu ile x ekseninde çoğaltarak konumlandırma
Şekil 6.12 For komutu ile xy düzleminde çoğaltarak konumlandırma
Şekil 6.13 For komutu ile orjinin merkezinde döndürerek çoğaltma
Şekil 6.14 Üç kürenin, birbirlerinden 10 birim uzaklıkta oluşturulması
Şekil 6.15 For komutu ile dairesel çoğaltma
Şekil 6.16 For komutu ile 2 nokta arasında rastgele çoğaltma
Şekil 6.17 Rastgele modellemeye göre nesne parametrelerini belirleme
Şekil 6.18 Vertex ve face indeks numarası oluşturma uygulaması
Şekil 6.19 Nesneye dizi halinde istenen değerde değiştirici uygulama
Şekil 6.20 Döner merdiven modelleme uygulaması
Şekil 6.21 Pervane modelleme uygulaması
Şekil 6.22 Pickbutton ile bir sınıfa ait nesne seçimi
Şekil 6.23 Nesneye vertex ve face indeks numarası oluşturma uygulaması
Şekil 6.24 Bir özelliğe sahip nesnelerin bu özelliklerinin değiştirilmesi (hasProperty)
Şekil 6.25 Bir sınıfa sahip nesnelerin özelliklerinin değiştirilmesi (classOf)
Şekil 6.26 Case komutu ile birden fazla sınıfa ait nesnenin oluşturulması
Şekil 6.27 Karınca evleri modelleme uygulaması
Şekil 6.28 Nesneleri birbirlerine değmeden random yerleştirme uygulaması
Şekil 6.29 Konum değeri ile bir değiştirici değeri arasında kontrol
Şekil 6.30 Konum değeri ile değiştiricisinin değeri arasında kontrol
Şekil 6.31 Geometrik değerlerin birbirlerine bağlanması (paramwire.connect)
Şekil 6.32 Dizi script’i

 

Şekil 6.1 Metin (string) ifadeleri ile çalışma (Nesnelere yüz numarası oluşturma)

3DS Max Dersleri Ankara MAXScript Kitabı Metin (string) ifadeleri ile çalışma (Nesnelere yüz numarası oluşturma)

 

 

Şekil 6.2 Nesnelere değiştirici uygulama

3DS Max MAXScript Kitabı Nesnelere değiştirici uygulama

 

 

Şekil 6.3 Buton davranışının çalıştırılması

3DS Max Dersleri Ankara MAXScript Kitabı Slider oluşturma

 

 

Şekil 6.4 Slider oluşturma (Kaydırak modelleme)

Endüstri Ürünleri Tasarımı

utility kaydirak "Kaydirak Modelleme"

(

   -- Bu kod satırı kitaptadır.

   -- Bu kod satırı kitaptadır.

   slider bukmeDegeri "Bukme" range:[-180,0,-180] --

   -- Bu kod satırı kitaptadır. --

   -- Bu kod satırı kitaptadır.

   on germeDegeri changed val do $kaydirak01.germe.Stretch = val --

   -- Bu kod satırı kitaptadır. --

   on burkmaDegeri changed val do $kaydirak01.burkma.angle = val --

   -- Bu kod satırı kitaptadır.

   on buzmeAmount changed val do $kaydirak01.buzme.amount = val --

   slider buzmeCurve "Buzme Egimi" range:[-2,0,-1.75] --

   -- Bu kod satırı kitaptadır. --

   -- Bu kod satırı kitaptadır.

   -- Bu kod satırı kitaptadır.

   label yaz "Yazan: " across:2 --

   hyperlink baglan "Nadir AKSOY" color:(color 0 0 255) address:"http://www.nadiraksoy.com" offset:[-15,0] --

   label surum "Surum: 1.0 (20-12-2009)"

   (

       -- Bu kod satırı kitaptadır.

       kaydirak01.name = "kaydirak01"

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       kaydirak01.Length = 40

       kaydirak01.Width = 40

       kaydirak01.Height = 150

       kaydirak01.Fillet = 7.5

       kaydirak01.Length_Segments = 6 -- kaydirak01 isimli nesnenin uzunluk segment sayısı 6 adet olsun.

       kaydirak01.Width_Segments = 2

       kaydirak01.Height_Segments = 112

       kaydirak01.Fillet_Segments = 6

       egme = Stretch()

       egme.name = "egme"

       -- Bu kod satırı kitaptadır. -- kaydirak01 isimli nesneye, (yukarıda tanımlanan) egme isimli (Stretch) değiştiriciyi ata.

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       bukme.name = "bukme"

       -- Bu kod satırı kitaptadır. -- kaydirak01 isimli nesneye, (yukarıda tanımlanan) bukme isimli (bend) değiştiriciyi ata.

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       germe.name = "germe"

       addModifier kaydirak01 germe

       -- Bu kod satırı kitaptadır. -- (Yukarıda atanan) germe isimli (Stretch) değiştirici, Stretch değerini germeDegeri isimli slider’dan alsın.

       germe.axis = 1 -- (Yukarıda atanan) germe isimli (Stretch) değiştiricinin uygulanacağı eksen y ekseni olsun (0 - X, 1 - Y, 2 - Z).

       -- Bu kod satırı kitaptadır.

       burkma.name = "burkma"

       addModifier kaydirak01 burkma

       burkma.angle = burkmaDegeri.value

       -- Bu kod satırı kitaptadır.

       buzme.name = "buzme"

       addModifier kaydirak01 buzme

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       buzme.PrimaryAxis = 0

       buzme.EffectAxis = 0

-- Bu kod satırı kitaptadır.       -- Tüm viewport’larda tüm nesneler görünür durumda olsun.

   ) -- modelle isimli button’un davranışının sonu

)

 

 

Şekil 6.5 Değiştiricilerin etkisinin bağımlı hale getirilmesi

3DS Max MAXScript Kitabı Değiştiricilerin etkisinin bağımlı hale getirilmesi

-- Bu kod satırı kitaptadır. -- İsmi prizma1 olan, yükseklik segment sayısı 14 ve yükseklik değeri 100 birim olan bir prizma oluştur.

-- Bu kod satırı kitaptadır. -- prizma1 isimli nesneye, angle değeri 30 derece olan twist değiştiricisi ata.

prizma2 = Box HeightSegs:10 Height:50 pos:[100,0,0] -- İsmi prizma1 olan, yükseklik segment sayısı 10, yükseklik değeri 50 birim ve x ekseninde 100 birim artı yönde konumlanan bir prizma oluştur.

-- Bu kod satırı kitaptadır.-- prizma2 isimli nesneye, prizma1 isimli nesneye uygulanan bend değiştiricisini bağımlı olarak kopyala (Bağımlı olarak kopyalanan değiştiriciler değiştirici yığınında italik olarak yazılırlar.).

 

 

Şekil 6.6 Değiştirici gizmo konumunun bir nesne konumuna bağlanması

3DS Max Dersleri Ankara MAXScript Kitabı Değiştirici gizmo konumunun bir nesne konumuna bağlanması

-- Bu kod satırı kitaptadır.

-- Bu kod satırı kitaptadır.

-- Bu kod satırı kitaptadır..

bukme.angle = -120

bukme.axis = 1

addModifier prizma bukme

-- Bu kod satırı kitaptadır. -- (Yukarıda prizma isimli nesneye atanan) bukme isimli değiştiricinin transform referans noktası (gizmo) konum değeri, prizma isimli nesnenin transform referans noktası (gizmo) konum değeri olsun (yani kapsul isimli nesne nerede ise prizma isimli nesne, o konum değerini referans alarak değiştirici etkisine tabii tutulsun) (prizma.transform yerine prizma.objectTransform ifadesi de kullanılabilir.).

-- Bu kod satırı kitaptadır. -- Modify paneline geç.

select prizma -- Sahnede prizma isimli nesneyi seç.

 

 

Şekil 6.7 Değiştirici değerine alt ve üst limit verilmesi

3DS Max MAXScript Kitabı Değiştirici değerine alt ve üst limit verilmesi

-- Bu kod satırı kitaptadır.

-- Bu kod satırı kitaptadır. -- prizma isimli nesneye, belirtilen miktar ve eğim değerlerinde Taper değiştiricisi ata.

-- Bu kod satırı kitaptadır.

-- Bu kod satırı kitaptadır. -- prizma isimli nesneye atanan Taper değiştiricisinin üst limit değeri 100 birim olsun.

prizma.Taper.lowerlimit = 65

rotate prizma -90 y_axis -- prizma isimli nesneyi y ekseninde -90 derece döndür.

 

 

Şekil 6.8 Değiştirici alt nesnesine (gizmo) transform değeri verilmesi

3DS Max MAXScript Kitabı Değiştirici alt nesnesine (gizmo) transform değeri verilmesi

 

 

Şekil 6.9 Sütun modelleme uygulaması (değiştirici uygulama)

Endüstri Ürünleri Tasarımı

 

 

3DS Max MaxScript Dersi Sütun Modelleme

 

3D Studio MAX programında modellenen nesneler, programın içerisinde üç yöntemle, fareyi sürükleyerek 3 boyutlu olarak incelenebilir biçimde web sayfasına konabilir hale getirilebilir. Birbirinden farklı nesneler ve sahneler için bu yöntemler aşağıda kullanılmıştır.

Aşağıdaki sahneler görüntülenmiyorsa 3 boyutlu olarak sahneyi inceleyebilmenizi sağlayacak programlardan birini aşağıdaki bağlantıdan indirebilirsiniz.

Sahne üzerinde farenizi tıklayıp sürükleyerek 3 boyutlu olarak sahneyi gezebilirsiniz. Ayrıca, farenizin orta ve sağ tuşuna tıklayarak daha gelişmiş izleme seçeneklerine ulaşabilirsiniz.


utility sutunModelleme "Sütun Modelleme"

(

   -- Bu kod satırı kitaptadır.

   (

       -- Bu kod satırı kitaptadır.

       on uzunluk changed val do $sutun.Length = val

       slider genişlik "Genişlik" range:uzunluk.range Orient:#vertical

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

   )

   -- Bu kod satırı kitaptadır.

   (

       slider bukmeAcisi "Aci" range:[-45,90,0]

       -- Bu kod satırı kitaptadır.

   )

   -- Bu kod satırı kitaptadır.

   (

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       slider buzmeEgrisi "Egim" range:[-2.5,5,-2.5] Orient:#vertical

       on buzmeEgrisi changed val do $sutun.buzme.curve = val

       slider buzmeUstLimiti "Ust" range:[0,100,100] Orient:#vertical 

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

   )

   -- Bu kod satırı kitaptadır.

   (

       -- Bu kod satırı kitaptadır.

       on burmaAcisi changed val do $sutun.burma.angle = val

       slider burmaMeyli "Egim" range:[0,100,0] Orient:#vertical

       -- Bu kod satırı kitaptadır.

       slider burmaUstLimiti "Ust" range:[0,300,100] Orient:#vertical

       on burmaUstLimiti changed val do $sutun.burma.upperlimit = val

       -- Bu kod satırı kitaptadır.

       on burmaAltLimiti changed val do $sutun.burma.Lowerlimit = val

   )

   -- Bu kod satırı kitaptadır.

   (

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       slider yukseltme "Arttır" range:[0,20,0] Orient:#vertical

       on yukseltme changed val do $sutun.germe.amplify = val

       slider germeUstLimiti "Ust" range:[0,75,50] Orient:#vertical

       on germeUstLimiti changed val do $sutun.germe.to = val

       slider germeAltLimiti "Alt" range:[-50,0,0] Orient:#vertical

       on germeAltLimiti changed val do $sutun.germe.from = val

   )

   -- Bu kod satırı kitaptadır.

   (

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       slider basmaEgrisi "Egim" range:[-4,2,0] Orient:#vertical

       on basmaEgrisi changed val do $sutun.basma.Bulge_Curviture = val

   )

   -- Bu kod satırı kitaptadır.

   (

       slider alanEtkisiFalloff "Falloff" range:[0,80,40] Orient:#vertical across:3

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       slider alanEtkisiBubble "Bubble" range:[-3,2,0] Orient:#vertical

       on alanEtkisiBubble changed val do $sutun.alanEtkisi.Bubble = val

   )

       -- Bu kod satırı kitaptadır.

   (

       button olustur "Olustur"

   )

       -- Bu kod satırı kitaptadır.

       (

           -- Bu kod satırı kitaptadır.

           sutun.name = "Sutun"

           sutun.Length = uzunluk.value

           sutun.Width = uzunluk.value

           -- Bu kod satırı kitaptadır.

           -- Bu kod satırı kitaptadır.

           -- Bu kod satırı kitaptadır.

           sutun.Width_Segments = genişlik.value/2

           sutun.Height_Segments = yukseklik.value/2

           -- Bu kod satırı kitaptadır.

           -- Bu kod satırı kitaptadır.

           bukme.name = "bukme"

           addModifier sutun bukme

           -- Bu kod satırı kitaptadır.

           bukme.direction = 0

           bukme.axis = 0

           -- Bu kod satırı kitaptadır.

           -- Bu kod satırı kitaptadır.

           -- Bu kod satırı kitaptadır.

           -- Bu kod satırı kitaptadır.

           -- Bu kod satırı kitaptadır.

           addModifier sutun buzme

           buzme.amount = buzmeDegeri.value

           buzme.curve = buzmeEgrisi.value

           -- Bu kod satırı kitaptadır.

           -- Bu kod satırı kitaptadır.

           buzme.lowerlimit = buzmeAltLimiti.value

           -- Bu kod satırı kitaptadır.

           burma.name = "burma"

           addModifier sutun burma

           burma.angle = burmaAcisi.value

           burma.bias = burmaMeyli.value

           burma.axis=2

           -- Bu kod satırı kitaptadır.

           -- Bu kod satırı kitaptadır.

           burma.lowerlimit = burmaAltLimiti.value

           -- Bu kod satırı kitaptadır.

           germe.name = "germe"

           addModifier sutun germe

           -- Bu kod satırı kitaptadır.

           germe.amplify = yukseltme.value

           germe.axis = 2

           germe.limit = 1

           germe.to = germeUstLimiti.value

           germe.from = germeAltLimiti.value

           -- Bu kod satırı kitaptadır.

           basma.name = "basma"

           -- Bu kod satırı kitaptadır.

           basma.Bulge_amount = basmaDegeri.value

           -- Bu kod satırı kitaptadır.

           alanEtkisi = Affect_Region()

           alanEtkisi.name = "alan etkisi"

           addModifier sutun alanEtkisi

           alanEtkisi.falloff = alanEtkisiFalloff.value

           alanEtkisi.ignoreBackfacing = 1

           -- Bu kod satırı kitaptadır.

           alanEtkisi.Bubble = alanEtkisiBubble.value

           -- Bu kod satırı kitaptadır.

           kaplamaTuru.name = "kaplama turu"

           addModifier sutun kaplamaTuru

           -- Bu kod satırı kitaptadır.

           viewport.resetallviews

           -- Bu kod satırı kitaptadır.

           viewport.setType #view_persp_user

           -- Bu kod satırı kitaptadır.

           max pancamera

           completeRedraw()

       )

   label yaz "Yazan: " across:2

   -- Bu kod satırı kitaptadır.

   label surum "Surum: 1.0 (26-10-2009)"

)

 

 
 
 
Şekil 6.10 Kemer modelleme uygulaması

3DS Max MaxScript Dersi Kemer Modelleme
 
 
 

Şekil 6.11 For komutu ile x ekseninde çoğaltarak konumlandırma

3DS Max MAXScript Kitabı For komutu ile x ekseninde çoğaltarak konumlandırma

 

 

Şekil 6.12 For komutu ile xy düzleminde çoğaltarak konumlandırma

3DS Max MAXScript Kitabı For komutu ile xy düzleminde çoğaltarak konumlandırma

 

 

Şekil 6.13 For komutu ile orjinin merkezinde döndürerek çoğaltma

3DS Max MAXScript Kitabı For komutu ile orjinin merkezinde döndürerek çoğaltma

 

 

Şekil 6.14 Üç kürenin, birbirlerinden 10 birim uzaklıkta oluşturulması

3DS Max MAXScript Kitabı Üç kürenin, birbirlerinden 10 birim uzaklıkta oluşturulması

 

 

Şekil 6.15 For komutu ile dairesel çoğaltma

3DS Max Dersleri Ankara MAXScript Kitabı For komutu ile dairesel çoğaltma

 

 

Şekil 6.16 For komutu ile 2 nokta arasında rastgele çoğaltma

3DS Max MAXScript Kitabı For komutu ile 2 nokta arasında rastgele çoğaltma

 

 

Şekil 6.17 Rastgele modellemeye göre nesne parametrelerini belirleme

3DS Max MAXScript Kitabı  Rastgele modellemeye göre nesne parametrelerini belirleme

 

 

Şekil 6.18 Vertex ve face indeks numarası oluşturma uygulaması

3DS Max MAXScript Dersleri Ankara Kitabı Vertex ve face indeks numarası oluşturma uygulaması

nokNoRen = orange

-- Bu kod satırı kitaptadır.

noBoy = 2

-- Bu kod satırı kitaptadır.

-- Bu kod satırı kitaptadır.

noKal = 0.1

kal = extrude amount:noKal

-- Bu kod satırı kitaptadır.

-- Bu kod satırı kitaptadır.

(

       -- Bu kod satırı kitaptadır.

   (

       -- Bu kod satırı kitaptadır.

       spinner uzSegs "Uzun. Segm. Sayisi: " type:#integer range:[1,4,1] offset:[0,6] fieldWidth:30

       spinner genSegs "Gen. Segm. Sayisi: " type:#integer range:[1,4,1] fieldWidth:30

       spinner yukSegs "Yuks. Segm. Sayisi: " type:#integer range:[1,4,1] fieldWidth:30

       spinner kenSay "Kenar Sayisi: " type:#integer range:[3,16,12] offset:[0,-63] fieldWidth:30 visible:false

       spinner seg1 "Segment Sayisi: " type:#integer range:[4,16,12] offset:[0,-21] fieldWidth:30 visible:false

       spinner seg2 "Segment Sayisi: " type:#integer range:[2,4,2] offset:[0,-21] fieldWidth:30 visible:false

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       ( 

           -- Bu kod satırı kitaptadır.

           If yeNesSec.state == 2 then (uzSegs.visible = false; genSegs.visible = false; yukSegs.visible = false; kenSay.visible = true; seg1.visible = false; seg2.visible = false; derSegs.visible = false)

           If yeNesSec.state == 3 then (uzSegs.visible = false; genSegs.visible = false; yukSegs.visible = false; kenSay.visible = false; seg1.visible = true; seg2.visible = false; derSegs.visible = false)

           If yeNesSec.state == 4 then (uzSegs.visible = false; genSegs.visible = false; yukSegs.visible = false; kenSay.visible = false; seg1.visible = false; seg2.visible = true; derSegs.visible = false)

           If yeNesSec.state == 5 then (uzSegs.visible = false; genSegs.visible = false; yukSegs.visible = false; kenSay.visible = true; seg1.visible = false; seg2.visible = false; derSegs.visible = false)

           -- Bu kod satırı kitaptadır.

       )

       -- Bu kod satırı kitaptadır.

   )

   spinner nokNoBoy "Nokta No Boyutu" range:[0.5,20,noBoy] fieldWidth:40  

   spinner yuzNoBoy "Yuz No Boyutu: " range:[0.5,20,noBoy] fieldWidth:40  

   -- Bu kod satırı kitaptadır.

   (

       -- Bu kod satırı kitaptadır.

       (

           1: box name:"prizma" LengthSegs:uzSegs.value WidthSegs:genSegs.value HeightSegs:yukSegs.value wirecolor:nesRen

           2: cone name:"koni" radius1:25 radius2:15 Height:25 HeightSegs:2 sides:kenSay.value smooth:off wirecolor:nesRen

           3: sphere name:"kure" segs:seg1.value smooth:off wirecolor:nesRen

           4: geosphere name:"kure" segs:seg2.value smooth:off wirecolor:nesRen

           5: cylinder name:"silindir" Height:25 sides:kenSay.value smooth:off wirecolor:nesRen

           6: pyramid name:"piramit" WidthSegs:genSegs.value depthsegs:derSegs.value HeightSegs:yukSegs.value wirecolor:nesRen

       )

       -- Bu kod satırı kitaptadır.

       select yeNes

   )

   -- Bu kod satırı kitaptadır.

   (

       model = copy $

       convertToMesh model

       select model

   )

   -- Bu kod satırı kitaptadır.

   (

       -- Bu kod satırı kitaptadır.

       (

           -- Bu kod satırı kitaptadır.

           nokNo = text name:(uniqueName($.name+" "+"Nokta ")) alignment:2 wirecolor:nokNoRen size:nokNoBoy.value pos:(zKon+(nokKon*nesUz))

           nokNo.baseobject.renderable = true

           nokNo.text = nok as string

           addModifier nokNo kal

           rotate nokNo 90 x_axis

       )

   )

   -- Bu kod satırı kitaptadır.

   (

       -- Bu kod satırı kitaptadır.

       (

           -- Bu kod satırı kitaptadır.

           -- Bu kod satırı kitaptadır.

           yuzNo.baseobject.renderable = true

           -- Bu kod satırı kitaptadır.

           addModifier yuzNo kal

           rotate yuzNo 90 x_axis

       )

   )

   -- Bu kod satırı kitaptadır.

   on yuzNoBoy changed val do $*yuz*.size = val

   -- Bu kod satırı kitaptadır.

   (

       max tool zoomextents all

       viewport.zoom 0.7

       max pancamera

   )

   group "Toplam Sayi Bilgileri"

   (

       label nokSayBil "Baglanti noktasi: " offset:[10,0] across:2

       -- Bu kod satırı kitaptadır.

       label yuzSayBil "Yuz: " offset:[38,0] across:2

       label yuzSay offset:[5,0]

   )

       -- Bu kod satırı kitaptadır.

   (

       checkBox nokNoGos "Nokta numaralarini goster" checked:true

       -- Bu kod satırı kitaptadır.

       checkBox yuzNoGos "Yuz numaralarini goster" checked:true

       on yuzNoGos changed State do if yuzNoGos.checked != true then hide $*yuz* else unhide $*yuz*

   )

   fn onay =

   (

       nokNoGos.checked = true

       yuzNoGos.checked = true

   )

   on nokYuzNoOl pressed do

   (

       delete geometry; delete shapes

       -- Bu kod satırı kitaptadır.

       kopya()

       -- Bu kod satırı kitaptadır.

       yuzSay.text = getNumFaces $ as string

       nokNoYap()

       -- Bu kod satırı kitaptadır.

       delete $

       gor()

       -- Bu kod satırı kitaptadır.

   )

   label yaz "Yazan: " across:2

   hyperlink baglan "Nadir AKSOY" color:(color 0 0 255) address:"http://www.nadiraksoy.com" offset:[-15,0]

   label surum "Surum: 1.0 (05-03-2010)"

)

 

 

Şekil 6.19 Nesneye dizi halinde istenen değerde değiştirici uygulama

Endüstri Ürünleri Tasarımı

 

 

Şekil 6.20 Döner merdiven modelleme uygulaması

3DS Max MAXScript Kitabı  Döner merdiven modelleme uygulaması

utility donerMerdiven "Döner Merdiven Modelleme"

(

   -- Bu kod satırı kitaptadır.

   spinner turSay "Tur Sayisi: " range:[0.1,10,2]

   spinner basYuk "Kalinlik: " range:[1,4,2]

   spinner bos "Bosluk: " range:[-2,8,0]

   spinner yar "Yaricap: " range:[6,50,10]

   button olustur "Olustur"

   label yaz "Yazan: " across:2

   hyperlink baglan "Nadir AKSOY" color:(color 0 0 255) address:"http://www.nadiraksoy.com" offset:[-15,0]

   label surum "Surum: 1.0 (26-10-2009)"

   -- Bu kod satırı kitaptadır.

   (

       delete $basamak*

       delete $orta*

       -- Bu kod satırı kitaptadır.

       (

           bas = ChamferBox name: "basamak" Length:6 Width:20 Height: basYuk.value Fillet:1 Length_Segments:1 Width_Segments:1 Height_Segments:1 Fillet_Segments:6 pos:[yar.value,0,0] wirecolor:(color 0 100 100)

           -- Bu kod satırı kitaptadır.

           -- Bu kod satırı kitaptadır.

       )

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       completeRedraw()

   )

   -- Bu kod satırı kitaptadır.

   -- Bu kod satırı kitaptadır.

   on turSay changed val do olusturma()

   on basYuk changed val do olusturma()

   on bos changed val do olusturma()

   -- Bu kod satırı kitaptadır.

)

 
 
 
Şekil 6.21 Pervane modelleme uygulaması

3DS Max MaxScript Dersi Pervane Modelleme

-- Bu kod satırı kitaptadır.

(

   -- Bu kod satırı kitaptadır.

   (

       button olustur "Olustur" across:2

       -- Bu kod satırı kitaptadır.

   )

   -- Bu kod satırı kitaptadır.

  (

       spinner kanAd "Kanat Adedi: " type:#integer range:[2,16,3] Orient:#right

       -- Bu kod satırı kitaptadır.

      -- Bu kod satırı kitaptadır.

       slider kanUcEg "Kanat Uç Egimi:" type:#integer range:[-45,45,22.5] Orient:#right

   )

   group "Gobek Degerleri"

   (

       -- Bu kod satırı kitaptadır. 

       -- Bu kod satırı kitaptadır.

   )

       -- Bu kod satırı kitaptadır.

   (

       -- Bu kod satırı kitaptadır.

       button durGeri "Dur/Geri"

       -- Bu kod satırı kitaptadır.

       button durIleri "Dur/Ileri"

       on durIleri pressed do max time forward

05445941077    -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       button devamEt "Devam Et"

       on devamEt pressed do max time play

   )

   -- Bu kod satırı kitaptadır.

   (

       -- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       gobek.name = "gobek"

       gobek.radius1 = GobDisYar.value

       -- Bu kod satırı kitaptadır.

       gobek.HeightSegs = 1

       gobek.capsegs = 1

       gobek.sides = 32

       gobek.Height = gobYuk.value

      gobek.wirecolor = [200,100,100]

       -- Bu kod satırı kitaptadır.

       kanat.name = "kanat"

       kanat.radius1 = 50

       kanat.radius2 = 0

-- Bu kod satırı kitaptadır.

       kanat.HeightSegs = 24

       kanat.capsegs =16

       kanat.sides = 48

       -- Bu kod satırı kitaptadır.

       addModifier kanat strtch

-- Bu kod satırı kitaptadır.

       strtch.amplify = -5

       strtch.axis = 0

       -- Bu kod satırı kitaptadır.

       addModifier kanat twst

-- Bu kod satırı kitaptadır.

       twst.axis = 2

       twst.Gizmo.position = [0,-80,0]

-- Bu kod satırı kitaptadır.

       -- Bu kod satırı kitaptadır.

       addModifier kanat slcMdfr

       slcMdfr.Slice_Type = 3

       -- Bu kod satırı kitaptadır.

       slcMdfr.Slice_Plane.rotation = (EulerAngles 0 90 0)

       kanatSayisi = kanAd.value

       for i = 1 to kanatSayisi do

       (

           -- Bu kod satırı kitaptadır.

           -- Bu kod satırı kitaptadır.

           $kanat*.wirecolor = $gobek.wirecolor

           convertToMesh gobek

           -- Bu kod satırı kitaptadır.

       )

       gobek.name = "pervane"

       viewport.setType #view_persp_user

      delete $kanat*

       max time start

       -- Bu kod satırı kitaptadır.

   )

   on kanAd changed val do modelle()

   -- Bu kod satırı kitaptadır.

   on kanYuk changed val do modelle()

   on kanUcEg changed val do modelle()

   on gobYuk changed val do modelle()

   -- Bu kod satırı kitaptadır.

   on olustur pressed do modelle()

   -- Bu kod satırı kitaptadır.

  (

       $pervane*.name = "yedekPervane"

       hide $yedekPervane*

   )

   on oynat changed state do

   (

-- Bu kod satırı kitaptadır.

       (

           -- Bu kod satırı kitaptadır.

           -- Bu kod satırı kitaptadır.

           max time play

       )

       else

       (

           deletekeys $pervane

           max time start

       )

   )

   label yaz "Yazan: " across:2

   hyperlink baglan "Nadir AKSOY" color:(color 0 0 255) address:"http://www.nadiraksoy.com" offset:[-15,0]

   label surum "Surum: 1.0 (28-02-2010)"

)

 

 

Şekil 6.22 Pickbutton ile bir sınıfa ait nesne seçimi

3DS Max MAXScript Kitabı  Pickbutton oluşturma

 

 

Şekil 6.23 Nesneye vertex ve face indeks numarası oluşturma uygulaması

3DS Max MAXScript Kitabı  Nesneye vertex ve face indeks numarası oluşturma uygulaması

 

 

Şekil 6.24 Bir özelliğe sahip olan nesnelerin bu özelliklerinin değiştirilmesi

3DS Max Dersleri Ankara MAXScript Kitabı Bir özelliğe sahip olan nesnelerin bu özelliklerinin değiştirilmesi

 

 

Şekil 6.25 Bir sınıfa ait olan nesnelerin özelliklerinin değiştirilmesi

3DS Max MAXScript Kitabı Bir sınıfa ait olan nesnelerin özelliklerinin değiştirilmesi

 

 

Şekil 6.26 Case komutu ile birden fazla sınıfa ait nesnenin oluşturulması

3DS Max MAXScript Kitabı Case komutu ile birden fazla sınıfa ait nesnenin oluşturulması

 

 

Şekil 6.27 Karınca evleri modelleme uygulaması (while)
(Bu çalışmadaki while komutunun kullanımı konusunda, G.Ü. G.E.F. Ort. Fen ve Matematik Alanları Eğt. Böl. Matematik Eğt. A.B.D. Öğr. Gör. Dr. Hakan ŞANDIR katkı sağlamıştır.)

3DS Max MAXScript Kitabı  Karınca evleri modelleme uygulaması

-- Yazan: Nadir AKSOY (http://www.nadiraksoy.com)

-- Karınca Evleri Modelleme Uygulaması (Bir Yüzey Üzerine, İstenen Sayıdaki Nesneyi, Birbirlerinin İçine Girmeyecek Şekilde Rastgele (Random) Yerleştirme):

-- Bu kod satırı kitaptadır.

-- Bu kod satırı kitaptadır.

addModifier zemin (yumusatma = turboSmooth name:"yumusatma")

-- Bu kod satırı kitaptadır.

enableHardwareMaterial zemin.material true

showHWTextureMap zemin.material true

yarUst = 6

yarAlt = 4

-- Bu kod satırı kitaptadır.

(

   yuva = Tube()

   yuva.sides = 24

   yuva.capsegs = 8

   yuva.HeightSegs = 8

   yuva.radius1 = random yarAlt yarUst

   yuva.radius2 = yuva.radius1*0.9

   yuva.Height = yuva.radius1*1.8

   -- Bu kod satırı kitaptadır.

   yuva.XForm.gizmo.scale = [random 1 2,1,1]

   -- Bu kod satırı kitaptadır.

   yuva.Taper.amount = random -0.3 -0.1

   yuva.Taper.curve = random 0.2 0.4

   addModifier yuva (TurboSmooth())

   -- Bu kod satırı kitaptadır.

  meditmaterials[1].materialList.count = 2

   meditmaterials[1].materialList[1].diffuse = (random [0,0,0] [150,150,255])

   meditmaterials[1].materialList[1].specularlevel = 90

   meditmaterials[1].materialList[1].glossiness = 60

   meditmaterials[1].materialList[2].diffuse = [70,70,70]

   meditmaterials[1].materialList[2].opacity = 30

   meditmaterials[1].materialList[2].specularlevel = 110

   meditmaterials[1].materialList[2].glossiness = 30

   meditmaterials[1].materialList[2].opacityType = 1

   yuva.material = meditmaterials[1]

   hali = cylinder pos:(yuva.pos+[0,0,yarAlt/10])

   hali.sides = 12

   hali.capsegs = 1

   hali.HeightSegs = 1

   -- Bu kod satırı kitaptadır.

   hali.Height = yarUst/20 as float

   -- Bu kod satırı kitaptadır.

   hali.wirecolor = (color (random 0 255) 0 (random 0 255))

   tavan = Cone()

   tavan.sides = 24

   tavan.capsegs = 12

   tavan.HeightSegs = 12

   tavan.radius1 = yuva.radius1

  -- Bu kod satırı kitaptadır.

   tavan.Height = tavan.radius1*(random 1.1 1.3)

   tavan.pos = [0,0,yuva.Height]

   addModifier tavan (yuva.XForm)

   -- Bu kod satırı kitaptadır.

   -- Bu kod satırı kitaptadır.

   tavan.Taper.curve = 2

   -- Bu kod satırı kitaptadır.

   tavan.squeeze.Bulge_amount = random 0.25 0.75

   addModifier tavan (yuva.TurboSmooth)

   tavan.material = Arch___Design__mi diff_color:(color 255 (random 50 100) (random 0 50)) refl_weight:0.4 refl_gloss:0.5

   kapiAcma = ChamferBox()

   kapiAcma.Length = yuva.Height/3

   kapiAcma.Width = yuva.Height/3

   kapiAcma.Height = yuva.radius1*0.92

   kapiAcma.Fillet = kapiAcma.Length/5

   kapiAcma.Length_Segments = 6

   kapiAcma.Width_Segments = 6

   kapiAcma.Height_Segments = 1

   kapiAcma.Fillet_Segments = 6

   kapiAcma.pos = [0,-(yuva.radius2*1.012),-kapiAcma.Fillet]

   kapi = ChamferBox()

   kapi.Length = yuva.radius1/20

   kapi.Width = yuva.Height/3

   kapi.Height = yuva.radius1*0.8

   kapi.Fillet = kapiAcma.Length/5

   kapi.Length_Segments = 6

   kapi.Width_Segments = 6

   kapi.Height_Segments = 6

   kapi.Fillet_Segments = 6

   -- Bu kod satırı kitaptadır.

   -- Bu kod satırı kitaptadır.

   kapi.bend.axis = 2

   kapi.bend.angle = -2.5

   kapi.bend.direction = 90

   kapi.material = Arch___Design__mi diff_color:(color (random 100 150) (random 50 100) 0)

   kapi.pivot = [-kapi.Width/2,-(yuva.radius2*1.012),kapi.Height/2]

   rotate kapi (random -60 -10) z_axis

   -- Bu kod satırı kitaptadır.

   cam = #{1685..1692,1815..1816,1819..1820,1941..1942,1945..1946}

   -- Bu kod satırı kitaptadır.

   addModifier yuva (Symmetry())

   yuva.Symmetry.axis = 0

   yuva.Symmetry.flip = true

   PKCikarma = yuva-kapiAcma

   -- Bu kod satırı kitaptadır.

   -- Bu kod satırı kitaptadır.

  baca.radius2 = baca.radius1/1.3

   baca.pos = tavan.pos+([random (-tavan.radius1/1.5) (tavan.radius1/1.5),random (-tavan.radius1/2) (-tavan.radius1/3),0])

   rotate baca (random 0 360) z_axis

   baca.material = Arch___Design__mi diff_color:(color (random 50 150) (random 50 100) 0)

   -- Bu kod satırı kitaptadır.

   boolobj.setboolop BToplama 1

   delete baca

   convertToPoly yuva

   yuva.attach hali yuva

   yuva.attach tavan yuva

   yuva.attach kapi yuva

)

olustur()

-- Bu kod satırı kitaptadır.

(

   mesafe = distance konumEski konumYeni

   -- Bu kod satırı kitaptadır.

)

yarKat = yarUst*1.25

-- Bu kod satırı kitaptadır.

yuvaSayisi = 24

-- Bu kod satırı kitaptadır.

d = #(yuva.pos)

delete $tube01

for i = 1 to yuvaSayisi do

(

   -- Bu kod satırı kitaptadır.

   (

       d[i+1] = random (yarKon*[cos(i*fark),sin(i*fark),0]) ((yarKon/2)*[cos(i*fark),sin(i*fark),0])

       degme = false

       -- Bu kod satırı kitaptadır.

       (

       if (konBel d[i+1] d[j] yarKat) == false then degme = true

       )

   )

   -- Bu kod satırı kitaptadır.

  olustur()

   yuva.pos = d[i+1]

   rotate yuva (-90+(i*fark)) z_axis

)

 

 

Şekil 6.28 Nesneleri, birbirlerine değmeden random yerleştirme uygulaması

3DS Max Dersleri Ankara MAXScript Kitabı Nesneleri, birbirlerine değmeden random yerleştirme uygulaması

 

 

Şekil 6.29 Konum değeri ile bir değiştirici değeri arasında kontrol

3DS Max MAXScript Kitabı Konum değeri ile bir değiştirici değeri arasında kontrol

 

 

Şekil 6.30 Konum değeri ile değiştiricisinin değeri arasında kontrol

3DS Max MAXScript Kitabı  Konum değeri ile değiştiricisinin değeri arasında kontrol

 

 

Şekil 6.31 Geometrik değerlerin birbirlerine bağlanması (paramwire.connect)

3DS Max MAXScript Kitabı Geometrik değerlerin birbirlerine bağlanması (paramwire.connect)

 

 

Şekil 6.32 Dizi script’i

3DS Max MAXScript Kitabı dizi script'i

diziSag = #()

diziArka = #()

diziSol = #()

diziOn = #()

ara = 30

sayi = 8

-- Bu kod satırı kitaptadır.

(

   -- Bu kod satırı kitaptadır.

   -- Bu kod satırı kitaptadır.

   diziSol[i] = copy diziSag[i] pos:[-((sayi-1)*ara),(sayi*ara)-((i-1)*ara),0] wirecolor:blue

   -- Bu kod satırı kitaptadır.

   -- Bu kod satırı kitaptadır.

   move cokDiz[1] [0,0,i*2]

   -- Bu kod satırı kitaptadır.

)

scale diziSol[diziSol.count] [1,1,2]

scale cokDiz[3][1] [1,1,2]

-- Bu kod satırı kitaptadır.

-- Bu kod satırı kitaptadır.

cokDiz[1]

 

Başa Dön

Ana Sayfa İçin Tıklayınız! Özgeçmiş İçin Tıklayınız! Şanlı Türk Bayrağı Özgeçmiş İçin Tıklayınız!