Thanks, Steve; good to know I’m not losing my mind… at least in this particular instance. Here’s a noob question for you - How does one report a bug to AutoDesk?
Here’s another piece of the puzzle (see image). When wired manually, in the Listener or by direct eval of a script (or from a rollout in Max8) the float_wire for one of the two wired objects has what I assume is subcontroller(?) for animation:bezier_float. When wired from a rollout (in Max9 or Max2008) it’s missing. Is this something that needs to be incorporated in the rollout script?
Well, I do believe I’ve found the solution to this, though I’m frankly less than happy with it. Here’s a quick vid… solution to rollout connect2Way. Briefly the problem does trace back to what was in the previous post; no “Z_Rotation Animation:Bezier Float”. The original code for the Connect and Disconnect buttons looked like this:
on btn_wire pressed do ( p.connect2way b1.rotation.controller[#Z_Rotation]\ b2.rotation.controller[#Z_Rotation] \ ("Z_Rotation/"+amt as string + "*-1") \ ("Z_Rotation*"+ amt as string + "*-1") )
on btn_dis pressed do ( p.disconnect2Way b1.rotation.controller.z_rotation.controller\ b2.rotation.controller.z_rotation.controller )
I found that if the disconnect expression is copied and pasted above the connect expression, then the “Z_Rotation Animation:Bezier Float” is included in the wiring.
on btn_wire pressed do ( p.disconnect2Way b1.rotation.controller.z_rotation.controller\ b2.rotation.controller.z_rotation.controller p.connect2way b1.rotation.controller[#Z_Rotation]\ b2.rotation.controller[#Z_Rotation] \ ("Z_Rotation/"+amt as string + "*-1") \ ("Z_Rotation*"+ amt as string + "*-1") )
on btn_dis pressed do ( p.disconnect2Way b1.rotation.controller.z_rotation.controller\ b2.rotation.controller.z_rotation.controller )
This works, but it sure seems like a counter-intuitive hack to me. Disconnect the wiring before connecting them? It’s like the object needs to be dope-slapped before it’ll code properly.
Go into the Wire params dialog and set up a simple z_rotation link between 2 objects. After selecting the control direction, you have to click “Connect”. If you now change the expression in some way, that “Connect” button changes to “Update”. I wonder if what you’re doing (now) in your script is what the the “Update” is doing in the background, i.e. disconnecting the old and connecting the new.
Pure guesswork on my part, but it would explain why it now works.
Max 4.2 through 2009 (SP1), XP-Pro 64 SP2.
NVidia 8800GTX-768 (Driver 175.16).
Core 2 Quad Q6600 2.4GHz, 4Gb Ram, 4Gb Swap, DX9.0c.
Area IRC Nick is “Screwball”.
I believe you’ve got, Professor Higgins! That introduces some logic to the process. Still a bug in my book, but expecting it to be corrected is somewhat problematic, particularly on the eve of the Max2009 release. As ever, thanks for your insights, Steve.
Educated guess - I’ve had to write stuff in the past where the function of a button differs based on the current state of the object to which it relates. I did have a quick look in the Maxscript help hoping to find an Update function (to match the Connect function) but there isn’t one, so I agree that it probably is a bug. Not too long to wait for Max2009, so we’ll have to test this in 2009 as soon as we can and submit a(nother) bug report if it still fails.
Max 4.2 through 2009 (SP1), XP-Pro 64 SP2.
NVidia 8800GTX-768 (Driver 175.16).
Core 2 Quad Q6600 2.4GHz, 4Gb Ram, 4Gb Swap, DX9.0c.
Area IRC Nick is “Screwball”.