Newsletter 4

Final Report

Pro/User 2000 Conference
Orlando, Florida
June 23, 2000

This newsletter brought to your desktop by Sun Microsystems and Dell Computer

Peter Nurkse
Sun Microsystems
Peter.nurkse@sun.com

Subjects for this newsletter:

Long list of stuff here (all the stuff I didn't have time to fit into the first 3 reports). Usually trying to catch up a couple of weeks later is a chore, but, just looking at notes and handouts, I'm easily back in the spirit of the conference, just a great place to meet people and get information.

OK, all right, I admit it, I got carried away documenting Patterning the Impossible. But it's always neat to discover some new capability, not too difficult to learn, that helps ensure your job security (if you're the only one at your company who can Pattern the Impossible, or modify it, that's good security).


Parametric Models from Imported Geometry

Yoram Schechner from Rafael (the Israeli Armament Development Authority) gave this very popular talk. But if you're looking for an easy solution to the problem of creating real Pro/E models from imported geometry, this isn't it, and an easy solution probably doesn't exist. The process Yoram described depends entirely on a person recreating the part geometry from scratch in Pro/E. There are tips and techniques to help, but a person still has to recreate the geometry.

Now you don't always have to recreate the geometry. For many parts, such as standard purchased parts, dumb imported geometry which can't be edited may just be fine. For a purchased part, you may not know the design intent, or the vendor may keep design intent proprietary.

But for a part which you expect to modify later in Pro/E, a part that may have ECOs written against it, you need to build a new parametric part. And to recreate the geometry in Pro/E you need to know the original design intent of the imported part. And understanding design intent will depend at least as much on a dimensioning scheme (dimensions and the relations between dimensions) as on geometry.

It seems that there is still no other objective universally understandable standard description of design intent than a set of fully dimensioned drawings. But after 30 years of MCAD many companies have abandoned fully dimensioned drawings, and get by mostly just on the basis of geometry. Meaning, they no longer have design intent recorded as they used to when they used fully dimensioned drawings.

So, when trying to find out the design intent of some part that's going to be recreated in Pro/E, you may find out the design intent is not available, and quite likely just was never recorded. Then you make your best guess, which still could turn out to be wrong, when later you get change requests to incorporate into your new part.

That probably is going to be the biggest issue with imported geometry, finding out the design intent. But here are some other issues:
  • Pro/E shows missing edges of surfaces in imported geometry in yellow
  • but if you do Redefine > Heal Geom > Manual/Automatic, and select Automatic, the new surface edges may vary. For example, a surface which was originally flat, may no longer be flat after the automatic healing, the edges may no longer be coplanar.
  • or an entity like a line (by definition straight) may be represented after the import by a spline (can be anything at all, not necessarily straight at all)

It seems that regularly with imported geometry, what you get is what a friendly programmer thinks you should get, or what is easiest for that programmer to give you---but not what was in the original part. Surfaces may be no longer flat, and lines may be no longer straight, watch out. Yoram recommended recreating any planar or conical or cylindrical surface in the original part (any analytical surface) as such in the new part. Which, like other questions, may require documentation of design intent.

Yoram presented a method to working with imported geometry:

  • make a reference part, that's the imported geometry
  • then create a working part, that's the new Pro/E part
  • keep the reference part and working parts in one comparative assembly, work back and forth between them, compare them
  • but avoid any dependencies, if you use edges or specify references when sketching, unalign the section afterwards

Comparing Use Edge and Specify Refs, to extract information from the imported part, Yoram provided this table:

Use EdgeSpecify Refs
faster for simple geometrybetter capture of design intent (if you know original intent)
cannot extract full circlescreates full circles
lines might become splinescreates lines rather than splines
arcs might become splinescreates arcs rather than splines

Whichever of these two methods you use, here are some recommended practices:

  • set sketcher_dec_places to 14 (the maximum) in config.pro
  • after creating geometry and construction entities, blank the imported quilt layer
  • switch to maximum part accuracy (1e-9)
  • delete all references
  • now clean up the section, strengthen any weak dimensions or constraints

And here are some techniques for checking your results, checking the working part you've created against the original imported reference part:

  • check mass properties for each part, how closely do they match (similiar to the STEP Validation Properties check). But, this way doesn't tell you where any differences are.
  • visually inspect wireframe graphics of the two parts superimposed one on top of another (visual inspection may seem imprecise, but Yoram said he was able to identify differences in microns, millionths of a meter---this was his personal favorite method to check two parts). Use red and green for the two separate parts, these colors will merge to make white.
  • compare surfaces (export both parts as IGES quilts or shells, then import them into an empty part, set accuracy to 0.1 absolute, and merge the quilts and check for intersections)
  • compare solids (cutout working part from the reference part, and vice versa---you may need to add a protrusion to each part to make the cutout succeed)

Large Assembly Tables

Here are the two tables from Ted Razsa's presentation on large assemblies the first day, which I didn't dare to reproduce exactly in email using Word. Here they are using good old reliable ASCII text.

Tables like these seem a very efficient way to pass on experience and knowledge. The table format itself seems to provide extra information and background, so that less comments are needed. More information in a simpler format has to be good.

First table is Options for Faster Models, then second table is Options for Managing References. Each '+' marks a benefit in that particular area for the method on the left.

OPTIONS FOR FASTER MODELS
Method PDM fetch Retrieval Graphics Regen Comments
Less complex parts + + + + Minimum features
Build SCD as part (SCD = Source Controlled Drawing, any drawing for purchased part) + + + + 
Simplified Reps.  + + +  
Faster Network + +   100Mb speed
Better machines  + + +  
Store work on local disk  +   Significant gain
Store Pro/E on local disk  ?    
Minor parts in 2D only + + + + Loss of associativity
Use patterns reps    +  
Accelerator files  +  + Only for work in process
Layering   ?  Minimal gain, and more work
Erase views   +  Only for work in process
Store view display   +  Increases file size

And here's the managing references list. Looks like a typical engineering situation, no perfect solution, compromises everywhere:

OPTIONS FOR MANAGING REFERENCES
MethodComments
Standard assembly constraints Stays associative, more training to manage (reorder, reroute, redefine)
Use skeletons Minimal gain, complex to manage
Assemble to coordinate systems or offset datums In-process work only, loses associativity
Package components No parent/child references, loses associativity
Simplified reps Minimizes available references
Color allowable refs Lots of work, minimal gain
Part rep of allowable refs Lots of work, also minimal gain
Layer with allowable refs Exists (functional_datums), library parts only
Pro/Notebook Doesn't manage references well
Map parts Same comments as for skeletons
Top down design More references to manage, configuration control problems

Productivity Tools

Adalberto Ribeiro from ABB (Asea Brown Boveri, the Swedish Swiss global electric power company) gave a presentation last year on some proprietary ABB in-house tools for cabling and piping in Pro/E. But, being proprietary, he was unable to distribute these tools.

But this year Adalberto came prepared to show 5 tools which are not so proprietary, and which can be evaluated and purchased by any Pro/E user. So far they have been developed to run only on Pro/E on NT, but Adalberto said he will consider requests for Unix platforms.

A full description of these tools, and how to evaluate and purchase them, is at www.tools4cad.com. Go to the Downloads page to read a description of each tool. Here's the simplified description from the conference:

  • Retrieval tool. Lets you filter various different file types on one list within Pro/E, lets you select multiple files to open at the same time, and lets you sort the list by name or by date and time (very handy, see most recent work first). Adalberto mentioned a comple of disadvantages, type of problem that can affect any custom programming: there is no scroll bar, and there's no preview window like on 2000i2.
  • Navigation tool. Lets you navigate between assemblies and subassemblies and parts and drawings just by clicking on objects graphically, or in the model tree. Option whether to retrieve object selected or its drawing. And you can even retrieve objects by selecting cells in your BOM. You don't need to know any filenames, although to correlate objects and drawings they need to have the same name (prt0001.prt and prt0001.drw, for example).
  • Move Component tool. Lets you select components graphically, and then searches down recursively to find the assembly dimensions, and displays them (never displays feature dimensions, guaranteed). Works no matter how components were assembled, lets you move "any component that is moveable", and you don't need to know how the assembly was created. If you're sceptical, you can try the 30 day free trial (as long as you are running on NT).
  • Save tool. Lists just objects which haven't been saved, with different file types listed together, again sorting by name or by date and time. You can do a Save All if you want. And list is independent of current object, whatever that is. You can save from one list anything in session, and save as many objects as you want at one time.
  • Layout update tool. Lets you update multiple parameters throughout a Pro/E assembly layout from one simple text file at one time. Saves modifying parameters one at a time.

Patterning the Impossible

This popular session, by Paul Gear from Advanced Parametric Concepts, was given Tuesday and repeated Wednesday, and got the prize for the best user presentation. Paul showed how to control dimensional patterns using simple relations. If you want to automate using Pro/Program you can do that, but the foundation of simple relations is easier, you don't need Pro/Program.

Paul has a couple of parts right on his Web site, www.advparametric.com, that you can download to check out relational patterns. Name of the file to download is profiles_examples.zip. My example below is based on the rectangular part.

Using the advanced technology of ASCII graphics, here are some of the typical patterns you can create using simple relations. In each case, there's just one initial hole, and just one pattern based on that hole. Total of two features for each of these examples, one hole and one relational pattern:


                       O O O O O
                       O       O
                       O       O
                       O O O O O

                          or


                           O
                          O O
                         O O O
                        O O O O
                       O O O O O

                          or

                         O O O
                        O O O O
                       O O O O O
                        O O O O
                         O O O

Take that first example, how do you do this? Say, you start in the lower left corner, with hole no. 0, you can go around the pattern in an anti-clockwise direction.:


                    11 10  9  8  7

                    12           6

                    13           5

                     0  1  2  3  4

Using Pattern Relations, you can create two equations, one controlling the horizontal movement of your hole, and the other the vertical movement, as you take your hole on a walk around the rectangle. For each hole in turn, the two equations are evaluated, and the hole is placed at the resulting location.

Why start with 0? That's because programmers are different from the rest of us, they always start with 0, they don't start with 1 like us. Keep in mind here you want 14 holes total, numbered 0 to 13. Helpful probably to do a sketch before any relational pattern work.

So, now you can start creating a relational pattern. Put a hole 0.5 units diameter in the middle of a plate which is at least 10 units on a side (make the plate plenty big, so if you make a mistake and put holes in the wrong direction, they'll still end up on the plate). Then from the menu:

Feature > Pattern > Pick (select your hole) > General > Done

Andy emphasized that with any pattern, it's worth creating it as a General pattern first, the most robust form of pattern. After you're sure it works ok, you can always redefine it as a Identical or Varying pattern for faster regeneration. Then:

Relation (skip the default Value) > <select horiz dim> > Edit

Now you're plunged into a plain old text editor, not Pro/Table at all. This isn't the table method of defining a pattern. But remember to quit out of the text editor after saving your work there, if you leave the editor window open you won't be able to do anything else in Pro/E.

And you get this intimidating greeting:


 /*  Enter relations using the following symbols:
 /* memb_v - relation driven resultant dimension in this specific direction
 /* memb_i - relation driven increment in this specific direction
 /* lead_v - leader value (dimension selected to determine direction)
 /* idx1   - pattern instance index in the first direction
 /* idx2   - pattern instance index in the second direction
 /*   DO NOT USE memb_v AND memb_i IN THE SAME RELATION
 /*-------------------------------------------------------------------

As Andy said, that alone has probably deterred most people from using relational patterns.

But all you need know here is two symbols, questionable how much you'd use the other symbols. The two symbols are:

  • memb_i the amount you want to increase or decrease the dimension you just selected for a particular hole (the horizontal dimension if you're working on the equation for the horizontal dimension, or the vertical dimension if you're working on that equation)
  • idx1: the number of the particular hole. First hole is 0, second hole is 1, hole at lower right corner is 4, hole at upper right corner is 7, and so forth.

We're looking for an equation to control horizontal motion around the rectangle, so, here it is. I've put in my comment lines with a /*, just like the comment lines above, so they won't interfere with the program.


 /* horizontal dimension equation

 /* this equation will run for each hole, starting from no. 0, going from
 /* no. 1 to no. 14. Equation will run first for hole no. 1, place that
 /* hole. Then run again for hole no. 2, place that hole. And so on until
 /* it gets to the last hole in the number of holes you specify, here
 /* 14 holes. All holes are 1 unit apart.

 /* start off incrementing horizontal dimension by 1 for each hole

 memb_i = 1

 /* after hole no. 4, lower right corner, stop incrementing that
 /* hor dimension at all, let it stay fixed while the second vertical
 /* dimension equation drives up the right edge (you'll create that
 /* equation after this one, this equation is just horizontal motion)

 if idx1 > 4
   memb_i = 0
 endif

 /* after hole no. 7, upper right corner, now start decrementing the
 /* hor dim for each hole by 1, to move them back to the left side

 if idx1 > 7
    memb_i = -1
 endif

 /* and finally, after hole no. 11, upper left corner, stop changing
 /* the hor dim once more, leave it fixed while that second vertical
 /* dimension equation brings the hole back down

 if idx1 > 11
    memb_i = 0
 endif

And now you can go on to do the second equation, to control vertical dimensions of each hole in the pattern:

Done > Relation > (select vertical dim) > Edit

Here's what you'd type in there, for the vertical equation:


 /* vertical dimension equation

 /* just like the horizontal dimension equation, this equation runs
 /* over and over, once for each hole, starting with creating hole no. 1
 /* and finishing with creating hole no. 14

 /* start off with vertical dimension fixed, not changing

 memb_i = 0

 /* after hole no. 4, lower right corner, start incrementing vertical
 /* dimension by 1 for each hole

 if idx1 > 4
   memb_i = 1
 endif

 /* after hole no. 7, upper right corner, fix the vertical dimension
 /* so it doesn't change, no increment

 if idx1 > 7
   memb_i = 0
 endif

 /* and after hole no. 11, upper left corner, reduce the vertical
 /* dimension by 1 for each hole to finish the pattern.

 if idx1 > 11
   memb_i = -1
 endif

When you develop a pair of equations (hor dim and vert dim) for a particular hole pattern, worth saving them as separate text files, to use again on other parts, just cut and paste to reuse.

After entering both equations, you get this final question, just like for any pattern:

Enter TOTAL number of instances in this direction (including original):

But remember that even though you're going in different directions, Pro/E figures only one direction, controlled by two dimensions. So enter here the total number of instances in your entire pattern (in this case, 14 holes).

And that's it. Your entire pattern will be generated from those two equations, for the total number of holes you entered.

To edit a relational pattern, after you've saved the part, just go back to the Part menu and do this:

Relations > Pattern Rel > (pick the pattern) > (pick a dimension)

Since you're really only going in one direction on this pattern, the Second Dir choice will be greyed out, and you'll have only 2 Driver Dims to pick. After you pick one dimension, then do

Edit Rel

to get back into that text editor to edit that equation.


Engineering Management at Airbus

Bob Landeg from Airbus, the European rival to Boeing in the airliner market, gave a very interesting talk. Bob's title there is Manager of Concurrent Engineering. He started off by saying they use Computervision CADDS5 for design, which he said Dick Harrison would not like, but he said they are moving to Windchill for configuration management, which Dick probably would like. Airbus isn't using CADDS5 because of some ancient legacy constraints, instead they held an open benchmark back in 1996 for a new mech. design system, and CADDS5 trounced the competition, including Pro/E, for their needs.

Although Airbus is a European company, the 12 largest subcontractors are in the US. And as probably typical at the largest manufacturing companies, Bob said they probably have all the software packages in the known world, including the top 5 CAD systems, to work with all their contractors and partners. They tried to build their own custom solid modeling system in 1995, based on Parasolids (like some other large manufacturing companies), but after spending $4 million only gained 4 users, a cost of $1 million per seat. Bob said in retrospect they could have just dropped the project at the beginning, given each user a Ferrari, and come out ahead.

Airbus is right now this year on track to become an independent single company, but so far it's been a consortium of 4 separate aerospace companies from the UK, France, Germany, and Spain (Aerospatiale, British Aerospace, DaimlerChrysler Aerospace, and CASA from Spain). There's an obvious problem with trying to develop common tools, methods, and processes. Back in 1996 (at the time of that CAD benchmark) they set a goal of implementing concurrent engineering methodologies, remembering that 80% to 90% of such change programs fail.

They are now doing same day upgrades of engineering tools, including process changes, for over 600 people. They require all related software versions to be delivered 3 months in advance, for testing independently and together. The first of these upgrades took two weeks to finish and sort out the confusion, but Bob did keep his job. After the most recent Airbus wide upgrade, Bob got a call from one user asking when the upgrade was going to happen, who couldn't believe it had taken place so easily.

Airbus has integrated KBE, a knowledge engineering tool, with CADDS5 and NASTRAN to design complex structures like wing ribs. That's a big investment in automation, but they've seen 30 man years shrink to as little as 6 days, to make a sudden overall change to a wing. They used to use as many as 2500 drawing sheets to document a rib, now they can do that with 1 CADDS5 solid model and 5 sheets (not quite paperless). They used to have an engineering team spend 6 months to fix several hundred problems on a new rib set for a new wing, but on the last set they had only 1 problem recorded.

All these CAD sucesses still leave a job to do in configuration management. Airbus is looking to implement Windchill as a enterprise product data management system, as a single source throughout the company of product and process data. Windchill will be replacing a 1970's era configuration management system (an example of how CAD systems may change slowly at a company, but PDM systems usually change even more slowly, a different time scale entirely).


Florida travel notes (bonus)

Last year's travel notes bonus was all about Waxahachie, a small historic town south of Dallas. This year's notes are about the Florida northeast coast.

I have to admit, growing up in New York and New Jersey, my impression of Florida at a distance was flat and dull and boring. But visiting it now there seems to be always something new to find in Florida. Here are travel notes from this trip:

Flagler Beach

Flagler Beach is a small town on the Atlantic Coast of 3000 people, that's all. And quite unlike coastal development in California. Every single motel and restaurant and gas station in Flagler Beach is right on the ocean, all of them about 200 feet from the surf. Very democratic, equal, unlike California, where the price of your room is measured by the distance from the surf.

Pelicans fly in formation right down the center line of the main street in Flagler Beach, haven't seen that anywhere in California.

Moonrise over the Ocean

On the West coast, we can't see the moon rise over the ocean, because here the moon rises over land, in the direction of Nevada. To see the moon rise over the ocean, you have to go to the East coast. Walking along the beach on my first night, wriggling toes in the warm water, I saw the full moon rise up over the Atlantic. Up through layers of clouds, alternately visible and hidden, until finally it broke clear into the upper sky. While on the landward side massive thunderclouds were lit up from within by displays of aerial lightning. Somehow the typical California sunset over the ocean seemed perhaps dull.

Washington Oaks State Gardens

Florida doesn't have just State Parks, but also State Gardens. I passed by one, Washington Oaks State Gardens, on the way north from Flagler Beach. Stopped by out of curiosity, then spent almost 2 hours just passing time there. One of the most relaxing places I've known. Small, not very large, no fancy horticulture, but just paths winding around with ponds and simple fountains, and very comfortable wooden chairs at each bend. Was hard to leave, got out of one chair just to sink into another.

St. Augustine

You know the usual welcome sign at the entrance to a city? Greetings, plus when the city was founded. At St. Augustine it modestly reads:

Welcome to St. Augustine Founded 1565

True, oldest town in the US, over 400 years old. It was burned down regularly in the early years, so not much remains of those buildings. But there are plenty of businesses and residences in the 200 to 300 year old category. They did have to be rebuilt and renovated regularly, otherwise they wouldn't be here today, but they are an authentic hodgepodge of styles. Some more Caribbean, some more New England, depending on who was in power in St. Augustine at the time (the Spaniards, or the English, or the Americans).

There are the usual T-shirt shops in some of the older buildings, and other tourist trap places. But down at the end of the town is a real historical relic, which anchors the whole place firmly in time, the Castillo de San Marcos. An entire stone fortress, on the very best Spanish 17th century principles, with bastions and moat and drawbridge and sheer tons of stone. There's a gift shop on the first floor, but nothing could much alter the impact of this fortress.

Travel Tip

In Outdoor World in Orlando, a sporting goods store 600 feet long with a 5 story high central aisle, I found a stuffed colorful trout fish pillow 5 feet long (sort of on the same scale as the store). Wife has always liked stuffed fish pillows, we have a few around the house. So I got the 5 foot long one, wondering though how I'd get it across the country.

No problem at all transporting it. As soon as I entered the airport, carrying my 5 foot stuffed trout pillow under my arm, people started laughing, and people kept laughing all the way. Three ticket agents standing side by side cracked up, then their manager came out from a rear room to see, and he cracked up too. Maintenance people couldn't help laughing, so did any security staff I passed. Generally, the fish (or, me carrying the fish, to be more exact) made people laugh within a radius of 150 feet in any direction. Instant merriment all around.

My tip here is, anytime you want to brighten up a plane trip, and brighten up the lives of your fellow passengers and the crew and the airport staff and everyone else in sight, take along a 5 foot long stuffed trout pillow, it works.