منبع فارسی مکس اسکریپت _MaxScript

پرواز

Member
اینم یک تمرین از من
کد:
Cylinder height:60 radius:20
Box lengthsegs:1 widthsegs:1 heightsegs:1 length:150.686 width:19.1662 height:1.32181 mapcoords:on pos:[0.461072,104.456,3.73853] isSelected:on
Cylinder height:1 radius:200
for i=1 to 60 do(
at time (currenttime+5) animate on about $Cylinder01.pos rotate $Box01 -6 z_axis
at time (currenttime+25) animate on about $Cylinder01.pos rotate $Box01 0 z_axis
slidertime +=25
)
با توجه به تمرینات قبلی و بحث about
در این تمرین سعی کردم که ساعتی ساخته بشه و ثانیه شمار اون به مدت یک دقیقه حرکت کنه
شاید دوستان بگن که خب چه کاریه اصلا احتیاجی به اسکریپت نویسی برای این کار نبود.درسته این فقط تمرین با مبحث شیرینه مکس اسکریپته
التون جان کجایی ای کاش زودی بیایی بیایی:sad:
 

reza_cg

Member
با سلام خدمت استاد عزیز
من میخام یک ماشین رو روی یک سطح نا هموار حرکت بدم
راهی هست که اون سطح رو بهش معرفی کنم و خودش ناهمواری ها رو تشخیص بده؟؟؟؟؟؟
آخه من توی یک demo reel دیدم که همچین کاری رو میشه انجام داد.
ممنون میشم کمکم کنید
 

Elton John

Member
با سلام
دوستان من فکر میکنم اصول اولیه رو با مثال های متعدد توضیح دادم

بقیش هم کافیه کد ودستور رو طبق اصول استفاده کنید

این تاپیک رو هم زمان عید و تحویل سال زدم وقت زیاد بود تاپیک رو پیش بردم
:green:
 

پرواز

Member
با سلام
دوستان من فکر میکنم اصول اولیه رو با مثال های متعدد توضیح دادم

بقیش هم کافیه کد ودستور رو طبق اصول استفاده کنید

این تاپیک رو هم زمان عید و تحویل سال زدم وقت زیاد بود تاپیک رو پیش بردم
:green:
التون جان
چشممون به جمالت روشن:)
نمیخواهی که بگی بعد این همه مدت چشم انتظاری اومدی اینو بگی بری
نه میدونم میخواهی با دست پر بیایی:rose:
 

nc_hamid

Member
سلام
من امروز تازه این تاپیک رو دیدم
تاپیک خیلی خوبیه اما حیف مثل اینکه التون جان نمی تونه دست تنها ادامه بده البته حق هم داره کار خیلی سنگینه
من یک سالی هست مکس اسکریپت کار می کنم (البته مختص ریگینگ)
شاید به اندازه التون ندونم اما می تونم بهش تو این تاپیک کمک برسونم .
البته اگه دوستان موافق باشن
 

BlueMMB

Well-Known Member
سلام
من امروز تازه این تاپیک رو دیدم
تاپیک خیلی خوبیه اما حیف مثل اینکه التون جان نمی تونه دست تنها ادامه بده البته حق هم داره کار خیلی سنگینه
من یک سالی هست مکس اسکریپت کار می کنم (البته مختص ریگینگ)
شاید به اندازه التون ندونم اما می تونم بهش تو این تاپیک کمک برسونم .
البته اگه دوستان موافق باشن

سلام . دست التون عزیز درد نکنه گل کاشته واقعا مرسی .
خیلی ممنون دوست عزیز اگه این کار رو بکنین ممنون میشم .:rose:
 

پرواز

Member
سلام
هر چی صبر کردیم کسی نیومد ادامه بده انگار التون جان حالا حالاها سرش شلوغه
ولی یه سئوال
من مختصات یک شیئ رو تو صفحه بدست میارم مثلا box1.pos.x$
جواب میشه مثلا 0.123456
حالا من این عدد رو میخوام کمی رند کنم
مثلا جوابمو کوچیک کنم به عنوان مثال 3 عدد اخرش هر چی که میخواد باشه حذف شه و بشه 0.123
حالا سوال اینجاست که چجوری اینکار رو بکنم .که وقتی موقعییت شیئ رو میگیرم خودش بره تا سه رقم بعد از اعشار رو برگردونه
البته خودم سعی کردم اینکار رو بکنم اول عدد بدست اومده رو به رشته تبدبل کردم و بعد 3 حرف اخرش رو حذف کردم ولی این کار محدودیتهایی داره که جالب نیست:rose::rose::rose:
 

