How to obtain the jele of a missing surface from SolidWorks

August 31st, 2010

Jele are integers used to identify indiviual elements in a CATIA V4 model. Some elements are named (solids, mockup) but if you want to identify precisely a face jele is the way to go. This is not for day to day operation but it could help when we deal with very heavy models or very large assemblies were we have a single critical face we need.

The jele will appear in some places in CATIA when you select an element or in the treeview on the right side. See how this is used in reporting issues for migrating from V4 to V5 by IBM, or by users:

How to get a jele from SolidWorks when we have no CATIA V4 available? Simple if you use RadialSoft translators. Remember we specialized in heavy duty translators to help you get your job done under every condition. When a file is translated every attribute is carried forward to SolidWorks. So click a face and use the RS3DHub menu (usually after “Help”, sometimes with no label) and in this menu use “Track CATIA”. This will display the jele of the face in decimal format.

Now when the face is precisely missing it is simple to select one after the other two or three adjacent faces and just send them to us. We have internally the tools to find all common surfaces.

Here is a trick we use to do a partial translation. It can be used by anyone to extract only partial information from a CATIA V4 model file. Create a text file near the .model file with exactly the same name but with the ‘.xml’ extension. Place the following contents in the file were %A% and %B% stands for the jele of the two nearby faces. We call such a file a policy. It allows having settings overloaded for a single file. The weird syntax is due to the XML standard. It is a very common format used across the IT industry. Our log file follow the same standard allowing automated processing.

<?xml version=”1.0″ ?>
<Settings>
<RadialSoft>
<SldCATIA
    Select=”;%A%;%B%;”
/>
</RadialSoft>
</Settings>

PS: Only models translated with our translator will have this information. Sorry.

Usability of translation results

August 26th, 2010

I reply here to a very recurrent question about usability of models and the alternative to translating features.

A customer asks :

I am worried about the construction and use of the models.

In CATIA we have a hierarchy of elements, the parents of which are normally solids or volumes, these elements can be fully manipulated if fully translated into Solid works, in this example we have only surfaces, faces, and basic elements therefore cannot add/subtract solids

First of all SolidWorks have now several options to manipulate surfaces directly. However they may not be first class citizen in the menus. This could be the subject of a training and could be followed by formalizing best practices to deal with this to be feed into your internal HowTo’s database.

Second, all the mentioned solids, and wires can be translated into SolidWorks as well. This is controlled by the following options:

  • GetMaskedEntities (default is false)  ( “Import Hidden Entities” in dialog box )
  • ReadIsolatedCurves (default is false) (not available in dialog box)
  • ReadWireframeIFF  (default is false) (not available in dialog box) force to read wires if no solid is found.
  • ImportIsolatedSurfaces (default is true) (“Import Isolated Surfaces” in dialog box)

These options can be defined as a policy in an xml setting file near the files to be translated. Like this it’s possible to define options based on what is in the file. Some parts can be translated as small as possible (typically light group models or fasteners) while others like surface design can be translated with all their intermediate constructions and tools.

Now in the part considered most solids are built as sweep of curves sets. As intuitive as it looks the sweep surface construction is far from obvious. In the early days (and CATIA V4 was there) sweep were typically implemented as a product of poles and weights. Very easy to implement, looks good enough, but not good for anything because shapes have a tendency to be flattened in the centre. Modern implementations are done with multiple cross section generators followed with an interpolation. How the sections are generated and how the interpolation works is really a feature of the software. As opposed to Nurbs, cylinders, cones or torus there is no common ground for this computation. So if you rebuild a sweep in SolidWorks with the same base curves you may not lead to the same exact surface. Usually implementators are kind enough to enforce end conditions. So if you start with a section and end with another, the sections are part of the resulting surface. But this is not true for sections anywhere in between. So if you used booleans, trim or fillets to connect the surfaces and redo the same work based on newly generated shapes you may end up with a slightly different result. You may accept this deviation or not, depending on where on the design chain you sit. If you are a subcontracting or manufacturer you can’t, if you are the original designer you can, if you are designing a replacement of the part you can’t.

