|
Revving Up Your Experience in Pro/ENGINEER Wildfire 2.0
By Dan Marsalek, North American Manufacturing Co.
Just as street racers “tune” or “mod” their cars, engineers and designers can customize Pro/ENGINEER for maximum style, efficiency, and performance. In the spirit of the popular MTV show, this article shows you how to “Pimp Your Pro/E Ride!”
All it takes is applying relatively simple modeling methods, system settings, and hardware choices. In fact, most of the tuning tips mentioned here are option changes or modeling practices that can be done on an as-needed basis while work is in process.
In keeping with the automobile metaphor, these tips and tricks are organized into the following subsystems:
• Engine = Items Affecting Display Quality and/or Performance
• Tires = Network and File Options, O/S-related Items
• Suspension and Steering = GUI-related Techniques and Options, Modeling Methods, Mapkeys
• Transmission and Clutch = Workstation and Hardware-related Items
THE ENGINEGraphics drive design in Pro/ENGINEER Wildfire
Config.pro options, part 1. Many config.pro options affect graphics quality and hence the amount of memory and bandwidth being used. It stands to reason that if we can decrease the load on the graphics card and related computer subsystems, performance will improve. Note that several of these options are also Environment variables and Display settings that can be changed outside of the config.pro file while a model or drawing is open.
• Display_Silhouette_Edges
• Enable_HLR_Hashing
• FastHLR
• Frames_per_Sec
• Frames_per_Sec_Value
• HLR_for_Quilts
• LODS_Enabled
• LODS_Value
• Max_Animation_Time
• Maximum_Texture_Size
• Overlay_Layers
• Retain_Display_Memory
• Shade_Moving_Comp
• Shade_Surf_Feat
• Shade_Windows
• Silhouettes
• Skip_Small_Surfaces
• Smooth_Lines
• Spin_With_Part_Entities
• Spin_With_Silhouettes
• Tangent_Edge_Display
• Triangulate_Filled_Areas
Of these options, the most important to graphics performance are:
- FastHLR. When set to yes, this option uses more memory but can greatly improve the performance of hidden line wireframe models when spinning/panning/zooming dynamically on the screen.
- Maximum_Texture_Size. Pro/ENGINEER can render images with textures, eliminating the need to do small surface features for things like stippling, wood-grain, and marble. The trade-off is that as the number of pixels in the texture increases, the amount of processing (and bandwidth) rises sharply.
- Retain_Display_Memory. Pro/ENGINEER allocates a certain amount of memory to objects that are closed and no longer displayed. While this speeds up retrieval of previously retrieved parts/drawings (in the same Pro/ENGINEER Session only!), this comes at the expense of a potentially significant drain on system memory that could be used for current work.
THE TIRESThe O/S, network, and file system are where the rubber meets the road
Config.pro options, part 2. The following config.pro options affect Pro/ENGINEER’s performance and ability to interface with the workstation O/S and any network to which a computer may be connected.
• Compress_Output_Files
• Dir_Cache_Max
• Disable_Search_Path_Check
• Folder_Display_File_Limit
• Instance_Search_Exhaustive
• NT_Cache_Dirs
• Postscript_Compression
• Save_Bitmap
• Save_Bitmap_Type
• Save_Display
• Save_Drawing_Picture_File
• Save_Instance_Accelerator
• Save_Model_Display
As in the previous section, a number of settings offer trade-offs between memory usage and performance. Of particular note are:
- Instance_Search_Exhaustive. Depending on the number of search paths in the config.pro or search.pro file(s), the time it takes to check directories other than the working directory for any given instance may be extremely slow. Search performance is dependent upon the number of files in the directories, the speed of the network, and the number of directories to be searched.
- NT_Cache_Dirs. Windows will store a snapshot of a directory in memory to speed up the listing of directories that Pro/ENGINEER uses. While the display of a directory’s contents will be faster, some drawbacks include the fact that changes to a directory may not be reflected in real time (thus requiring a manual prompting of the system to show an updated listing) and the additional use of system resources and memory to generate the cached listing.
- Save_Display / Save_Model_Display. This option adds functionality to the files and can improve redraw time upon opening the model at the cost of increased file size and possibly longer retrieval times, especially over slower networks.
- Compress_Output_Files. While it reduces the size of saved files, this setting increases the time required to perform the compression (and subsequent decompression). This may be handy for sending a lot of information over a slow connection (like internet dialup), where the faster transfer time more than offsets any delays due to the process of compression.
Search paths. Search paths can exist in a config.pro or search.pro file. Using search paths has many benefits, including the ability to store parts in folders in different locations (local or network). The problem comes when you don’t maintain the search paths, leading to a degradation of read/write performance in Wildfire. To prevent search paths from putting the brakes on Pro/ENGINEER, be sure to:
- Keep search paths to a minimum. Use only the ones you need for a given project.
- Make sure all directories that are referenced are valid. Otherwise, you will have to wait for Pro/ENGINEER and the O/S to time out in order to continue searching the listed paths.
- Leave no space after the “!” in comments for unused or old paths, or the path will be included in the search.
Windows registry. For users of Wildfire on Microsoft Windows machines, keep in mind that the number of files in a folder or directory is important. MS Knowledgebase Article 177266 states that WinNT/2000/XP will request no more than 16k of each Server Message Block (SMB)“transact2 findnextfile” command by default. This translates to approximately 170 files for a “Dir” command (i.e. a call to list the files in a directory). Every partial SMB response automatically incurs a 200ms response delay
To improve performance, a registry edit is available to increase the size of the block of information transferred to/from the server, thus potentially eliminating the 200ms delay for a partial SMB request.
- Locate the following registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ …Lanmanserver\Parameters
- Edit the value: SizReqBuf from a default of 4356 bytes to 14596 bytes or higher (up to 65535 bytes).
Important Disclaimer: Edit the registry at your own risk! Check with your IT Department or System Administrator and seek permission before editing the registry! Always make a backup before making any changes!
File management. A commonsense solution to eliminating the problem of directories with large numbers of files is to purge any old or unnecessary archived versions. Reducing the number of items in a directory increases save and retrieve times, and decreases search and list times. Simply open a system window in Pro/ENGINEER and the working directory should show at the prompt. Type “purge” to remove all but the most current file versions. A free utility called Spekan Purge (originally developed by Innovativ Spekan) is available with a graphical interface for easier use.
In Windows, the length of the filename also has an effect on retrieval time. If more than 20 characters, there may be additional delays in retrieval. Note that Pro/ENGINEER Wildfire allows filenames of up to 260 characters (while Windows only allows filenames of 255 characters or less!).
Of similar importance is the location (local vs. network) of key files. Installing Pro/ENGINEER locally (the executable and all support files and .DLLs) cuts the time to start and load dramatically. Network retrieval is always longer due to the slower transfer rates, latency due to network routing, server overhead, and shared bandwidth.
For best performance, keep as many files as possible on your workstation. At minimum, try keep the following files local:
• Font File folder
• Trail File folder
• Plot File folder
• Template folders (parts and drawings)
• Any of the many, many other files referenced by config.pro options with “pro_ … _dir” in them, such as note, symbol, material, and palette files.
This is of course a double-edged sword, especially in corporate environments where users are spread out across many locations, or where there are too many users to install copies on individual machines. System administrators must choose between user performance and the ability to manage the software quickly and easily.
Network latency. A general rule of thumb is to try to keep the number of hubs (routers, switches) from the server to the client to less than four. Each hub adds overhead to data transmission, and increases latency as it is processed.
Security issues. It is a well-known fact that antivirus software and firewalls can severely diminish read/write performance. Depending on system resources and the number of files needing to be scanned, the performance degradation may be hugeespecially at startup. Loading Pro/ENGINEER from a network location will add to the delay since a significant number of incoming executable files must be scanned. In addition, each opening (or closing) of a filesuch as retrieving or saving a model or drawingrequires a small amount of resources and time to briefly scan the file. Every file that is loaded, from symbols to colormaps, are scanned when loaded into the Pro/ENGINEER.
Sadly, the state of Internet security is such that few users can run Pro/ENGINEER with the A/V or firewalls turned off. While not much can be done to change this, users should be aware that this is often the source of the delay when starting Pro/ENGINEER.
SUSPENSION AND STEERINGThe user interface and modeling methods provide direction and a smooth, tight ride
Config.pro options, part 3. The following config.pro options affect the user interface as well as the modeling and drawing performance of Wildfire.
• Auto_Regen_Views
• Enable_Face_Preselection
• Fast_Highlight
• Feature_Create_Auto_Begin
• General_Undo_Stack_Limit
• Menu_Show_Instances
• Prehighlight
• Remember_Last_Attach_Type
• Remember_Last_Get_Point_Option
• Sketcher_Undo_Stack_Limit
• Visible_Mapkeys
For example, using PreHighlight or Face_Preselection in large and complex models may result in a slow or unusable experience because so many entities are pre-highlighted or -selected. Similarly, turning off Visible_Mapkeys can decrease the time necessary to complete long or involved mapkey commands.
Assembly features. Some modeling methods that affect performance include the way Pro/ENGINEER handles assembly features (cuts and holes, but not datums). It’s important to understand first how Pro/ENGINEER creates visibility twins (almost like an instance of a part) when generating assembly features. The visibility levels are:
- Part level. The feature is visible when you retrieve the part either on its own or as part of the assembly.
- Assembly level. The feature is only available and visible at the top (assembly) level. (This is the default setting in Wildfire.)
- Sub-Assembly level (available when the config.pro option advanced_intersection = yes). The feature is visible in the sub-assembly and above, but not in the standalone part.
For part-level visibility, Pro/ENGINEER creates the feature as if it were in the parts feature list, but with an external reference. (Note that the default setting turns off the ability to edit the feature’s dimensions at the part level.) When visibility is set to assembly or sub-assembly level, Pro/ENGINEER creates “twins” or instances of the parts. This is required to show parts with (and without) the feature in different contexts at once (e.g., as a standalone item without the feature in one window, and the completed assembly where the feature intersects the part in another window). Thus, Pro/ENGINEER ends up creating these “twins” that take more memory and require more regeneration time.
But assembly features aren’t the only operations that result in the creation of twins. They are also created for:
- Flexible components
- Inheritance features
- Mechanisms with multiple copies of sub-assemblies containing connections
- User-defined part simplified reps.
All of these twins act like the creation of a family table instance, where the generic model has the feature and the standalone part is the instance with the feature removed.
Based on TPI 127412, PTC’s recommendations for improved performance of assembly features (in order of best to worst) are:
- Create an assembly feature using part-level intersection.
- Create features on the part level and use external references to the assembly.
- Create assembly features with part-level intersection with option “show feature properties in sub-models.”
- Create features in part level using top-down design techniques with skeleton models, publish geom., and copy geom. features.
- Create assembly features with assembly-level intersection.
It is important to note that using part-level intersection may conflict with design or manufacturing intent when creating models. While this method works well to reduce the memory size for large or complex assemblies, it may not reflect a company’s ideology with respect to best practices part or assembly modeling. Thus, it is up to each User to decide if or when to apply this methodology.
Regeneration. Regeneration techniques can also provide a useful way to improve modeling performance. One simple option is to use Custom Regenerate rather than Automatic Regenerate in Wildfire. This function lets users choose only the affected components and assemblies instead of the whole model, saving significant time when regenerating very large or complex assemblies.
Patterns. Another good modeling technique is to use patterns instead of copying features or parts. The reasoning behind this approach is that:
- In general, patterns create only one instance (“twin”) per component intersection. Many duplicate instances can be created at significant savings of memory and regeneration time.
- The new pattern functionality (such as axis pattern) saves modeling time in comparison with the steps required by the copy command.
- Irregular patterns can now be easily created to fit most design specifications.
- With a patterned feature, users can then quickly pattern components for placement in assembly mode to speed the top-level model creation process. (For example, to place bolts into an axis-patterned bolt circle, all you have to do is place the first bolt, then use a Reference Pattern to place the rest.)
- Patterns allow for increased speed when placing / translating items in exploded views. Patterned parts can easily be moved simultaneously using the Preferences setting “Move With Children” in the View > Explode > Edit Position (Explode Position) dialog box.
If a pattern creates many features and most do not intersect every component, then it is a good idea to break up the pattern into separate patterns or features. Using Reference Patterns rather than Group Patterns of features (which each require regeneration) also saves time and system resources.
Suppression. Another time- and memory-saving technique is to suppress parts and features. Suppressing the features and parts not affected by what you’re currently working on takes them out of memory, off the display, and out of the regeneration processoften cutting working time to a fraction of what it would be otherwise. Some general tips for using suppression are:
- Suppress features and parts not in use for faster redraws and regenerations. The less you have in memory, the faster your session will run.
- Suppress all features except the first one to keep files compact for easier transport (by e-mail, ftp, etc.). You can cut file size in half (or more) by suppressing all but the initially created default datum planes and then saving the model.
You can use similar techniques with drawings of your most cumbersome parts and assemblies. For better efficiency and performance, consider these time-savers:
- Suppress (erase) views in drawings that have many views or complex components. Then resume the view when you need it later.
- Move all completed views to another sheet of a drawing for interim work, and then move them back to the desired sheet when your changes are complete.
- Use Z-Clipping to reduce graphical information displayed in an assembly view. All geometry behind the Z-Clipping plane will be removed from the display.
- Use File > Properties > Drawing Models > Add Model to add sub-assemblies to the drawing. Create views of the sub-assemblies instead of creating views of simplified representations of the master assembly.
- Create separate drawings whenever possible.
- Create layers to blank the display of many components in an assembly. You can also use View > Drawing Display > Component Display > Blank to blank the display of assembly components.
- Use the Drawing Representation tool to remove unnecessary views.
Fonts. Most of us take the fonts we use for granted. Default sets of fonts are installed with Pro/ENGINEER, Office suites, or image and photo editing programs. The hidden pitfall that most users never consider is how much memory different fonts take. Compare two common (and very similar) True-type fonts found in most Microsoft products Arial (normal) and Arial Unicode MS. Arial Unicode MS font has all of the items that the Arial font has, as well as many more language glyphs, math symbols, tolerances, etc. But this added functionality comes at a steep price: Arial is 384kb while Arial Unicode MS is 22MB.
TRANSMISSION AND CLUTCHHardware does the “real work” in the operation of Pro/ENGINEER
Config.pro options, part 4. Of the two basic config.pro options that affect operating performance, graphics is obvious. Anyone having to contact PTC Support over a display issue knows the impact of OpenGL vs. Win32GDI. Suffice it to say that you are much better off in terms of performance if you can run in OpenGL. Win32GDI should be used only for diagnosing problems in the software or model.
For Unix users, setting the config.pro option CPUs_to_Use to the maximum number of processor cores in your system lets you take full advantage of the computing power available to you. (This is only of use to Unix workstation owners because Windows automatically distributes the load to multiple cores/processors whenever possible.)
Workstation hardware. Other hardware considerations involve the new technology available for high-performance workstations. With the increasing availability and affordability of 64-bit dual-core systems, LCDs, HT technology, and SLI video cards, the hardware options are as more confusing than ever. Here are some tips regarding your choice of system components, along with the settings to help you get the most out of them.
CPUs with multiple cores and/or systems with multiple processors
- Offer only a moderate benefit right now, primarily when running background tasks or for rendering/regenerating in Pro/ENGINEER.
- Will become a much greater necessity for future workstations as more programs are written for multithreading (including Pro/ENGINEER).
- Most suitable for using FEA or CFD programs in conjunction with Pro/ENGINEER.
64-bit Windows XP
- Significantly increases total addressable memory and memory per process. (Real memory limit is 3GB in XP vs. 128GB in XP-64. Maximum virtual memory limit is 4GB in XP vs. 16TB in XP-64. Note: 1 TB is approx. 1000 GB). This is extremely beneficial for very large models or for performing complex FEA or CFD analyses.
- Still lacks 64-bit support for many device drivers like printers and plotters. Expect better performance and availability when Microsoft Vista debuts in 2007. Don’t expect many older (legacy) devices to be supported.
Hyperthreading on Intel P4 processors
- Has been shown to actually degrade Pro/ENGINEER performance by more than 10% in some cases (see PTC TPI 126595). Disable hyperthreading in your system BIOS if possible.
Video cards
- Don’t use a gaming graphics card and expect professional performance. Professional cards include special certified drivers with application-specific functionality, overlay planes, and OpenGL2.0 in hardware. They also provide much better image quality (fewer artifacts, correctly rendered lines and textures, improved lighting, etc.) than gaming cards. Professional graphics cards also provide vastly better performance when more than 3-5 Pro/ENGINEER windows are open.
- Make sure to get a card with a minimum of 256MB of dedicated (not shared with system RAM) graphics memory. This will allow you to run at the highest resolutions of your monitor without draining the cards memory buffers during dynamic manipulation of small to medium size models.
- Check the output ports on the card. DVI-D is better than 15-pin analog VGA connections for LCD monitors. DVI-I allows for either analog or digital input via the DVI cable. Note that monitors with resolutions larger than 2.1 megapixel (i.e. 1920 x 1080) require the use of a Dual DVI-D (or DVI-DL) connector. (For more information, see the article on DVI connections at Wikipedia: http://en.wikipedia.org/wiki/DVI)
- The latest and greatest cards can utilize multiple linked graphics cards. This allows 2 graphics cards to be used in parallel to handle difficult rendering tasks. SLI, or Scalable Link Interface, is a term coined by graphics card developer nVidia Corp. to describe this type of setup. A similar feature known as “Crossfire” in used to describe the same type of technology in ATI Technologies graphics cards. Workstations must have 2 dedicated PCI Express slots to handle a multiple card setup. It is helpful if both PCIe slots are x16 (i.e. have 16 data lanes) for best performance. Currently, the only professional graphics cards available with this linking are some of nVidia’s Quadro FX line of PCIe cards. Many gaming cards currently have the SLI/Crossfire technology, but they are still not well-suited for Pro/ENGINEER use.
Monitors
- Having the correct resolution and a high refresh rate reduce eyestrain and offer better visual clarity. CRTs should use the fastest refresh rate (72 MHz or faster) possible to avoid syncing with fluorescent overhead lights. (Note that the default setting for Windows is 60MHz which coincides with the exact frequency of most US electrical systems, and the ballasts of fluorescent lights.)
- LCDs should use their native resolution. Any other resolution involves software interpolation of lines and points, resulting in “jaggy” edges and fuzzy text.
- LCDs with faster refresh rates (<16 ms) help eliminate “trails” and “ghosting” of dynamic images on the screen.
- Look for an LCD that supports a digital input connection (DVI-D, -I) because analog images (from a 15-pin VGA connector) are never as crisp.
Motion controllers
- Yes, they do work to improve a user’s speed and efficiency! Two hands are better than one.
- Sometimes controllers feature programmable buttons to run mapkeys or other commonly used commands. Using these buttons for repetitive modeling or detailing actions in Pro/ENGINEER will increase modeling efficiency.
Tilt-wheel mice
- Not such a good idea. The middle mouse button commands become much more difficult to control because it’s too easy to tilt rather than click the button. Unless you do a lot of spreadsheet work that requires side-to-side motion, leave these mice for others in your organization.
THE RIDE YOU WANT!
If you’re like most Pro/ENGINEER users, you’ve stuck with the standard Wildfire implementation and use less than 25% of the power available to you. If so, you’re missing out on some simple opportunities to improve your Pro/ENGINEER experience. By taking advantage of some basic tools at your disposal, you can quickly customize your config.pro settings, Windows and network setup, and hardware configuration to meet your individual “Need for Speed.”
Tuning Pro/ENGINEER Wildfire will give you an optimized vehicle that can drive your designs to new levels. Good luck and happy motoring! 
Dan Marsalek is a project engineer at North American Manufacturing in the Guiding Systems Business Group. Dan is very active in the Northern Ohio Pro/ENGINEER User Group where he has served on the Board since 2000, and is now Vice President. This Wildfire tips and tricks article is based in part on his presentation at the 2006 World Event in Dallas.
|