Saeed2vfx

Member
سلام
هر چی صبر کردیم کسی نیومد ادامه بده انگار التون جان حالا حالاها سرش شلوغه
ولی یه سئوال
من مختصات یک شیئ رو تو صفحه بدست میارم مثلا box1.pos.x$
جواب میشه مثلا 0.123456
حالا من این عدد رو میخوام کمی رند کنم
مثلا جوابمو کوچیک کنم به عنوان مثال 3 عدد اخرش هر چی که میخواد باشه حذف شه و بشه 0.123
حالا سوال اینجاست که چجوری اینکار رو بکنم .که وقتی موقعییت شیئ رو میگیرم خودش بره تا سه رقم بعد از اعشار رو برگردونه
البته خودم سعی کردم اینکار رو بکنم اول عدد بدست اومده رو به رشته تبدبل کردم و بعد 3 حرف اخرش رو حذف کردم ولی این کار محدودیتهایی داره که جالب نیست:rose::rose::rose:

سلام.
هدفتون از اینکار چیه؟
با دستور int میتونید کل رقم اعشارو از بین ببرید. (integer)
 

nc_hamid

Member
سلام
من MXS رو برای ریگینگ دارم استفاده می کنم و خیلی از پایه کار نکردم اما زیاد اسکریپت نوشتم
اگه بشه با هم این تاپیک رو پیش ببریم تا همه با هم بالا بریم
من مختصات یک شیئ رو تو صفحه بدست میارم مثلا box1.pos.x$
جواب میشه مثلا 0.123456
حالا من این عدد رو میخوام کمی رند کنم
مثلا جوابمو کوچیک کنم به عنوان مثال 3 عدد اخرش هر چی که میخواد باشه حذف شه و بشه 0.123
حالا سوال اینجاست که چجوری اینکار رو بکنم .که وقتی موقعییت شیئ رو میگیرم خودش بره تا سه رقم بعد از اعشار رو برگردونه
البته خودم سعی کردم اینکار رو بکنم اول عدد بدست اومده رو به رشته تبدبل کردم و بعد 3 حرف اخرش رو حذف کردم ولی این کار محدودیتهایی داره که جالب نیست
برای این کار یه راه ساده هست باید عدد رو در 10 به توان اون رقم اعشار که می خوای ضرب کنی بعد Floor یا Ceil بگیری (بسته به اینکه می خوای به بالا رند کنی یا پایین) بعد بر 10 به توان تعداد ارقام تقسیم کنی
مثل این اسکریپتی که نوشتم:
کد:
fn noth n y a=(
if a==0 then re=floor(n*(pow 10 Y))/(pow 10 y)
else re=ceil(n*(pow 10 Y))/(pow 10 y)
re
)
اگه a=0 باشه به پایین و اگه عدد دیگه ای باشه به بالا رند می کنه .
مثلا :
کد:
noth 1.23457 3 0
عدد 1.23457 رو تا 3 رقم اعشار به پایین رند می کنه
 

Saeed2vfx

Member
سلام
من mxs رو برای ریگینگ دارم استفاده می کنم و خیلی از پایه کار نکردم اما زیاد اسکریپت نوشتم
اگه بشه با هم این تاپیک رو پیش ببریم تا همه با هم بالا بریم

برای این کار یه راه ساده هست باید عدد رو در 10 به توان اون رقم اعشار که می خوای ضرب کنی بعد floor یا ceil بگیری (بسته به اینکه می خوای به بالا رند کنی یا پایین) بعد بر 10 به توان تعداد ارقام تقسیم کنی
مثل این اسکریپتی که نوشتم:
کد:
fn noth n y a=(
if a==0 then re=floor(n*(pow 10 y))/(pow 10 y)
else re=ceil(n*(pow 10 y))/(pow 10 y)
re
)
اگه a=0 باشه به پایین و اگه عدد دیگه ای باشه به بالا رند می کنه .
مثلا :
کد:
noth 1.23457 3 0
عدد 1.23457 رو تا 3 رقم اعشار به پایین رند می کنه

میشه راجع به این mxs توضیح بدید؟ پلاگینه؟!
 

پرواز

