3ds Max : Maxscript Döngü sorunu 2. seri ...
Arkadaşlar yine aklıma takılan bir soru ile karşınızdayım.
farz edelim ki sahnemizde 25 tane nesne var bu nesnelerden 12 tanesi diğer 12 tanesi ile iç içe geçmiş durumda ve bir tanesi de boşta.
(örneğin bir tane kutu bir tane küre ile birbirine temas halinde, bir tane koni bir tane torus ile temas halinde vb...)
ben öyle bir kod yazmalıyım ki iç içe olan nesneler proboolean olmalı ve bu iç içe geçen nesnelerin hepsi proboolean olana kadar devam etmeli.
Bu konuda yardımcı olabilir misiniz?
Şimdiden herkese teşekkür ederim.
- Offline
Arkadaşlar merhaba yardımcı olabilecek birileri var mı? bu konu hakkında.
- Offline
Arkadaşım biraz hazırcı gördüm seni. Önceki kodda bir örnek vermişsin konu hakkında bilgisi olanlarda cevaplamış, şimdi hiç bir örnek yok ve sen hazır kodu istiyorsun. Bence bir araştır nasıl oluyor bu işler sonra bir deneme yap ve olumlu olumsuz burda paylaş, eminim cevaplarlar. Eğer hangi kodların kullanılacağını bilmiyorsan MAXScript Listener aç üst menüden Macro Recorder/Enable etkinleştir, yapmak istediğini önce kendin yap sonra Listenerdaki kodları incele hangi sırada ne komut vermiş. Komutların varyasyonlarını kendine göre değiştir, örneğin objeleri tek tek kendin seçmiştin sen kod içine objelerin geomerik şekillerine göre seçilmesini sağla v.s. Bu şekilde uzun amam tecrübe kazandıran bir süreçle MAXScripti çözersin.
İyi çalışmalar.
- Offline
- Erkek
Arkadaşım daha önce ne kadar proboolean ile ilgili bir script yazdın bilmiyorum. Fakat biraz araştırırsan doğru dürüst bir örnek bulamayacağını göreceksin. Ben hazır kod istemiyorum. Bunu yazımı düzgünce okuyunca anlayabilirsin. İşin mantığını tam olarak anlamadığım için mantığını anlatacak birinden bir yazı bekliyorum. (nesneleri sınıflarına göre seçmeyi, sınıfları aynı olan nesneleri sıralamaya göre nasıl seçileceğini vs.) ve sizin sayenizde bu yazımı okuyan diğer arkadaşlara da sesleneyim. Faydanız olmayacaksa zararınız da dokunmasın. Sorduğum sorumun mantığını açıklayabilecek arkadaşlardan cevap bekliyorum.
İlgilenen ve ilgilenmeyen herkese çok teşekkür ederim...
- Offline
Sadece merak ettiğim için soruyorum, yazmaya çalıştğın scripti ne amaçla kullanmayı düşünüyorsun?
Kişisel işlerin için mi?,sadece öğrenme amaçlı mı? yoksa bir plugin geliştirmek için mi?
- Offline
- Erkek
Öncelik sırası;
1 - Öğrenmek için; (Maxscript`i öğrenmek için c++ kitapları almaya başladım.Çünkü temeli c++ dan geçiyor.)
2 - Öğrendikten sonra Kişisel işlerim için;
3 - Kişisel işlerimi kolaylaştırdıktan sonra ilerleyen süreçlerde plugin haline getirmek için;
- Offline
objelerin iç içe olduğunu anlayan kod zor görünüyor
birde 3 adet obje içiçe geçerse hiç olmaz
onun yerine
distance komutuyla aralarındaki mesafeye bakarak olabilir
birde objeler döngüdeyken onları probollean ojesine çeviremezsin
script bollean yapılacak objeririn kopyasını uniqueename kodu $.name= (uniquename "....") ile alsın
yeni oluşan objelere bollean yapsın ve oluşan yeni objeye yeni bir isim versinki unique name kodu döngünün bir sonraki turunda düzgün çalışsın
burada tek sorun her obje için bir proboolean ojesi oluşur
ama bize her iki obje için bir proboolean ojesi olmalıydı onu da sen çöz
- Offline
- Erkek
Erkan yardımın için çok teşekkür ederim. Yalnız yazdığını tam olarak anladım dersem yalan söylemiş olurum. Anlamadığım boolean olacak nesnelerin neden birer kopyasının oluştuğu. Kopyasını almadan iç içe geçmiş nesnelerin distance komutu kullanılarak x veya y koordinatları örneğin 5 in altındakiler boolean olsun diye bir şey söylenemez mi? yoksa ben yanlış mı düşünüyorum?
- Offline
Peki script herşeyi union bolean yapsa, illa kesişmeleri gerekmeden, birleştirse, 2 ayrı objenin kesişmeden birleşimi herhengi bir değişiklik yapmaz fakat kesişenlerin kesiştikleri bölümleri yok olur. Bu hali ile işinizi görür mü?
- Offline
- Erkek
bildiğin gibi bollean sırasında objelerden biri siliniyor
2 objeyle başlayan işlen tek obje ile sonuçlanıyor
for i in selection do
olarak yazdığın zaman
döngüdeki objeleri döngü bitene kadar obje silemezsin
objelerden birinin başına bişey gelirse
max kilitlenir
iyi ihtimalle
sistem exception hatası verir viewport ayvayı yer
sende save as yapar kapatırsın.
denemesi bedava ben çok yaptım.
- Offline
- Erkek