KeyHydra LazerCut

I am happy to share a tool that's nearing release now: LazerCut toolset, part of the KeyHydra package.
It provides an interactive boolean workflow inside 3ds max using the object manipulation tools everyone is used to, without ever having to go to the boolean subobjects and settings:

The cutters can be created in any view, perpective, orthogonal, camera etc. Depending on the current mode, they can be used to split the selected geometry, add to it, subtract from it or create independent objects. Since all the cutters (with the exception of multi-object subtractions) are created in a separate layer as children of the object operated on, you can easily select those relevant to the object with PgDn, or unhide them using unhide $.children.
Read more »

Undocumented MAXScript Features

Every now and then, I stumbled upon an undocumented command or optional keyword. Some of them were later added to the documentation, many of them are still undocumented. Some of those are listed in this article (I'm skipping a lot of stuff I don't find useful like the non-creatable MEditBkgnd texture map, creatable PFlow related classes etc).

Read more »

Vectors Primer

Understanding vectors is a crucial skill for any technical artist. In this article, we will look at the very basics, both as a refresher for those who already know the concepts and an introduction for the uninitiated.
Read more »

Goodbye Google Reader, Hello Yandex Feeds

It looks like I migrate my feeds every year or so. Before moving to a self-hosted solution once and for all I decided to give a try to one last service, Yandex.Subscriptions (or Яндекс Лента).

Read more »

Comparing float values

Dealing with floating point values in MAXScript is almost inevitable, as are the accuracy problems connected to that.

Read more »

Progress Info

The built-in progress bar in max status bar is not suited for every task, and as I have found myself writing quite similar lines of code to print debug info to the prompt and trying to prevent max window from 'not responding' over and over again, I whipped up a little struct to make it easier.

Read more »

Persistent values in rollout (across one session)

Sometimes it is desirable for rollout controls to keep their values when you close the dialog and open it again. There are many ways to achieve that, one of the easiest is using locals declared in a macroscript body and using its on execute handler to initialize the rollout. When a regular script is used instead, a global struct or a global set of values can be used, but there is also another method which might be more suitable in many cases.

Read more »
Return to top