Ali Torabi

Digital Architecture & Technology

Undulating brick wall »« Multi turn spiral stair, script controller

Parametric truss

Parametric truss

Level: Advanced
In This Video:

  • Array between two spline using script controller.
  • Use conditional statements to change the index value.
  • Reference: curve controller function takes the following arguments:
    curve: object name –The name of object in 3ds Max
    dim: 1,2 or 3 — set the controller on specific dimension.
    feedback:transform/position/rotation –function returns transform matrix, position in point3 value and rotation in EulerAngles value
    localOffset: offset value — offset the index value and shifts item along the path.
    endOffset: offset value — move all items away from the last point of the path.
    startOffset: offset value — move all items away from the first point of the path
    mode : 1 or 2 — set the controller in absolute mode (1) or relative (2)
    order: 1 to 9 — choose the order of rotation (items in drop down menu) works only when feedback is set to rotation

    , , , , , , ,
    April 18, 2010 at 1:19 pm
    4 comments »
    • May 8, 2011 at 8:38 pmViktor

      Thank you a lot, I’vefound mistake in apsence of space between 0 and “then” in myn.
      But there appeared one more :
      >> MAXScript Script Controller Exception: — Runtime error: Shape operation on non-shape: Editable Mesh <<

      And it allways comes except i use line without any modifier. including nurbs curve!

    • May 8, 2011 at 9:37 amadmin

      Hi Viktor ,
      You are missing the ‘else’ expression after ‘then’.
      the correct syntax is:

      for the vertex 1 :

      offset = if index1/2-int(index1/2)== 0 then -1 else 0
      curvecontroller curve:$top localoffset:offset

      ——————–
      for the vertex 2 :

      offset = if index1/2-int(index1/2)== 0 then 1 else 0
      curvecontroller curve:$button localoffset:offset

    • May 8, 2011 at 1:59 amViktor

      — Syntax error: at then, expected
      — In line: script_4197=(offset index1/2-int(index1/2)== 0 then -1
      — Syntax error: at then, expected
      — In line: script_4197=(offset index1/2-int(index1/2)== 0 then -1
      >> MAXScript Script Controller Exception: — Unknown system exception <<

    • May 7, 2011 at 10:54 pmViktor

      I’m doing the same, your video shows. but allways stack with different kind of mistake in MaxScript.
      Can you please write down script as it is in your example.

    Leave a Reply or trackback

    You must be logged in to post a comment.