previousnext

form·Z 5.0 (December, 2004)

form·Z 5.0 includes a variety of new features and also incorporates version 4.5, which was only released to a group of beta testers and plugin developers. V. 4.5, first and foremost, offered the new API technology and script language of form·Z. During the beta testing effort, many features initially planned for v. 5.0 were also completed.This development led to the release of v. 5.0 simultaneously with v. 4.5.

 

form·Z 5.0 is the first native OS X version and represents the end of support for the classic MacOS operating system. It requires OS X 10.2 or later. It also supports Windows XP, 2000, NT, ME and 98. Windows 95 is no longer supported.

 

Application Programming Interface and form·Z Script Language

The API technology and the script language of form·Z are both methods that invite the user to develop his or her own extensions to the program. This can be done either through a plugin that is developed outside of form·Z or through a script that is developed using form·Z's own editing environment.

 

A plugin is written in the C or C++ computer language and is compiled into a binary library. A script is written in the form·Z script language (FSL), which is a simplified version of the C language. It is intended for a novice programmer who may get started with adding extensions to form·Z without having to set up a complete C or C++ based development environment. Once a script has been written, it is generally fairly straightforward to convert the FSL code of the script to real C or C++ code for use in a plugin.

 

The form·Z API provides access to much of the form·Z functionality including modeling operations, interface elements, data access, memory management and math functions. The API supports nine types of extensions: custom attributes, file translators, object types, renderers, commands, palettes, RenderZone shaders, tools, and utilities. All of these are available for plugin development. The latter five are also available for scripts. The API includes over 3,000 functions which are explained through an HTML based on line documentation and a PDF based developer guide. The form·Z 5.0 package contains a number of ready to run examples for scripts and plugins that are expected to prove valuable as learning resources. auto.des.sys expects that savvy users will take full advantage of the plug-in and scripting capabilities to add their unique personal enhancements to the power of form·Z.

 

Interface

The functionality of the Paste From Modeling... and Paste From Drafting commands in the Edit menu have been expanded and the ability to transfer information directly from one window to another (without going through the clipboard) is now provided, through a newly introduced list of windows where selections can be made.

 

The Select By... item of the Edit menu has been extended with more categories for selection, the ability to define multiple selection sets, and the ability to save the selection criteria with a project.

 

The font support in form·Z has been improved and is now more compatible with the font control supported by third party software and the operating systems. This has affected the Project: Fonts options set in the Preferences dialog invoked from the Edit menu.

 

OpenGL renderings that are produced by the Interactive Shaded item of the Display menu, now have the ability to include Shadows and are much more interactive as they are executed smoothly in real time. • A new line renderer, called Doodle, has been introduced in the Display menu. It produces line drawings that look like quick hand-drawn sketches.

 

The new item Attributes... in the Options menu now allows a user to define custom attributes. A complete dialog based environment where attributes can be listed, defined, edited, and/or revised is also provided.

 

Information Management is another new item in the Options menu. It allows you to articulate the information of the attributes, to produce lists or spreadsheets and to compose records or bills of materials. These capabilities support form·Z's BIM (Building Information Modeling)

 

A few enhancements have been made to the export/import procedures that affect mostly how text, textures, and surface styles are imported and how facetted shapes are exported. Also, adjustments have been made to the Art•lantis, DXF, and DWG formats.

 

A new menu, called Extensions, has been introduced before the Help menu. It contains the items: Extensions Manager..., Run Utility..., Run Recent Utility, and Use Script Debugger. They support the script editor and the execution of utility types of plugins and scripts. At the end of the menu, a list of installed plugins appear and can be run from there. Also, a new type of window, the Script Editing window, has been introduced. These interface changes are discussed in full detail in the introductory chapter of the form·Z SDK Manual.

 

Modeling

Four new primitives of ruled parametric surfaces have been introduced: paraboloid, single hyperboloid, double hyperboloid, and hyperbolic paraboloid. Star objects created from different base types

 

