среда, 29 декабря 2010 г.

Еще скрипт, снова 3ДМакс

Продолжая вчерашнюю тему наваял еще один скриптик вечером. Суть - пробивать оконный проем в стене ) Специально для тех, кто дизайнит без архикада комнаты с одним окном в стенке. :-)

Тут, думаю, все понятно и так:

в первой секции параметры стены, во второй - окна, в третьей расстояние до проема от пола и от угла стены. Стенка появляется в Left вьюпорте, торцом прижата к началу координат.
Как бы это и не особо нужно, но ведь надо какие-то задачи ставить для скриптов. Да и, честно говоря, приходилось еще до арчика лепить подобное булином. Муть. Хотя все знают, что буль в моделях - моветон. В общем, арчик спас ситуацию =)

Настройки, приведенные внизу - дело личное. Так, для справки.

Вот до этого места дописал и чуть спать не лег. Собственно, а где тогда скрипт был бы?  Но я одумался:

rollout unnamedRollout "Untitled" width:212 height:527
(
 GroupBox grp1 "Wall" pos:[15,20] width:180 height:100
 button btn1 "Make it" pos:[86,357] width:108 height:23
 label lbl4 "cm" pos:[170,50] width:20 height:16
 spinner spn1 "" pos:[100,50] width:60 height:16 range:[1,1000,500]
 label lbl1 "wall length" pos:[30,50] width:60 height:16
 label lbl5 "wall width" pos:[30,70] width:60 height:16
 spinner spn4 "" pos:[100,70] width:60 height:16 range:[1,1000,40]
 label lbl9 "wall height" pos:[30,90] width:60 height:16
 spinner spn7 "" pos:[100,90] width:60 height:16 enabled:true range:[1,1000,280]

 GroupBox grp15 "Window" pos:[15,150] width:180 height:80
 label lbl18 "wind length" pos:[30,180] width:60 height:16
 label lbl19 "wind width" pos:[30,200] width:60 height:16
 spinner spn14 "" pos:[100,180] width:60 height:16 range:[1,1000,100]
 spinner spn15 "" pos:[100,200] width:60 height:16 range:[1,1000,150]
 label lbl21 "cm" pos:[170,180] width:20 height:16
 
 GroupBox grp18 "Window distanse" pos:[15,260] width:180 height:80
 label lbl29 "from flap" pos:[30,290] width:60 height:16
 label lbl30 "from corner" pos:[30,310] width:60 height:16
 spinner spn21 "" pos:[100,290] width:60 height:16 range:[1,1000,90]
 spinner spn22 "" pos:[100,310] width:60 height:16 range:[1,1000,100]
 label lbl40 "MY USUAL UNITS SETTINGS:" pos:[15,397] width:181 height:17
 label lbl41 "Customize - GridAndSnapSettings: Grid Spacing: 0,002m" pos:[15,419] width:180 height:31
 label lbl42 "Customize - UnitsSetup: metric" pos:[15,454] width:180 height:19
 label lbl43 "Customize - System Unit Setup: 1,0 unit = centimeters" pos:[15,477] width:180 height:31
 on btn1 pressed do
 (
  walllen = spn1.value
  wallwid = spn4.value
  wallhei = spn7.value
  windlen = spn14.value
  windwid = wallwid * 2
  windhei = spn15.value
  wind_dz = spn21.value
  wind_dy = spn22.value
  wall = Box lengthsegs:1 widthsegs:1 heightsegs:1 length:walllen width:wallwid height:wallhei mapcoords:on
  wind = Box lengthsegs:1 widthsegs:1 heightsegs:1 length:windlen width:windwid height:windhei mapcoords:on
  wall.pos.y = walllen/2
  wind.pos.y = windlen/2+wind_dy
  wind.pos.z = wind_dz
  select wall
  boolObj.createBooleanObject $
  boolObj.SetOperandB $ wind 4 2
 )
)
createDialog unnamedRollout width:212 height:527

Комментариев нет:

Отправить комментарий