|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
Viewport TypeMAXScript allows us to control the 3D viewports. You are able to set any type of viewport, but once you change to a 2D viewport (Track View, Schematic View, Asset Manager, and MAXScript Listener), you will not be able to change it again. To get and set viewport types, you can use VIEWPORT.GETTYPE and VIEWPORT .SETTYPE, respectively. The supported viewport types are shown in Table 17.3.
When setting Camera or Spot, if there is no camera or spot selected, the Select Camera or Spot dialog window will be shown. You can set the active viewport using VIEWPORT.ACTIVEVIEWPORT. It will require an index number that will identify the viewport. You can use VIEWPORT .NUMVIEWS to inquire how many viewports you have.
Camera Views You can manipulate Camera views, to define which camera will be used and also to find out which camera is being used in a viewport. GETACTIVECAMERA or VIEWPORT.GETCAMERA() will list the camera that is used by the current camera view. VIEWPORT.SETCAMERA will allow us to set a camera in the current camera view. For instance, viewport.setcamera $Camera02 will set the current camera view as Camera02. If the current view is not a camera, it will return undefined. Miscellaneous Viewport ManipulationYou can also set various viewport characteristics through MAXScript, such as redraw, safe frames, and wait cursors. Redrawing Some actions require us to force a redraw on screen. There are three ways to do so: REDRAWVIEWS(), COMPLETEREDRAW(), and MAX VIEWS REDRAW. REDRAWVIEWS() will redraw only what has been changed on screen, providing a fast, but not so accurate, redraw. COMPLETEREDRAW() and MAX VIEWS REDRAW will redraw the entire screen, regardless of what was or was not changed, which will be slower but more accurate. Safe Frames You can turn the safe frames on or off. To do so you can use two commands, DISPLAYSAFEFRAMES or MAX SAFEFRAME TOGGLE. The latter will toggle the status of the safe frames (if they were off, they will be turned on, and vice versa). The viewports with safe frames are automatically redrawn. To use DISPLAYSAFEFRAMES, you need to say whether it is true or false; for instance, displaysafeframes = true will turn it on for the active viewport. The viewport is not redrawn automatically, so you will need to use COMPLETEREDRAW() or MAX VIEWS REDRAW to refresh the viewport and display the safe frames. Cursors When the script is processing, sometimes you might want to let the user know MAX didnt freeze. A way to do so is to change the cursor to the system wait cursor (usually an hourglass) until the process is over, and then switch it back to normal. To do so you can use SETWAITCURSOR() and SETARROWCURSOR(). They will set the cursor to the wait cursor and back to the normal arrow, respectively. Accessing Global Functions and PropertiesMAX has several configuration properties and commands that control the interface, turn buttons on or off, change Preferences options, and access scene properties. Well now see some of these functions and properties. MAX InterfaceThere are several commands that can control MAX Global Properties or that can control the way MAX behaves. Some of them allow us to activate certain items; some turn on buttons; some change the UI configuration, etc. Lets examine some of these helpful commands. Controlling the Command Panel You can use SETCOMMANDPANELTASKMODE to control which of the tabs is opened in the Command Panel. Similarly, you can use GETCOMMANDPANELTASKMODE to know which panel is activated. This is useful because some optionssub-object level, for instancewill not run if a specified Command Panel tab isnt activated. (See Chapter 14 for details on how to turn on sub-object mode with script.) To set any panel active, you simply need to specify setcommandpaneltaskmode #panel, where panel is one of the six Command Panel tabs: create, modify, hierarchy, motion, display, or utility. Instead of using SETCOMMANDPANELTASKMODE, you can use MAX MODE PANEL, substituting the panel name for panel, just like the previous example. Transform Tools You can activate all transform tools using scripts. See Table 17.4 for a list of the commands you can use to activate each transform tool.
TOOLMODE commands also allow us to set the active coordinate system and which pivot point will be used. TOOLMODE.COORDSYS will set the active coordinate system, which you need to choose from among #view, #screen, #world, #parent, #local, or #grid. To set the coordinate system center, you can use the properties of TOOLMODE: .pivotcenter(), .selectioncenter(), or .transformcenter(). These will set the coordinate system center to each objects pivot, to the center of the selection, or to the origin of the coordinate system, respectively.
© 2000, Frol (selection, edition, publication) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||