The Star tool, which is a plugin, has been introduced in the Balls palette. It produces 3D solid stars.

Frame objects • A new plugin, the Frame tool, has been added. It derives frame like structures by converting the edges of an object into round beams and its vertices into spheres, all of which are unioned together into a single solid.

 

A new plugin tool that generates new detailed screws/bolts has been introduced next to the previous screws/bolts.

 

A new plugin tool that generates accurate gears has been introduced.

 

Two new options have been added to the Sweep tool: the ability to join coplanar faces and the ability to generate axial and two-source sweeps from source shapes that are already positioned at the end or ends of a path.

 

A new type of sweep, called draft sweep, has been introduced. It generates sweep objects using draft angles and mathematical formulas, which drastically extends the repertoire of the sweeps.

 

A new Formula Curve tool has been added and offers the ability to generate curves from preset or user provided mathematical formulas.

 

A new Formula Surface tool has been added and offers the ability to generate surface objects from standard formulas as well as a variety of well known mathematical types, such as Mobius Strip, Catalan, Catenoid Helicoid, Enneper, Henneberg, Monkey Saddle, Whitney Umbrella, Steinbach Screw, and Shoe Surface. It also allows a user to generate a custom defined surface from his/her own formula.

 

Stitches produced by the Trim/Split and Stitch tools can now be smoothly rounded in addition to the previously available polygonal rounding.

 

Smooth parametric text can now be generated by the Text Place tool, in addition to the previously available polygonal text. The importation and management of the text fonts has also been drastically simplified.

 

The Query Attributes dialog has been significantly extended and revised to accommodate the newly introduced attribute types.

 

Two new tools, Object Doctor and Project Doctor, have been introduced. They either simply detect irregularities found on an object or project, or they repair them, whenever possible. The option to preview the irregularities in a preview dialog is also available.

 

Objects can now be cloned when copied and placed. Cloned objects follow the behavior of one of their members, when operations, such as geometric transformations, are applied to it. Information about clones is now offered in the Query Object dialog and a new tool, called Unclone, has also been implemented and is useful for undoing cloning.

 

A new Replace tool now makes it possible to easily replace groups of objects with a single operation. This facilitates the use of low resolution objects as place holders during early stages of model development, which can then be easily replaced with the real detailed objects at the end of the process.

 

A new Copy Attributes tool has been introduced and can be used to selectively copy many attributes from one object to one or more other objects.

 

Rendering

form·Z RenderZone 5.0 is based on LightWorks v. 7.4, which, in addition to a number of bug fixes, contains a few new rendering features, as follows:

 

Additional types of maps can now be used with spherical and cubic environments to produce reflections. Cubic environments can now be defined using a single image map that is a composite of six images, one for each side of the cube. In previous versions the six maps had to be separate. Spherical environments can now be defined using a spherical image map, in addition to the previously available panoramic map. A spherical map can be thought of as a 3D panorama that expands to the complete surface of a sphere.

 

A new type of light, the environment light, has been introduced. With this type of light images that may be mapped on an environment act themselves like lights, which results in more accurate lighting effects. Also, a new simple method for defining atmospheric effects of distant lights has been added.


In support of the new environment light, two new image formats, namely HDRI and OpenEXR are now supported. Lighting oriented images in these formats are available and can be downloaded from the Internet. At the same time, images in any format can be used with the environment lights.

 

In addition to the new enhancements provided by LightWorks, a few more have resulted from the new API release, as follows:

 

A variety of shaders that have been implemented as plugins have been added and can be selected from pop up menus as all the other shaders. In addition to their functionality, they offer examples of how the shader repertoire can be extended and customized by writing either oneÕs own plugins or scripts.

 

Miscellaneous

The digitizer support that, in previous versions of form·Z, was offered through an item at the end of the Options menu has now become an optional plugin that may or may not be installed. It is discussed in its own independent documentation, called: form·Z Plugin: Microscribe. Visit microscribe.com for more information.

 

