Jump to content

Looped Secondary Alignment


---
 Share

Recommended Posts

I have a program where I flip a part halfway thru the program. I have a secondary alignment from after the flip that I would like to loop. Every time I loop the alignment, it tries to loop at the very beginning of the program instead of waiting until after the part is flipped. I know I have programs where I flip parts in the middle of the program and also loop the secondary alignment with no problems. Not sure what i'm doing wrong now. Any ideas?
Link to comment
Share on other sites

Does the program run based off the order of the Characteristics or the order of the features? If you do it the by the order of the features, you can make sure the operator stop happens at the end of the last feature before the flip, then have the secondary alignment features come immediately after that. I think that has always worked for me.
Link to comment
Share on other sites

Features. That was my first guess too. If I unloop it, then it works just fine and doesn't execute until the correct time.

It only tries to run at the beginning when it is looped.
Link to comment
Share on other sites

Is there a break condition formula within the loop. I think I had an issue like you're talking about before but it had something to do with the formula.
Link to comment
Share on other sites

I do,

I use differencesystem valueA in my secondary alignments. I thought I remembered someone having this problem on the old forum but I can't remember the remedy. I'm probably just going to scrap the alignment and it's features and try again.
Link to comment
Share on other sites

I would try and run it without the break condition and see if that works. If it does, try
getActual("{alignment name}").valueA<0.010
That should work I think.
Link to comment
Share on other sites

I recognize I had this bug ages ago (like Calypso 4.6). I don't remember how I solved it or even if I did. The only thing I can think of is to mask the alignment. On unlooped alignments it has almost no effect but I'm not sure how it affects looped alignments so please make sure it works correctly before finalizing the program.
Link to comment
Share on other sites

Please sign in to view this quote.

That was my first thought too. Check which references point to your looped alignment (right click on alignment -> references in context menu) and see if some of them belong to the "other side".
Link to comment
Share on other sites

Please sign in to view this quote.

That's what I thought first too, but he said it works fine if he takes the loop off. If it references something from the first side, It wont work either way.
Link to comment
Share on other sites

Brett, that is true. I checked it anyway and everything looked good. Nothing from the 'before flip' side of the program at all. Ive only had it open on my planner seat this morning. I will throw it on my CMM later today and do some more experimenting.

I could probably just scrap it and start over to save time but what fun is that. Maybe I'll actually learn something trying to figure this out.
Link to comment
Share on other sites

  • 4 months later...

Please sign in to view this quote.

Chad,
Did you ever figure this out? I have a program doing this now. Exact same problems as you mentioned. Nothing referenced from the first side but when the loop is on it wants to run it right after the base alignment.
Link to comment
Share on other sites

I never found a solution. The only thing I could do was make sure that my 'after flip' alignment was good enough that I didn't need to loop it.

I'd still like to find the root cause of this problem. I'm not cool with not being able to loop my alignments after the part is flipped.
Link to comment
Share on other sites

I am trying something along these lines. Measure a part, then move a set distance over to measure another (same) part. Works fine in Autorun as I would expect. When I try to do it in one program it measures the first part fine, but due to the alignment orientation projected over the part to part distance, results get skewed on the second part. How do I go about setting a secondary alignment that allows a valueA condition?

I made a regular Utilities - Alignment and tried to define my features in the new alignment but it is not any different than just offsetting the original alignment.
Link to comment
Share on other sites

Please sign in to view this quote.

The reason AutoRun gets the part grid aligned right is because it uses a fixture alignment if you have the "parts referring to pallet" option ticked.
Link to comment
Share on other sites

Brett,

I get that, I have an alignment set to the fixture plate. I was wondering if anybody had an idea on how to recalculate the base alignment in a program instead of using Autorun.

Establish base alignment, measure entire part, shift base alignment by distance x, reestablish base alignment, measure entire second part at distance x.
Link to comment
Share on other sites

Please sign in to view this quote.

Hmm I think what you would have to do is make an alignment that references the "CMM System" instead of the base alignment.(or you could import your fixture alignment.) Then plug in your base alignment features again just for the X,Y,and Z origins(or create a theoretical point at 0,0,0 referencing the base alignment) , then shift the alignment over. So this would use either your fixture alignment or the machine axis to position onto the next part. I really think Autorun is the better way to go here though.
Link to comment
Share on other sites

Brett,

I think you are correct in that Autorun is the better way to go. That is what I am doing, it's just tough for the inspectors to switch back and forth between Autorun/Calypso. I wish it was a little easier in Calypso to do what I am looking for, though I'd bet you could do it if you had PCM.

Thanks.
Link to comment
Share on other sites

If you really wanted to, you could just copy the entire program, and group them by their fixture alignment. Then have mini-plans that determine what nests need ran. I'm sure its not what you want to do, but it would work.
Link to comment
Share on other sites

Jacob,

If you are just looking to have 2 locations to measure parts, you can just set up 2 Base Alignments to run from.
1) Name your base alignment with "Loc 1" and start it by using a start alignment.
2) Once established, stop your program, then
3) Go back to your Base Alignment window, select "Change Current Alignment"
4) Change just the name, adding "Loc 2" at the end of the Base Alignment name.
5) Start your program, taking your start alignment points off the part in the new location.
6) You now will have both alignments to select from in your dropdown list, and can run a part from either alignment (location).

Keith
Link to comment
Share on other sites

Please sign in to view this quote.


Keith,

The idea was to have the inspector press Run and have it measure both parts, not just one part in either location. Our programming is separate from our actual inspection, so it has to be streamlined.
Link to comment
Share on other sites

Shabu,

Looping an alignment using a condition on baseSystem().valueA will reiterate the alignment until the deviation between successive alignments is less than some specified value.

For example, I typically loop my base alignment up to 5 iterations using break condition baseSystem().valueA < 0.0005. The zero preceding the decimal place makes a difference. If the alignment always takes 5 times then I know my condition is too restrictive or my alignment is not consistent. Maybe the part is moving or the features are not repeatable.

Also, keep in mind that even if it goes up to the maximum iteration, it will not warn you if the condition was not met. It will simply resume measuring.
Link to comment
Share on other sites

 Share

×
×
  • Create New...