Jump to content

What is the difference between a prealignment of a mesh and a CAD verses an all over profile of mesh to CAD with no datums


---
 Share

Recommended Posts

Typically to satisfy a note of "all unspecified features to profile of .xxx per cad model" we do a generic surface comparison with a prealignment\best fit of the mesh to CAD.  I recently selected the entire CAD and did a profile with no datums.  The heat map is radically different with the overall profile making the mesh look to be out of tolerance.  Which is the right way to satisfy this note call out on a drawing and why such a difference between the two?

Link to comment
Share on other sites

I can give you my general opinion on your question.

They say a prealignment is a general best fit. It does a great job for us on an overall alignment. There is a box to click in the prealignment 'compute additional best fit'. I really don't know what this does other than making the prealignment refined a little bit better. There is also a short, normal, long computation dropdown. I've been deselecting the additional best fit and going from long to normal recently and have good results still.  I'm doing this to speed things up a bit.

 

So that leads me to your question. With all these prealignment options you will get different results when you measure the distance of the real part surface to the CAD based on how the prealignment options are used. I would say this is one way of reaching your goal, but I think the proper way to do this would be to build the unspecified features(cylinder, plane, sphere, etc) and then check each individually with no datums. Here each feature check with no datums is only checking form(cylindricity on a cyl, flatness on a pln, sphericity on a sph). Location does not matter with a no datum profile check. That is where the two approaches really differ.

 

Lastly, I'm curious if someone here can answer whether a surface comparison to CAD can generate a check that is parametric and can be outputed with tolerance like a typical surface profile check can output. I've only used surface comparision with a min/max label or for visual reference.

Link to comment
Share on other sites

Tim, honestly i am surprised it alters the result if you tick the best fit box. The prealignment is a course fit to get in roughly the right place,the options are for effectively how dense the raster of the mesh is used at this stage of alignment...i.e. the more rotationally symmetric the more likely want to use Long.  the additional bestfit box is an overall guass best fit after this prealignment.    This fit could vary but i would think to a very small value and not influenced much by the initial search...unless the initial search really puts it in a bad place to begin with.

to be doubly sure ayou can always do a best fit afterwards by yourself for additional control, I'd always advise this because its more clear parametrically.

To be honest there are not many cases where unticking that box really helps in an application.   Just a prealignment without any additional alignment after is unlikely to be stable.

Surface profile is not the same , it is different mathematics.   It is not gauss fit. It is trying to fit the surface as best it can with respect to the tolerance zone..so very sensitive to small deviations.    Calculating surface profile on a full model is not wise...this will take a very long time and unlikely to be really what is useful to understand 

James (ex GOM senior app/project engineer)

Link to comment
Share on other sites

I have not done this from a surface comparison previously but have used the User Defined function, set my Max Label as a variable, then times that variable by 2 to get a surface profile. It appears it works with surface comparison as well. However, it not being a surface I'm sure there's less math that goes in which makes it quicker, my assumption.

image.thumb.png.36c73767b8f29ad353f4111998167e68.png

As we have a general surface call out on most our parts and a majority being complex we have found Surface patch from CAD to take quite a bit of time to generate. To combat not being able to "filter" how many points have been taken into account I have been manually adding points in, creating an element group, from that element group finding DN Max Deviation, and then doing the same user defined function as shown above. This somewhat represents what we would do with a CMM by touch probing many points however much quicker. 

Also, until today I was manually clicking points all over parts as the Surface Points Evenly function does not work very well for 3D parts or surfaces on many levels, seems to select by a "View" and not by CAD surface like our other software. Instead, I found that creating Multisection Parallel on surface that are unspecified, neat tip you can restore point selection of the nominal geometries you selected then invert selection to get those quickly without clicking on them manually. 

 image.thumb.png.b5d2121eceffc39d4ab79ca3a12a9278.png

After you have those sections created you can do Vector Points On Section/Edge which will create equally spaced points on every line, give those the search radius and method you'd like, and repeat the same element group and reporting method as stated above.

This does all still reference the alignment you are in so if it is called out to any datum make sure you are aligned to those before reporting.

If there is a quicker way of doing this, less computer intensive, or if something I have done here is incorrect please let me know as I am still new to the software.

Link to comment
Share on other sites

Please sign in to view this username.

awesome post, thank for those ideas, I'm not sure they apply much to me, but I will definitely keep those ideas in mind. I like how you incorporate the user defined to get a toleranced output. It's hard to learn that area in the software alone, once I began doing some python programming did I finally understand it well.

 

Please sign in to view this username.

I unchecked the best fit box to speed things up, not to help. All we generally need is a decent prealignment. We do a lot of funky threads so at times we got to get dirty with the local alignments and for extremely symmetric parts with one small identifying mark, I'm doing multiple stages of prealignments using patched surfaces to slowly snap the model into place b/c I don't want our operators to have to use help points anymore. I'm batting 100% for the past 20 or so programs, fingers crossed. What are you doing now?

Link to comment
Share on other sites

