Hello
Can you give any advice about how "Cyclic reference" error can be avoided and how can it be repaired when it occurs?
Thank you.
Cyclic reference between elements
Moderators: remi77, jacs, Daniel
- OMG
- Master Chief
- Posts: 112
- Joined: Sun Nov 11, 2018 7:26 pm
- TopSolid Module: TopSolid'Wood
- TopSolid Version: 6.20
Cyclic reference between elements
Last edited by OMG on Thu Apr 23, 2020 8:27 pm, edited 1 time in total.
Re: Cyclic reference between elements
Hi
There is several reasons to this.
In fact, you get this error when the function turns round and round in an infinite loop.
Of course, you ca repair, it's just because you've done something wrong.
See you
Rémi
There is several reasons to this.
In fact, you get this error when the function turns round and round in an infinite loop.
Of course, you ca repair, it's just because you've done something wrong.
See you
Rémi
Thanks to use the on the best answer when you've got the solution.
- Laurens
- Sergeant
- Posts: 50
- Joined: Tue Apr 16, 2019 7:29 am
- TopSolid Module: TopSolid'Wood
- TopSolid Version: 6.24
Re: Cyclic reference between elements
A cyclic reference forms when you try to make something depend on itself to exist.
So for example, you make sketch A for something. You then proceed to make sketch B and use A to constrain it. Then using B you make an extruded shape. Then you find out A needs a little adjustment and you try to constrain it to the extruded shape you just made. At that moment you will get an cyclic reference error and you will not be able to do that.
This is because B needs A to exist and the shape needs B and therefor also A. If the shape depends on A to exist A cannot use the shape to exist as they would be going around in an infinite loop where one changes the other.
This can occur out of its own sometimes, i usually see it with new coworkers i am training or when i am making a super complex model myself. It can be quite a thing to get it out once you have it. My tip would be to save your file and then using the @ numbers TS feeds you to check all items it indicates. If that makes no sense to you where the cyclic reference could be just start deleting things to see when it gives no error anymore. (you might need to regenerate the model to see if the error is gone) Then reopen your save and check the thing you deleted last on what might cause it.
Its a miserable job to do imho but you will definitely have to get it out. It helps to keep your model organized so don't connect a sketch which is connected to an other sketch which is connected to an other sketch. Try to constrain everything to a base block that defines the outer contours of that what you are making for example. This helps to keep an overview.
So in short, 100% prevention there is not but its solvable and if you do i right 99% preventable.
So for example, you make sketch A for something. You then proceed to make sketch B and use A to constrain it. Then using B you make an extruded shape. Then you find out A needs a little adjustment and you try to constrain it to the extruded shape you just made. At that moment you will get an cyclic reference error and you will not be able to do that.
This is because B needs A to exist and the shape needs B and therefor also A. If the shape depends on A to exist A cannot use the shape to exist as they would be going around in an infinite loop where one changes the other.
This can occur out of its own sometimes, i usually see it with new coworkers i am training or when i am making a super complex model myself. It can be quite a thing to get it out once you have it. My tip would be to save your file and then using the @ numbers TS feeds you to check all items it indicates. If that makes no sense to you where the cyclic reference could be just start deleting things to see when it gives no error anymore. (you might need to regenerate the model to see if the error is gone) Then reopen your save and check the thing you deleted last on what might cause it.
Its a miserable job to do imho but you will definitely have to get it out. It helps to keep your model organized so don't connect a sketch which is connected to an other sketch which is connected to an other sketch. Try to constrain everything to a base block that defines the outer contours of that what you are making for example. This helps to keep an overview.
So in short, 100% prevention there is not but its solvable and if you do i right 99% preventable.
Laurens
Team leader TSW draftsmen
De Klerk Binnenbouw
Team leader TSW draftsmen
De Klerk Binnenbouw
- OMG
- Master Chief
- Posts: 112
- Joined: Sun Nov 11, 2018 7:26 pm
- TopSolid Module: TopSolid'Wood
- TopSolid Version: 6.20
Re: Cyclic reference between elements
Hello Laurens
I read something in your post which describe very well my problem: "This can occur out of its own sometimes"
I knew the "cyclic reference" concept from CATIA and from Excel and I know the basic rules to avoid such error but sometimes it occurs just like that, with a lot of @ identifiers in the list and, as you said, it's a horrible job to investigate which one of them caused the problem, especially when you are under pressure with some project.
Thank you both for your advice. I'm a beginner in TSW and I still have a lot to read and to learn.
I read something in your post which describe very well my problem: "This can occur out of its own sometimes"
I knew the "cyclic reference" concept from CATIA and from Excel and I know the basic rules to avoid such error but sometimes it occurs just like that, with a lot of @ identifiers in the list and, as you said, it's a horrible job to investigate which one of them caused the problem, especially when you are under pressure with some project.
Thank you both for your advice. I'm a beginner in TSW and I still have a lot to read and to learn.
- Todd
- First Officer Cadet
- Posts: 246
- Joined: Mon Nov 10, 2014 9:28 pm
- TopSolid Module: TopSolid'Wood
- TopSolid Version: 6.24
- Location: Detroit, MI
Re: Cyclic reference between elements
I typically when I see these messages I Start with the @ with the biggest number that has tooling because it is a component or effected by a component