You are not logged in.
How to, best practice, to create Verify STL is good for Vericut?
My goals are
To find the best way to create a STL file for Vericut
To find the best way to repair a STL files
To understand the Vericut tools for dealing with STL files.
To understand the repercussions of using a STL file anyway, when Vericut says " design consistency check fails"
First let me state that, I am sure that this is a Garbage in, Garbage out situation
Even Catia business partners will tell you that if you can not load a V4 Catia file into V5, it needs to be cleaned up in V4. I saw that in a webinar last month.
What to do if Models cannot be repaired, using PolyFix, or consistency check?
I understand that PolyFix to used to correct inverted normal's.
I understand stock and design consistency check, checks the models for "watertight" improperly trimmed surfaces (overlaps and gaps),
We have FMI CREATED Mode files.
Reading in Catia Catparts, and creating STL, STEP, IGES
Again, I want to find the best way to create a STL file, verify at that time, that it is usable for Vericut, and get on with my life.
questions?
1. Can stock and design consistency check create a savable STL file, the way polyfix does?
2. Are stock and design consistency check doing the same thing?
IE if a design part was loaded as stock and design, doing a design consistency check, would do the same operation on the design part, that checking stock consistency would do to the stock?
3. if it fails, and I get the message Model cannot be repaired, try using PolyFix to correct normal's,
3A how does that effect AUTODIF surface mode?
3B how does that effect AUTODIF solid mode?
3C how does that effect AUTODIF new 6.1 constant gouge check?
4. Is there anything in the works for addressing this with Vericut?
5. I know there is a product from Elysium, that addresses STL files.
has anyone tried that?
Dave Frank
Aerospace Dynamics International, PCC
Valencia Ca
"Where else can you have this much fun,.......and get paid???."
Offline
Working with STL files in VERICUT can be difficult, mainly because of bad STL data, a classic computer-science garbage-in/garbage-out (GIGO) situation. It may first help to understand what STL is, both historically and logically, then discuss what VERICUT does with STL, and how to deal with bad STL quality.
STL was created by 3D Systems as a simplistic method to represent CAD solid models for use in Stereo-Lithography (SLA) machines. See http://en.wikipedia.org/wiki/STL_%28file_format%29 for more info if you’re interested. It is similar to the old faceted boundary representation (BREP) solid model, but with only triangular facets and without the face/edge relationship. Thus there are no “curved†surfaces or features in STL. In fact there are no surfaces. There are only triangles, represented by 3 vertices (points) in space, and a normal that is supposed to point outward (away) from the object.
The original purpose of STL is to transfer an approximate solid object to an SLA machine, which then creates planar slices (consisting of closed boundary curves) through the object, stacked along the travel-axis of the machine. The machine fills each boundary with a thin film of plastic or other material. All these thin slices stacked up create a rough physical approximation of the CAD solid model.
There are a few key points in the above 2 paragraphs:
• The STL model describes a solid object, meaning it describes a water-tight volume, but it is not a “solid modelâ€
• The STL model is approximate, everything is represented by facets (planar shapes)
• The triangular facets are un-ordered and logically unrelated to each other
VERICUT uses STL as a convenient way to use CAD geometry for a simulation’s machine models, tool holder models, and stock/fixture/design models. We generally expect 2 rules to be followed (with a couple of exceptions below):
1) The STL model must be water-tight
2) All triangle normals (the direction each triangle faces) point in a consistent direction (outward from or inward towards the object)
Let’s look at what this means.
The STL model is water-tight
STL used for VERICUT’s stock, fixture, design solid (not surface) and tool holders must be water-tight. Also, using an STL file in a machine component attached to a spindle, such as lathe chuck jaws or facing head, must be water-tight for it to spin correctly.
Some rules must be followed to ensure that the object represented by the STL is water-tight.
1) Each triangle’s vertex (there are 3 of them) matches vertices of at least 2 other triangles. Imagine a 3-sided pyramid (consisting of 4 triangles). This is the minimum solid object that can be represented by triangular facets. Of course many more triangles can have a common vertex (imagine the top point of a 10-sided pyramid). If any vertex does not match at least 2 other vertices then the STL is not water-tight.
2) The three vertices of a triangle must not be co-linear. This is called a degenerate triangle because it is not a triangle, it is a line.
3) Triangles must not overlap or be coincident (same 3 vertices).
4) Triangles must not intersect.
Individual models (each a closed volume) in one STL file are ok, but they must not intersect. If the models have co-incident faces (causing co-planar triangles) it may be ok, but this is usually a recipe for problems because of computer round-off. If the STL is not water-tight then a bad cut stock with bad graphics, bad features and unreliable collision checking, or bad AUTO-DIFF results can occur.
VERICUT does not require water-tight STL models to represent machine components. However, using a leaky STL may affect its display and may affect collision checking, i.e. it is possible to move something into one end of an open cube with no collision detected. But a water-tight STL is not required. A water-tight model is also not required for AUTO-DIFF surface. In fact a closed water-tight model may be undesirable since the design model for AUTO-DIFF surface should only cover what is being checked.
Triangle normals point in a consistent direction
VERICUT uses the triangle normal to determine which side of the triangle’s “plane†the material lies. It also uses the normal to shade the triangle display. There is a switch in VERICUT’s model dialog for choosing “Outwardâ€, “Inwardâ€, or “Computedâ€. “Outward†and “Inward†use the normal supplied in the STL file and assume it points in one of the chosen directions. If “Computed†is selected, then the normal supplied in the STL file is ignored and VERICUT computes an “outward†normal based on the right-hand-rule order of the 3 vertices. But in any case, when VERICUT needs a water-tight STL, it requires all normals consistently outward or inward with respect to material.
STL problems
STL problems can be categorized into:
• Syntax
• Topology
• Normal
Syntax problems (where the text in the STL file does not follow the rules) are usually straight-forward and not all that frequent these days. Occasionally we see problems with binary STL files, but we’ll reserve syntax problems for a different discussion.
Topology problems are frequent and happen for different reasons. A topology problem occurs when the 4 “water-tight†rules listed above are violated. Topology problems are very difficult to detect, and even more difficult to fix because STL is a container full of unordered and unrelated triangles and it is virtually impossible to “re-order†them without a lot of human intervention (decisions about what should be connected to what).
Bad topology typically shows-up as holes in the model or stray triangles with one corner shooting off into space. Frequently the topology error is very small and not visible, but never-the-less causes problems for VERICUT. Some common causes for topology problems are:
• CAD system’s bad STL output algorithm writes degenerate, missing, overlapping, coincident or intersecting triangles.
• User outputs a CAD assembly of several models into one STL, creating overlapping, coincident and intersecting triangles.
• User outputs STL from a surface model, not a CAD solid. Common surface edges are not logically matched in the CAD system, so each surface is tessellated independently, producing unmatched vertices. Also common are inconsistent normals for each surface, since there is no “material†or “volume†associated with a set of surfaces. This is typical of STL created from an IGES file.
• Computer round-off of vertex values creates un-matched vertices or degenerate triangles. This is especially common when using a VRML file (.wrl extension) because of VRML’s fixed-format number syntax.
Bad or inconsistent normals can also cause apparent holes in the model or Cut Stock created from the STL since VERICUT uses the normals to decide which way the material lies. Thus an STL model can have good triangles with correctly matched vertices, but the normals may be bad or inconsistent, causing material to be located on the wrong side of the plane. This is commonly seen when STL is created from surfaces, not a solid object, resulting in large holes in the Cut Stock display.
Bad normals can also cause funny shading since the color hue and intensity is controlled by the triangle normal. If the normal is pointing exactly backwards, then the shading may be on the “wrong side†of the triangle. This results in chunks of the model disappearing and appearing at the wrong time when the image is rotated.
VERICUT options for working with bad STL
VERICUT provides two methods for working with bad STL files: Stock/Design Consistency Check and Polyfix.
Stock and Design Consistency Check is used to ensure VERICUT’s internal solid cut stock is water-tight, even if it is being created from bad STL data. The check is enabled for Stock via File > Properties > (General) Stock Consistency Check check-box. Checking the box adds an additional internal step when creating the Cut Stock from STL. The resulting cut stock is guaranteed water-tight and a message reports if any problems were detected. The method may fail if the STL is too bad to create a good Cut Stock. It may also succeed, but produce undesirable results (bumps or depressions in the fixed-up regions). This check can take awhile, and is performed when VERICUT creates the Cut Stock from STL (pressing Play after a Reset). To permanently save the fixed-up results, press Step when initially creating the Cut Stock, then save a VERICUT Solid (save without features in this case). Replace the STL with the saved VERICUT solid, and un-check the Stock Consistency Check check-box.
Design Consistency Check performs the same function on the design STL when using AUTO-DIFF Solid compare. The check is located at Analysis > AUTO-DIFF > (Options) Design Consistency Check. This check can also be quite time-consuming (same check as on the Stock STL). To avoid repeating the check each time AUTO-DIFF is performed in the same session, check the AUTO-DIFF option to Keep Design Solid.
Polyfix is a utility program that reads an STL file, attempts to correct inconsistent normals, and writes an STL file back out. It uses a statistical method to try to determine the correct normal direction based on neighboring triangles. Because it is a statistical method it is possible for STL file quality to improve by running it recursively. However it is also possible for the file quality to stop improving or even deteriorate with repeated runs. Generally regions of high curvature with many small triangles will fail.
Other options for fixing bad STL
The BEST OPTION for fixing bad STL is to fix it at the source. Frequently CAD systems have options or techniques that can improve STL quality. All avenues within the originating CAD system should be explored before asking VERICUT to repair bad STL results.
There are also stand-alone commercial software products specifically designed to fix bad STL data (hmmm… I wonder why these products exist?). They are not inexpensive products, and are generally labor-intensive, requiring user-input to identify and fix specific problem regions on the model.
Alternatives to STL
VERICUT can read a CAD model using a CAD Model Interface. The interfaces are based on the InterOp products from Spatial Technology, and read STEP, ACIS SAT, CATIA V5 and CATIA V4. These CAD formats all may contain solid model objects, but also could contain surface models (not water-tight volumes). When using a CAD Model Interface, VERICUT creates the triangle facets internally, rather than relying on the originating CAD system to do it. This may not be better than the CAD system, but is certainly a different approach and may produce better results if you are getting bad STL data from CAD.
IGES is a final alternative. But IGES DOES NOT contain solid model data. It only contains disjoint surfaces which are guaranteed to produce triangles with unmatched vertices. IGES files can only be reliably used to create STL for AUTO-DIFF surface, which does not require a water-tight STL.
Offline
WOW
Thanks for the very comprehensive reply. Wasn't expecting that that much, but I'm glad you did.
I have one further question.
With regards to AUTODIF using the new 6.1 constant gouge check.
Am I better off using the STL for new CGC, or is the VCT file created as you described (Load STL, press step, save VCT) just as good.??
My thinking is the Cut Stock accuracy, (or is it Autodiff accuracy, hmm not, sure looks like 2 questions) is dependent on cutting tolerance, which is dependent on RAM. I am the only user so far on 64 bit with 8 gig of RAM
Thanks
Dave Frank
Aerospace Dynamics International, PCC
Valencia Ca
"Where else can you have this much fun,.......and get paid???."
Offline
Dave,
I'd only use the VCT as a last-chance technique to repair a bad STL that cannot be repaired any other way.
A conversion happens to get the STL into VERICUT's "solid" form. And as you rightly suggest, the accuracy of the conversion is affected by VERICUT's cutting tolerance. And the PRACTICAL limit on cutting tolerance is determined by physical memory.
I wasn't exactly trying to answer all your questions in this post, but I thought it was a good excuse to give my worms' eye view of STL and using it in VERICUT. I hope it helps you and others.
Bill
Offline