Autodesk Inventor api

Conceptul de structura de asamblare este familiar pentru oricine care a lucrat cu ansambluri. Inventator prezintă grafic această structură în browser. În timp ce conceptual organizarea structurii de asamblare este simplu, există o serie de nuanțe, care sunt importante atunci când se lucrează cu ansamblul prin API-ul. Scopul nostru - să beneficieze de înțelegerea structurii interne a ansamblurilor Inventor. În viitor, cu titlu de exemplificare, vom folosi urmatoarea asamblarea doar trei părți: partea „axa“ și cele două copii ale detaliile „Roata“.

Autodesk Inventor api

Autodesk Inventor api

Autodesk Inventor api

Ocolind arborele ierarhic al ansamblurilor complexe este un pas necesar în rezolvarea multor probleme. Luați în considerare exemplul ansamblului. Acesta are doar două nivele, dar abordarea considerat va lucra cu orice număr de niveluri. În acest exemplu, ansamblul de nivel superior este format din două părți Car.iam ansamblului roată discutat anterior și corp. Diagrama prezintă ansamblul de reprezentare internă Car.iam. Vă rugăm să rețineți, acesta conține doar informații cu privire la elementul de nivel superior. Nu există date privind compoziția subansamblurilor roților. Compoziția acestora este definită în WheelAssembly.iam subansamblului.

Autodesk Inventor api

Autodesk Inventor api

Ce este un obiect proxy. regulă

După cum sa menționat deja, ansamblurile conțin numai link-uri, dar nu și geometrie. La prima vedere, acest lucru este contrar experiența utilizatorilor finali care creează și asamblare de editare Inventor. Din punctul lor de vedere, geometria pieselor de fapt implicate în adunare. De exemplu, atunci când sunt aplicate în funcție de alinierea celor două părți sunteți liber să aleagă fața părții, fără ezitare, care, în realitate, este informația despre geometria piesei. Aproximativ același lucru se întâmplă atunci când se lucrează cu API - puteți vizualiza ierarhia de asamblare, a avea acces la componentele sale și conținutul lor, ca și cum acestea au fost pe ansamblul de nivel superior.

În exemplul anterior, cu o demonstrație de componente brute force în adunarea, ne-am făcut. Am putea vedea toate ramura de asamblare, și de a obține link-uri către orice obiect din cadrul ComponentOccurrence de asamblare. Dacă încercăm să aflăm poziția ComponentOccurrence obiectului, răspunsul este situația ca și în cazul în care a fost pe ansamblul de nivel superior. În cazul în care o componentă se referă la elementul, și l-am folosi pentru a obține o referință la un obiect de informații B-Rep, geometria B-Rep vor fi returnate în contextul ansamblului de nivel superior.

Pentru a vedea cum funcționează acest lucru, să se întoarcă la adunarea WheelAssembly. În ea, există două copii ale detaliilor Roata (Wheel). Fiecare instanță (exemplu) conține ComponentOccurrence componente. Să presupunem că vrem ca utilizatorul să selecteze suprafața cilindrică exterioară a fiecărei roți. Prima întrebare este modul în care utilizatorul va fi capabil să facă acest lucru, în cazul în care geometria pieselor nu este prezent în adunare? A doua întrebare: dacă presupunem că într-un fel putem identifica geometria, cum să distingă cilindrul exterior al unei roți de pe cilindrul exterior al unui alt atunci când, în realitate, doar un singur cilindru exterior există detalii pe pneuri?

Autodesk Inventor api


Răspunsul la ambele întrebări este - obiecte de proxy (proxy). obiecte proxy sunt obiecte în ansamblul ca și în cazul în care aceste obiecte de fapt, există în adunare. Ideea obiectelor proxy trebuie să se obișnuiască, dar odată ce acestea devin concept clar, care lucrează cu ei nu mai este dificil. Să ne întoarcem la fețele cilindrice ale roților. Când selectați pentru a asambla unul dintre acestea, selectați de fapt un FaceProxy obiect. obiect FaceProxy moștenește de la Face Object, deci are aceleași metode și proprietăți, plus câteva unic pentru obiectul proxy. Cu obiectul FaceProxy, ca moștenitorul obiectului feței, de obicei poate lucra cu fața obișnuită, și nici măcar nu trebuie să se gândească în mod specific că, în realitate, lucrați cu obiectul proxy. Pentru a lucra cu un obiect, utilizați aceleași metode și proprietăți, singura diferență este că rezultatele vor fi determinate de poziția obiectului în adunare.

Proxy se opune pur și simplu funcționează. Aceasta este calea spre obiect. De exemplu, calea către fețele cilindrice ale pieselor noastre cu două roți va fi după cum urmează:


Aici «CylinderFace» este adevărata față a pieselor de roți cilindrice.

Prima parte a modului - componenta, ultima parte a modului - obiectul real. Într-un ansamblu de mai multe niveluri de calea va fi lung, deoarece va avea mai multe componente. În ansamblul întregului aparat cu patru roți calea spre o față cilindrică a uneia dintre roți este după cum urmează:

Datorită modului în care obiectul proxy, Inventor in masura sa cunoasca pe care se opune vă referiți la ansamblul.