Support for the 3Dconnexion Spaceball is also provided through an optional plugin and is discussed in its own documentation, called: form·Z Plugin: 3Dconnexion. Visit 3dconnexion.com for more information.

• Relative to the Macintosh platform, form·Z 5.0 is native to OSX and does not support earlier versions of Apple's operating systems.

 

Application Programming Interface and Script Language

form·Z 4.5 introduced the ability to add external functionality to form·Z through programming
extensions, which can be plugins or scripts. A plugin is written in the C or C++ computer language and is compiled into a shared library (Macintosh) or a dynamic link library (Windows). These libraries are referred to as the plugin files and they are identified by the .fzp file extension. A script is written in the form·Z script language (FSL), which is a simplified version of C. Scripts are compiled into binary files identified by the .fsb file extension.

 

A script is, in essence, a simplified version of a plugin. It is intended for a novice programmer who may get started with adding extensions to form·Z without having to set up a complete C or C++ based development environment. The language used for scripts (FSL) follows the C language very closely. It offers the same basic data types and statements and, like a plugin, a script can call the majority of the form·Z supplied functions that access operations of the program. Once a script has been written and tried, it is generally fairly straightforward to convert the C-like FSL code of the script to real C or C++ code for use in a plugin.

 

There are nine types of extensions: attributes, file translators, object types, renderers, commands, palettes, RenderZone shaders, tools, and utilities. All of these are available for plugin development. The latter five are also available for scripts.

 

An attribute defines a characteristic that can be assigned to objects and/or faces of objects. Attribute plugins complement the standard attributes, such as surface styles, layers, shadow casting or visibility and behave consistent with the form·Z attributes.

 

A file translator is used to exchange data and images with form·Z. Plugin file translators complement the form·Z translators and appear in the Export Data, Export Image, and Import Format menus.

An object type is the definition of a controlled object. Object type extensions behave consistent with the form·Z controlled objects. The parameters of the control object can be accessed through the Edit button in the Query dialog as with any form·Z controlled object. Object type plugins are often complemented by one or more tool extensions that create or manipulate the controlled object.

 

A renderer creates an image of the modeling scene on the screen. Plugin renderers are shown in the Display menu, below the standard form·Z renderers. form·Z supports interactive renderers, static vector or polygonal renderers, and static pixel renderers.

 

A command in form·Z is an action that is invoked from a menu item, icon in the command palette or a key shortcut. Command extensions are extensions that complement the form·Z commands and behave consistent with the form·Z commands. Commands are very flexible as virtually any form·Z API function can be called during the execution of the task.

 

A palette is a floating window that contains an interface for a feature or set of related features. The interface is composed of a variety of interface elements (buttons, radio buttons, check boxes, lists etc.) provided by the form·Z interface manager (FUIM). Palette extensions are extensions that complement the form·Z palettes and behave consistent with the form·Z palettes.

 

A Renderzone shader is an extension which describes the rendering characteristics of a single pixel in a rendering. There are six types of shaders: color, bump, reflection, transparency, background, and depth effect. Extension shaders complement the form·Z shaders and appear in the coresponding locations in the Surface Style and RenderZone Options dialogs.

 

Tools are extensions that complement the form·Z tool set and behave consistent with the form·Z tools. They appear in the form·Z interface, in the icon tool palettes, just like a form·Z tool. Tools can either be operators or modifiers. An operator creates or edits the form·Z project data (objects, lights, etc.) through graphic manipulation in the form·Z Project window. A modifier is a tool that controls a setting that affects a group of operators. Tools are very flexible and can do a variety of things. Object creation, editing, and derivation operations are common uses of tools.

 

Utility extensions are designed to execute a task, which is either less frequently used or an item in the form·Z interface is not desired. Utility extensions are best used on tasks that are linear in nature (like batch processing).

The form·Z 4.5 package contains a number of ready to run examples for scripts and plugins, some of which are illustrated here. These are expected to prove valuable as learning resources. We highly recommend that new extension developers start by running some of the given examples and that they actually write their first scripts and/or plugins by simply editing and revising some of our examples.