Circular References (krožne reference) težava se lahko pojavi, če dve ali več komponent delijo zunanjo referenco. Na primer, osveževanje geometrije komponente1 zahteva osveževanje komponente2, toda komponenta2 zahteva ponovno osveževanje komponente1 in tako naprej.
Drug način, ki se lahko zgodi, je v upravljalniku enačb, kjer je enačba v celoti ali delno definirana z drugo enačbo (ali vrednostjo), toda druga enačba (ali vrednost) je vezana na prvo.
Krožne reference se lahko prikažejo z prisotnostjo ponavljajočega simbola za osveževanje v drevesni strukturi komponente. Osveževanje sestava lahko povzroči, da se simbol za osveževanje premakne od ene komponente na naslednjo. Z vsakim osveževanjem geometrije, simbol za osveževanje bo krožil preko vseh prizadetih komponentah. Simbol osveževanja nebo prisoten za komponento, ki je odprta v ločenem oknu.
Krožne reference se lahko pojavijo tudi med urejanjem komponente z prikazom napak med osveževanjem geometrije na katere vplivajo krožne reference. Ko urejamo komponento znotraj okolja sestava, se lahko na nekaterih (ali vseh) prizadetih komponentah pojavijo napake pri osveževanju geometrije. Te napake običajno niso prisotne ko zaključimo urejanje komponente.
Kako lahko ugotovimo krožne reference
Najočitnejši način za ugotavljanje, kjer so prisotne krožne reference je ko se simbol za osveževanje prikaže na gradniku v drevesni strukturi. To je edini način, da boste dejansko vedeli, kje začeti z urejanjem referenc. Če ponovno osvežite geometrijo in simbol za osveževanje je še vedno prisoten najverjetneje je težava v krožnih referencah.
Poglejmo si nekaj napotkov za ugotavljanje in odpravljanje krožnih referenc na nivoju kosa in sestava:
- Zaženite funkcijo Performance Evaluation (predhodno imenovana AssemblyXpert) ob prvem odpiranju sestava. Funkcija ima možnost zaznavanja prisotnosti pontencialnih krožnih referenc.
- Kliknite na ikono za osveževanje geometrije (bližnjica Ctrl+B) ali bližnjico Ctrl+Q za tako imenovani Forced Rebuild, da osvežite celotno geometrijo komponente.
- Poiščite simbol osveževanja geometrije v drevesni strukturi, ki je po večkratnem osveževanju še vedno prisoten.
- Preglejte gradnike, konture in/ali komponente.
- Zamrznite (Suppress) relacije na konturah, gradnike in/ali komponente, ter osvežite geometrijo in preverite ali je simbol za osveževanje še vedno prisoten v drevesni strukturi.
- Zaprite model in ne shranite.
- Odprite model in izbrišite/popravite težave za katere je ugotovljeno, da povzročajo krožne reference.
Ker je določanje vira krožnih referenc lahko težavno in dolgotrajno, je priporočeno, da se izogibate krožnim referencam.
Eden od boljših načinov, da se prepričate, da se boste izogibali krožnim referencam, je uporaba skic in/ali blokov. Ker urejanje izhaja iz skic in blokov in se razširijo na vse referenčne gradnike, se lahko uporabijo za nadzor vseh zunanjih referenc.
Ko uporabljate skice postavitev, so razmerja ustvarjena tako, da skica poganja vse ostalo. Vendar pa vas nič ne ustavi pri uporabi drugih funkcij v sestavu za urejanje skice. V tem primeru se izogibajte tej vrsti konflikta, ker lahko ustvarite skice, ki se spreminjajo z vsako osvežitvijo geometrije – kar resno vpliva na čas osveževanja.
Nasveti:
- Izogibajte se “verižnemu efektu”, kjer komponenta A poganja komponento B, komponenta B poganja komponento C in tako naprej. Priporočena praksa je, da komponentna A neposredno poganja komponento B in C.
- Če je potrebno dodajanje zunajnih referenc na komponentah v sestavu, jih dodajte na ključne komponente. Ključne komponente pa nesmejo vsebovati gradnikov, ki vsebujejo zunanje reference ker to lahko povzroči krožne reference.
- Izogibajte se dodajanju zunanjih referenc iz komponent najvišjega nivoja sestava na komponente v podsestavu.
- Izogibajte se dodajanju zunanjih referenc gradnikom, ki že vsebujejo zunanje reference.
- Izogibajte se dodajanju zunanjih referenc časovno odvisnim gradnikom sestava kot so luknjam ustvarjenimi z “Hole Wizard/Series”, kopiranju komponent z “Component Patterns” in odrezom na sestavu (extrudes, revolves, lofts).
Reševanje teh vrst vprašanj običajno zahteva prodrobno poznavanje zgodovine modela, da bi natančno vedeli, kje poteka vsa interakcija.
Primeri iz prakse
Poglejmo si nekaj najbolj pogostih primerov iz prakse kjer pride do krožnih referenc. Našteti primeri so povzetki iz SOLIDWORKS-ove baze znanja (SOLIDWORKS Knowledge Base) do katere imate dostop preko SOLIDWORKS-ovega uporabniškega portala (SOLIDWORKS Customer Portal).
- Primer: naveden v SOLIDWORKS-ovi bazi znanja pod številko »S-057225«
SOLIDWORKS® sedaj identificira enačbe, ki kažejo značilnosti potencialnih krožnih referenc, tudi če enačbe dejansko niso v nasprotju s krožnim referenčnim pogojem. Naprimer, referenčne dimenzije iz podrejene funkcije, ki poganja drugo dimenzijo v nadrejeni skici, lahko ustvarijo krožne reference.
‘D1@Sketch1’ je definiran z enačbo:
“D1@Sketch1″ = iif (“D2@Sketch1” < 6 , 10 , “test”)
Enačba pravilno izračuna vrednost, ampak SOLIDWORKS vas še vedno opozarja na možnost napake.
Če spremenite vrednost za ‘D2@Sketch1’ na 6 in osvežite enačba nebo več pravilno izračunana zaradi težave krožne odvisnosti.
V tem primeru, SOLIDWORKS® označi potencialno težavo krožnih referenc.
Da izključite opozorila potencialnih krožnih referenc lahko to storite pod SOLIDWORKS nastavitve pod Tools > Options > System Options > Messages/Errors/Warnings > Display potential circular references in equations.
- Primer: naveden v SOLIDWORKS-ovi bazi znanja pod številko »S-073146«
Če je opcija “Automatic solve order” vedno vključena, SOLIDWORKS® ne bo mogel identificirati enačb, ki povzročajo potencialne krožne reference. Primer omenjenega obnašanja lahko preverite na kosu S-073146.sldprt, katerega si lahko prenesete na spodnji povezavi.
Ko imate prenesen kos naredite naslednje korake:
- Pojdite na SOLIDWORKS nastavitve pod Tools -> Options -> Message/Errors/Warnings
- Preverite da je za opcijo “Display potential circular references in equations” izbrana možnost “Everywhere” ali “In equations dialog only”.
- Zaženite upravitelja enačb pod Tools -> Equations. Preverite da opcija “Automatic solve order” ni aktivna.
- Premaknite miški kazalec preko opcije “Automatic solve order” in prikazovalo se vam bo obvestilo“Disabled due to potential circular reference in equations”.
- Za idetificiranje potencialnih krožnih referenc premaknite miškin kazalec čez rumeni trikotnik. Prikazalo se vam bo obvestilo “Potential circular reference”.
- Ponovimo drugi korak in za “Display potential circular references in equations” opcijo nastavimo na “Never” in osvežimo geometrijo z Ctrl+Q.
- Opazimo da je opcija “Automatic solve order” aktivna, ampak omenjena opcija nam ne prepozna potencialnih krožnih referenc.
- Primer: naveden v SOLIDWORKS-ovi bazi znanja pod številko »S-064386«
Eden od scenarijev, ki povzroča krožne reference, je uporaba dodanih dimenzij kot opombo v vaših enačbah. Omenjene dimenzije so odvisne od drugih dimenzij, zato imajo potencial za napačno reševanje. Na primer:
- Odprite datoteko kosa S-064386.sldprt
- Pojdite v meni View -> Hide/Show in izberite Dimension Names.
- Izberite urejanje skice “Sketch1”. Oglejte si dimenzijo z vrednostjo 67,62mm in dimenzije z imeni D1, D4 in D6.
- Odprite upravitelja enačb.
V enačbi imamo določeno da je “D1@Sketch1” = “D6@Sketch1”, s tem da je dimenzija “D6@Sketch1” dodana kot opomba. Enačba je tudi označena z rumenim trikotnikom, ki nas opozarja da lahko pride do potencialne krožne reference.
V tem primeru lahko enostavno opazimo, da je dimenzija ‘D6@Sketch1’ vodena z dimenzijo ‘D4@Sketch1’. Ampak, programsko gledano je težko predvideti katera dimenzija vodi katero dimenzijo. Zato SOLIDWORKS® predvideva, da je “D6” odvisen od vseh dimenzij v Sketch1. Posledično, če je »D1« definirana z enačbo, ki se sklicuje na »D6«, SOLIDWORKS® meni, da je enačba potencialno krožna referenca.
Opozorila potencialnih krožnih referenc lahko izklopite pod SOLIDWORKS nastavitve pod Tools > Options > System Options > Messages/Errors/Warnings > Display potential circular references in equations.
Primer enačbe:
Na primer, naslednje enačbe vključujejo krožne reference. Spremembe v prvi enačbi povzročajo spremembe v drugi enačbi, ki povzročajo nadaljnje spremembe v tretji in prvi enačbi, kar ustvarja neskončno zanko. SOLIDWORKS® zazna krožne reference in prikaže besedilo enačb v rdeči barvi.
“D1@Sketch1@part_outside.Part” = “D2@Sketch1@part_inside.Part” + 2
“D2@Sketch1@part_inside.Part” = “Side” – 6
“Side” = “D1@Sketch1@part_outside.Part” * .5
Omenjene datoteke primerov si lahko prenesete na naslednji povezavi SOLIDWORKS Circular References .