Proxy obiecte sunt acceptate pentru un număr mare de obiecte. Acest sprijin este esențial pentru fiecare obiect pe care ansamblul ar trebui să fie alocate. De fapt, am avut deja să se ocupe de proxy obiecte ComponentOccurrenceProxy - busting în componentele programului în ansamblul, dar acest lucru a fost implicit așa cum am putea să le tratăm ca pe componente ComponentOccurrence obișnuite. Componentele de pe ansamblurile de nivel superior sunt obiecte obișnuite ComponentOccurrence. Ele există de fapt, la nivelul superior de asamblare. Când itera componentele în oricare dintre subansamblurile WheelAssembly, returnate obiecte de tip au ComponentOccurrenceProxy. Aceasta deoarece aceste componente fac parte din ansamblul nu este la nivelul superior, dar care aparțin unui subansamblu roată. obiect ComponentOccurrenceProxy creează aparența unei componente aparținând ansamblului de nivel superior. Dacă vă întrebați ComponentOccurrenceProxy poziția sa, el se va întoarce în contextul ansamblului de nivel superior.

De obicei, în pregătirea obiectului proxy, ca urmare a ansamblului de sortare sau de selecție de către utilizator, nu ai pasa de ceea ce lucrați cu un obiect proxy, nu obiectul în sine. Că aceasta este cea mai remarcabilă caracteristică a obiectelor proxy - acestea sunt mai ușor de a lucra cu obiecte din diferite fișiere, oferind o vizibilitate că toate obiectele există direct în ansamblul, așa cum apare la utilizatorul final.

Crearea proxy obiecte Editare

Sunt momente când aveți nevoie pentru a crea un obiect proxy să-l treacă la alte metode ca argument. Acest lucru se întâmplă cel mai adesea atunci când creați programatic și de a construi constrângeri de asamblare impozante. Să considerăm un exemplu specific. Să fie un șurub, pe care dorim să insereze automat în ansamblul. margine circulară prezentată în figura din dreapta, va fi folosit ca argument atunci când dependența aplicată. Pentru a găsi cu ușurință această margine, atunci când șurubul este deja în adunarea, la marginea atributului adăugat «AutoBolts».

Autodesk Inventor api


Luați în considerare cu atenție ceea ce se întâmplă în ansamblul așa cum este prezentat în figura din dreapta. Ansamblul este format din două părți, între care ne-am propus să stabilească o relație. Să presupunem că am primit deja cub componente și de a folosi mecanica obiectelor B-REP - o margine gaură circulară. Așa cum am ajuns la marginea prin componenta, acesta va fi un EdgeProxy obiect proxy, ceea ce înseamnă că se comportă ca și cum ar exista într-adevăr, în ansamblul de coaste. Acum, avem nevoie pentru a obține obiect EdgeProxy coaste din șurubul la. Pentru a căuta atribut nervură a fost adăugat la ea, dar există acest atribut în părți Bolt, mai degrabă decât în ​​adunare. Dacă încercați să căutați atributul în adunare, nu-l vom găsi. De fapt, uita-te pentru atributul ar trebui să fie în cadrul documentului Bolt. Deoarece. căutăm în Bolt documentul, obiectul returnat este o margine validă, mai degrabă decât obiectul proxy. API-ul ne oferă instrumentele necesare pentru a crea un obiect proxy. Acest exemplu ilustrează detaliile de acces la document, o cerere de căutare margini, creând un obiect proxy, și în cele din urmă, impunerea dependențele de asamblare. Se presupune că avem deja EdgeProxy pentru coaste de pe matriță și o referință la componentă șurub.

Autodesk Inventor api

De îndată ce marginea detaliilor găsite, trebuie să creați un obiect proxy pentru a reprezenta această margine în adunare. După cum sa menționat deja, obiectul proxy definește calea către obiect. Detaliile fișierului, avem un obiect, iar acum vrem să adăugați o modalitate de a identifica același obiect, dar deja în adunare. Acest lucru se face folosind metoda CreateGeometryProxy ComponentOccurrence obiectului. În metoda aplicată obiectului de intrare au obiect proxy corespunzător la ieșire. Metoda adaugă doar componenta la calea obiectului proxy. Ca rezultat, avem un obiect care reprezintă un avantaj în cadrul ansamblului.

Ultima linie de exemplu utilizează proxy șuruburi obiect și zaruri obiect proxy pentru aplicare în funcție de elementul de inserție.

Metoda de introducere poate fi depusă și CreateGeometryProxy obiect proxy. Acesta este format dintr-un ansamblu de mai multe niveluri. Pentru a obține aceasta, începe de la partea de jos a obiectului și apoi apel CreateGeometryProxy metoda de la fiecare nivel de asamblare până când construi acea cale proxy completă.

Lucrul cu proxy obiecte Editare

API-ul conține, de asemenea, o serie de instrumente suplimentare pentru lucrul cu obiecte proxy. Multe dintre ele sunt utile nu numai în timpul funcționării normale, dar pentru o introducere inițială a obiectului proxy pentru depanare obiecte proxy.

După cum sa menționat deja, diverse obiecte proxy sunt moștenite de la obiectele reale corespunzătoare. Din acest motiv, ei sprijină toate metodele și proprietățile obiectelor-părinți. Dar există două proprietăți suplimentare, care nu au părinți - ContainingOccurrence și NativeObject. ContainingOccurrence proprietate returnează componenta ComponentOccurrence, care este vizibil prin proxy. În exemplul ContainingOccurrence nervurile anterioare de proprietate obiect proxy în componenta Bolt de retur șurubul.

proprietate NativeObject returnează obiectul real reprezintă un obiect proxy. În exemplul nostru, NativeObject EdgeProxy proprietate a unui obiect returnează un obiect Edge valid (Edge).