This is among the reasons that makes feature based translation inapplicable to many situations and is in favour of translating models as dumb solids, provided the translator includes a post translation deviation check as RadialSoft translators offer.

Establishing corresponding good practices on SolidWorks leading to surfaces as similar as possible could be the subject of a training with lessons learned extracted at the end.

Correspondingly it is likely that the same design intend would be done totally differently using SolidWorks. This could be explored as well in a dedicated training.

CATIA Translation quality taxonomy

August 16th, 2010

I am collecting a list of common translation errors and suggesting a way to describe translation quality.   

We are currently engaged in a large migration project combining ENOVIA PDM and CATIA V4 migration. The acceptance process of the geometric translation engine between CATIA V4 and SolidWorks is based on evaluating it on a large set of files. For this purpose we need to have a predictable way to describe errors in a short string.

This serves also a list of typical errors encountered while translating geometry. From customers experience it seems that other translators face similar exceptions. Not surprising since translating CATIA V4 files usually involves discovering limited design and enhancing geometry. In some occasion such an encoding could help in software benchmarking.

The list is in the order of decreasing importance. This means that when describing a translation we build a string of all defects found starting with the defect of highest priority. The list is separated by semi-colon “;”. So you get something like “MissFace;Sew;Color”. It is not case sensitive. A single occurrence of a defect causes the string to appear. There is no provision for multiple occurrences because we look for a success rate near to 100%, no need to compromise. Next step is to sort by this quality string and count.

Crash: Obviously this is the most dreaded error. You expect that there is no result at all and that the quality string will simply be “Crash”. Not true some parts could have been already translated before the crash. Crash is really program exit without any RadialSoft dialog box showing up.

Failed: This means that the system stopped somewhere with a RadialSoft dialog Box with an error message displayed. As for crash some results could have been produced but the termination was not normal.

MissPart: a part or a sub assembly is missing. This is a major error because since it s missing it can as well hide an important error.

 MissFace: A missing face or surface. Even if the result could be healed and turned into a body, the geometry is wrong, however very small faces may disappear without impacting the resulting geometry. It has to be appreciated visually. There is no one to one correspondence between input faces and output faces. Some are merged, some are split.

NotABody: the resulting part is not made of a body. With SolidWorks we expect an “Imported body” feature. If we don’t have such a feature we get one or more surfaces.

Hole: some faces have not be well translated resulting in a hole in the output.

Gap: Some gaps are found in the result.

Twist: Some kind of twist occurred and faces are stitched on the wrong side or twist in the interior of a face. Distorted geometry will also fit here.

Periodic: Issues related to periodic surfaces. Usually wrong side of a face is taken, or borders are truncated, self intersecting. This is a diagnostic flag mostly used by us and based on an inspection using the viewer.

Empty: Result is empty. It is quite rare.

Orient: A part is badly placed in the assembly. It is quite rare.

Extra: Some extraneous geometry was produced. It is typical that extra workspaces or hidden layers are translated as well. They can be seen when the assembly ending with ROOT is opened. If they are visible when opening the file corresponding exactly to the input file (it could be a part or an assembly) and it is not desired than it is an error. It could happen also with an extra face or surface.

Color: Output color is not corresponding to input color. This includes cases where some faces carry a different color and the corresponding faces don’t match them.

Attr: Some attributes like “jele” are not available on the target model.

Errors: some errors are listed in the dialog box. The process was not stopped and if there is no visible error on the result it could be minor.

Warnings: Some warnings where displayed. Typically precision overflow, continuity in input data.

Log: Log is wrong or some information is missing.

Badmodel: This means the input file was not proper because it didn’t contain any supported entity.

CorruptInput: Input file is corrupted.

Translate CATIA V4 .model files using STEP

April 3rd, 2010

This is question I came across several times. This time I picked it from a forum.

Quote (Edited):

The best method I have found is STEP files.