Hey Tim , i cant go into what i do on this forum but feel free to find me on Linkedin. 

For funky situwtions that you mention i can understand what you are doing but i would fear it is not totally robust , the software is not expecting this approach.

Maybe difficult but i would take it back to your scanning setup.

Lets say there is a small timing feature , a visual guide to clock that to a fixed set of reference points would maybe be an answer.  Physically clock part to reference points, scan , perform all the funky alignment needed to get in right place then export the reference points.   They will be in co ordinate sytem of the clocked thread.

New project without any alignment , set reference points collected as nominal, inital alignment by reference points  . Place part and clock to manual mark .   After scanning and recalculation your thread will be in clocked position.   Local fitting can deal with the rough manual positioning.

 

Hope this approach makes sense

Link to comment
Share on other sites

Please sign in to view this username.

I'm pushing the limits on having 4-5 separate prealignments in one program with multiple meshes for one project. I used the prealignments to bounce back and forth from one mesh to another. To program this you have to actually delete the mesh or it will error out, once you bring the mesh back in it allows the extra prealignments. Each mesh must have distinguishable geometry so it doesn't get confused. Also, it took me days to find out what geometry to include in the target element patches for the multiple prealignments.

We only have a timing mark for our first piece, so that I can take that piece and clock in several surface profiles, output the XY changes that need to happen on the floor and then the real program does not have clocking so it can best fit the previous profiles they should have dialed in at the machines. Get's us started off good and all the in process is working very well.

I assume you are still using GOM is you are still here lurking?  I found ya, good luck 😉

Link to comment
Share on other sites

I try to give several answers here:

@Chrystal: Regarding difference between surface comparison and surface profile

As James already explained: These are two completely different computation methods:

  • Surface comparison tries to calculate the deviation from each point of the source to the surface of the target respecting the current alignment. Normal vectors and maximum search distance  (and further parameters) are usually considered if a deviation shall be computed at all or which portion of the target shall be respected
  • Surface profiles without any datum system tries to minimize the maximum deviation from the actual points to the nominal surface, so it tries to identify a transformation which minimizes this deviation (in regards to the degrees of freedom which are not specified by your datum system -> in your case all six degrees of freedom are not specified, a complete transformation is searched for minimizing the maximum deviation). Furthermore, e.g. no normals are considered ->as James already wrote the algorithm tries to minimize the surronding spatial zone that all points are inside of this spatial zone. 
  • If you specify a datum system where all degrees of freedom  are fixed the evaluation is nearly the same.

@Austin: Of course, you can create a lot of these nominal discrete points which you use for evaluation (and the idea how to generate them is quite good), but it should be mentioned that there are probably two disadvantages:

  • The sampling problem: As in CMM machines you decide where to sample an evaluation. So, if the biggest deviations appear at a different position where no discrete points are sampled you lose an important information!
  • You have a lot of discrete nominal object points in your project which increase your project size. Working with the software with a lot of discrete object elements  could slow down the handling with the sofware (all widgets like the explorer, tables, etc must consider each object separately which tooks of course more time).  

@Tim: I quite don't understand why different Prealignments will help you for your part. May be we could give you more advice for your part if we could see a concrete data example where you struggle. Nevertheless, as I already mentioned in a different post. We plan to improve our prealignment algorithm for nearly rotational symmetric parts (it's likely that we need some further inputs from the user where we have to expect the identifying unique surface patch compound). Unfortunately there is still no decision when this improvement is planned. For analyzing your concrete projects you have to contact our Professional support and supply your data confidentially.

Regards,

Bernd 

Link to comment
Share on other sites

Please sign in to view this username.

I sent a complicated program to our Zeiss local app engineers and they didn't understand the issue I was dealing with so they said they sent it in for a higher level look. How do I direct them to send this exact project file to you?  Can I just email them to send if over to you personally?  I think when you see the project you will understand.

Link to comment
Share on other sites

Please sign in to view this username.

 yes i still use the software regularly as part of my job. I checked my linkedin and didnt see you there?

I come on this forum as I hope I can add some input.  i enjoyed the aspect of helping solve app/software queries with the interaction of the software team !

I too am incredibly curious about the exact situation you have but that would have to remain a mystery!

Link to comment
Share on other sites

Hi Tim,

the process for getting support on concrete data problems looks roughly like that:

  • You are getting in contact with the local support of your country (they check if you have a professional support contract)
  • They try to help you as good as they can. They request data from you if needed. If they are not able to answer your questions usually they send this ticket to the German support.
  • If the support in Germany is also not able to answer the question directly they redirect this ticket to the responsible developer for further investigations.
    • These investigations usually took some more time. 😉
  • In the end the "answer" is transferred via your local support to you.

So, a direct contact to a developer is usually not possible and not intended. Background: The communication via the support is recorded and tracked and a direct contact wouldn't be tracked at all. Furthermore the developer can't check if you have a valid support contract.

Regards,

Bernd

Link to comment
Share on other sites

 Share

×
×
  • Create New...