Member
سلام.
هدفتون از اینکار چیه؟
با دستور int میتونید کل رقم اعشارو از بین ببرید. (integer)
هدف اینه که موقعیت دو شیئ رو در صفحه مقایسه کنم و اگر دقیقه روی هم بودن فرمانی رو بدم
اما لزوما این دوشیئ دقیق دقیق و تا اخرین رقم اعشار روی هم نیستند و برای همین من میخوام که بیخیال دو رقم اخر بشم تا بتونم فرمان بعدی رو اعمال کنم
به عبارت دیگه نزدیکترین نقطه به موقعییت شیئ رو هم مرکز در نظر بگیرم و بتونم نزدیکترین شیئ رو انتخاب کنم
اگه مطلبو درست رسونده باشنم
 

nc_hamid

Member
سلام
معمولا برای این کار یه Threshold میدن
یعنی میگن مثلا دو عدد رو از هم کم کن بعد اگه از اون مقدار Threshold کمتر بود True و گر نه False.
خوب اسکریپت و بزار ما هم فیض ببریم البته اگه قابل بدونی!!!:rose:
 

Saeed2vfx

Member
هدف اینه که موقعیت دو شیئ رو در صفحه مقایسه کنم و اگر دقیقه روی هم بودن فرمانی رو بدم
اما لزوما این دوشیئ دقیق دقیق و تا اخرین رقم اعشار روی هم نیستند و برای همین من میخوام که بیخیال دو رقم اخر بشم تا بتونم فرمان بعدی رو اعمال کنم
به عبارت دیگه نزدیکترین نقطه به موقعییت شیئ رو هم مرکز در نظر بگیرم و بتونم نزدیکترین شیئ رو انتخاب کنم
اگه مطلبو درست رسونده باشنم

اینکار اشتباهه. نباید قبل از مقایسه عدد رو گرد کنید.
اول بدون گرد کردن مختصات، فاصله بین دو شئ رو بدست بیارید، بعداً شرطی بزارید که مثلاً اگر فاصله از 2 واحد (یا هرچقدر که دوست دارید) کمتر بود، شرط رو برقرار کن.
 

پرواز

Member
اینکار اشتباهه. نباید قبل از مقایسه عدد رو گرد کنید.
اول بدون گرد کردن مختصات، فاصله بین دو شئ رو بدست بیارید، بعداً شرطی بزارید که مثلاً اگر فاصله از 2 واحد (یا هرچقدر که دوست دارید) کمتر بود، شرط رو برقرار کن.
دقیقا همین رو که گفتی میخوام گل گفتی


چجوری اون دو واحد انتهای مقدارهای مورد نظرمو بندازم دور مثلا 0.123456 بشه 0.1234
یعنی اول گرد بشه بعد مقایسه صورت بگیره
 
آخرین ویرایش:

پرواز

Member
سلام
من MXS رو برای ریگینگ دارم استفاده می کنم و خیلی از پایه کار نکردم اما زیاد اسکریپت نوشتم
اگه بشه با هم این تاپیک رو پیش ببریم تا همه با هم بالا بریم

برای این کار یه راه ساده هست باید عدد رو در 10 به توان اون رقم اعشار که می خوای ضرب کنی بعد Floor یا Ceil بگیری (بسته به اینکه می خوای به بالا رند کنی یا پایین) بعد بر 10 به توان تعداد ارقام تقسیم کنی
مثل این اسکریپتی که نوشتم:
کد:
fn noth n y a=(
if a==0 then re=floor(n*(pow 10 Y))/(pow 10 y)
else re=ceil(n*(pow 10 Y))/(pow 10 y)
re
)
اگه a=0 باشه به پایین و اگه عدد دیگه ای باشه به بالا رند می کنه .
مثلا :
کد:
noth 1.23457 3 0
عدد 1.23457 رو تا 3 رقم اعشار به پایین رند می کنه
مرسی اینم منو به جواب رسوند ممنون
ولی راه خلاصه تری هست یا نه
یادمه اون ابتدای کار با اسکریپت میخواستم وفق مختصات ایکس یک شیئ رو بدست بیارم اول box1.pos رو بدست میاوردم بعد جواب رو استرینگ کرده تجزیه تحلی و بعد ایکس رو بیرون میوردم
اما بعدش التون جان اومد گفت زکی box1.pos.x

من دنبال یه همچین فرمول کوتاهی میگردم و لی همین رو هم که نوشتید مشکل من به کل حل شد .ولی ادامش بدین شاید نزدیکتر هم شدیم
مثلا فرمولی رو که دوستمون گفتند
 

جدیدترین ارسال ها

بالا