I use a program called ADOBE 3D Viewer, which directly opens CATPART files, and they can then be exported as a STEP and opened in SolidWorks.

You will find that features such as cylinders will get broken into two half cylinders, making mating to the STEP files difficult (often easier to delete the face and replace with a SolidWorks component).

This user is perfectly right. Typical case of ‘Lost in Translation’ (see  0:12).

The .model contains actually 2 models: one in faceted solid but with links to exact geometry (cones, cylinders) and one purely surface bspline based but with transponant. To make things easier all surfaces are splitted so that periodic cases never occur. To keep up with tolerances, surfaces are actually patches of surfaces so a simple cylinder can be made of up to 36 surfaces. 

The benefit of direct translator is that it will use in the same time the capabilities of source and target system. When using an intermediate file like STEP the translation is blind. Direct translation must be understood as a continuous dialog between original data and target system. To be safe the STEP as to be generated on the least know capability of systems so the result is heavy and vague.

Tolerances: The tolerance available in the CATIA V4 .model file can be used to stitch surfaces. Using STEP you are bound to STEP tolerance model which is weaker than CATIA V4 model and weaker than SolidWorks capability. Guess what you lost information during the transfer.

Surface Type: Using a direct translator both models are used. If the original surface is supported on the target system let’s leverage it. If not it is still time to degrade it to a nurbs. Only if the system don’t support nurbs will we split the surfaces to small patches. A contrario if target system supports cyclic surfaces we will on purpose join the two halves of the cylinders, cones to obtain a single seamless surface.

Attributes. Yes at some stage it count be useful to be able to track original JELE identifiers inside the target model. We are focused on the industrial, heavy-duty market so tracability is part of quality. Keeping track of links with original data is a way to assure that the ‘lost in translation’ can be evaluated.

Comparison: This is another advantage of direct translation. ability to load imported models as near as possible from the original representation and eventually comparing the model as finally built-in the target system allows to confirm the quality of translation. Comparing source with intermediate and again intermediate with solids in kernel solid modellers is way different from comparing original to final using target APIs. 

Size: .model can be very large. 200 megs is common in automotive industry. They can even been grouped via a .session file. Most STEP importers will not accept such volumes.

Now on the benefits of using neutral files I found:

  • Long term conservation. Instead of aiming a precise target we keep a neutral file we will be able to load in a future system. This is specially important when doing a project review long after for extracting lessons learned and best practices.
  • Exporting to Step is available in CATIA. It’s also available in SolidWorks and free. If sender company was willing to cooperate this would be an easy and cheap solution. This is not common. It would depend also on agreement on the way to use and understand standards.
  • We have seen recently some occasions where the translation was done in a different shop. Three parties were involved Sender, Intermediate and recipient of the file.

This is the original article on Engineering tips.

Free CATIA Viewer

March 2nd, 2010

Regularly mails pour into our support mailbox requesting free viewers for CATIA Data. We do have viewers internally but they are either not supported or not free. Now I turn my blog into an open question: What do you readers use as CATIA viewers ? Could you display all file formats ? .model, .exp, .CATPart and .CATProduct ? On which operating system ? Feel free to suggest any name in comments.

Software being both Open and Closed.

February 5th, 2010

A good start. Today is day one of this blog dedicated to RadialSoft Corp activities and CAD Data Translation.

This week has been dominated by basic stuff. For us getting back to basic means working on surfaces and geometry. What used to be very complex years ago is now very stable and we seldom check the code again. Kind of if it is not broken don’t fix it. True but models and computer evolves. Models become larger, more complex while computers are much faster.

So what was the issue here is to improve capacities while retaining original performance. Again the choice of c++ and heavy use of template was very helpful. We designed a system using dynamically heap or stack depending on sizes. Just a simple change of template et voilà !.

Reminds of me of the lessons of Betrand Meyer. Software must be closed and open. Open so that changes can be applied continuously, closed because unless it is stable you can test and make it reliable. Modular programming and now Generic Pogramming (see http://www.generic-programming.org/~dgregor/) get us always nearer from this goal.