Makro - Vytvorenie referencie z bodov zo skice pre vytvorenie geometrie valca
Uživatel | Příspěvek |
Andrej Verný Poslat zprávu | Profil |
Datum:
15.7. 2013
| Zobrazeno:
11251x Konfigurace CATIA: Text dotazu: -------------------- SLUCKA PRE BODY --------- Alebo existuje nejaka iná možnosť (ludsky čitateľnejsšia )ako vytvoriť referencie z bodov s skici Prečo práve BorderFVertex:(BEdge:? A nie len Vertex? ďakujem za odpoveď |
Michal Poslat zprávu | Profil |
[#4004]
| Publikováno:
16.07. 2013 - 07:08 Zdravím,
S BRepName je to vždycky trochu problém. Proč je tam BorderFVertex a ne jen Vertex to nevím. Jednou je tam BorderFVertex, tak to jinak nebude. Zkusil bych nejdřív vytvořit referenci pomocí funkce CreateReferenceFromObject. Někdy ale referenci nejde takto vytvořit, tak se musí použít BRepName. Když si nahraješ makro vícekrát s různými body (nejlépe si je nějak pojmenovat, aby se lišily) tak se dá v řetězci najít, co je všude stejné a kde se dosazuje jméno daného bodu. Potom se dá řetězec vytvořit programově a použít ho ve funkci CreateReferencoFromBRepName. Ale už se mi stalo, že ani po vytvoření řetězce se mi nepodařilo vytvořit referenci nebo se řetězec nedal ani vytvořit. V tvém případě bych řekl, že se bude měnit Sketch.1, SGEO.Item.Value a sketch1 na konci řetězce. Michal |
Andrej Verný Poslat zprávu | Profil |
[#4005]
| Publikováno:
16.07. 2013 - 07:42 No neskúšal som meniť body, ale keď miesto SGEO.Item.Value napíšem číslo, tak to na príslušnom bode spraví gemetriu valcovej plochy (číslo môže byť od jedna do celkového počtu bodov ). Takže premenná je viac menej jasná.
Len už nejako so slučkou mi to nejde :| Ako si ešte myslel "Když si nahraješ makro vícekrát s různými body (nejlépe si je nějak pojmenovat, aby se lišily) ". Ako rôzne body? (mám z makra vytvorených viacero variant či už pomocou manuálneho výberu alebo automatického rozpoznania , ale všetko bolo z 3D bodov , takže som sa dostal k vytvoreniu zo skice a tuna sa neviem vymotať). A ani knižka od Zithena mi nejako nepomáha. |
Michal Poslat zprávu | Profil |
[#4006]
| Publikováno:
16.07. 2013 - 08:08 Tak říkal si, že procházíš body v cyklu.
Nejdřív si nahraj makro pro jeden bod, potom pro druhý atd. a porovnej si řetězec v BRepName, aby si zjistil v čem se liší. |
Andrej Verný Poslat zprávu | Profil |
[#4007]
| Publikováno:
16.07. 2013 - 09:17 Tak som si to prešiel s troma bodmi zo skice a jediná premenná je tak ako som spomínal vyššie. čiže Sketch.1;1 . Kde číslo 1 je pri inom vertexe nahradené čislom 2, atď.
Set reference2 = part1.CreateReferenceFromBRepName("BorderFVertex:(BEdge:(Brp:(Sketch.1;1);None:(Limits1:();Limits2:();+1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", sketch1) A je zaujímavé,že aj keď zadefinujem nejakú premennú číslom tak to nefunguje. V príklade je PNum . A pritom keď miesto Pnum, dam priamo číslo jedna, tak to vytvorí bez problémov.
V čom je háčik? Vie niekto? |
Michal Poslat zprávu | Profil |
[#4008]
| Publikováno:
16.07. 2013 - 12:59 Asi si trochu nerozumíme.
máš řetězec "BorderFVertex:(BEdge:(Brp:(Sketch.1;PNum);None:(Limits1:();Limits2:();+1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)" tzn. PNum se teď bere jako kus stringu. Nedosadí se za PNum 1, 2 atd. musíš si ten řetězec složit nějak takto -> "BorderFVertex:(BEdge:(Brp:(" & JmenoSketche & ";" & Cstr(PNum) & ");None:(Limits1:();Limits2:();+1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)" nejsem si jistý jestli ti to teď pojede, myslím, že ještě se musí pošéfovat uvozovky. Když tak bych zkusil pohledat nějaké makro. |
Andrej Verný Poslat zprávu | Profil |
[#4009]
| Publikováno:
16.07. 2013 - 14:57 Meno Sketchu sa nemení, pretože mám len jednu skicu s viacerými bodmi.
Tak som doplnil makro ešte o nejake riadky, aby som sa vyhol vybratiu AbsoluteAxis v sketchi ako elementu. Zmenil som aj retazec (podľa Michala...ktorému Ďakujem za nakopnutie ... ), BrepName ... Uspech je ale len viac ako polovicny. Pretože v skici je 5 bodov. Ono ich aj všetky nájde a správne identifikuje ale uspešne vykreslí iba 4 valcové plochy z 5. Pri tej poslednej hlási rovnaku chybu ako pred tým. Takže trošku som sa posunul, ale nerozumiem, prečo nevykreslí aj posledný valec. tu je kompletné makro : podmineky sú - Mať vytvorený Gemetrical Set.1 a v ňom je Sketch s ľubovolným počtom bodov.
|
Andrej Verný Poslat zprávu | Profil |
[#4010]
| Publikováno:
17.07. 2013 - 08:16 Takže na chybu som už prišiel, treba len zkorigovat čislo PNum. Tzn .dohodiť else statement s korekciou čísla PNum.
Dakujem ešte raz Michalovi za nakopnutie a pomoc. Ešte sa spýtam, že prečo práve takýto zápis musí byť : ....(BEdge:(Brp:(Sketch.1;'bold'> " & (PNum) & " ).... lebo logicky by malo stačiť ....(BEdge:(Brp:(Sketch.1;'bold'>PNum).... prečo tie & a " ? Alebo to je v rámci VB niečo čo by som si mal doštudovať? dík |
Michal Poslat zprávu | Profil |
[#4012]
| Publikováno:
19.07. 2013 - 08:46 No ono & se používá na spojení řetězců, např:
Dim s1 as string dim s2 as string dim s3 as string s1 = "abraka" s2 = "dabra" s3 = s1 & " " & s2 debug.print s3 ve vysledku bude "abraka dabra" takže právě logicky musíš udělat zřetězení, protože debug.print (BEdge:(Brp:(Sketch.1;PNum) ti vypíše (BEdge:(Brp:(Sketch.1;PNum) PNum je v tomto případě kus řetězce, nikoli hodnota tvojí proměnné. kdežto debug.print (BEdge:(Brp:(Sketch.1; " & (PNum) & " ) ti vypíše např (BEdge:(Brp:(Sketch.1;1) pokud PNum = 1, prostě do řetězce vložíš hodnotu proměnné PNum |
Ing Jan Cinert Poslat zprávu | Profil |
[#4015]
| Publikováno:
20.07. 2013 - 21:06 Zdravím, taky si přihodím do vlákna. S BRep elementy jsem se několikrát pěkně navztekal, je to podle mě loterie - jednou to jde, jednou ne, protože ta syntaxe názvu elementu je naprosto šílená.
Já bych použil manuální výběr bodů ve skicáři - typ vertex se dá dobře filtrovat. Body načíst do výběru, ten pak postupně procházet a body používat přímo pro vytvoření geometrie a nedělat z nich reference. Catie si to nechá podstrčit i bez vytvoření reference. |
Andrej Verný Poslat zprávu | Profil |
[#4018]
| Publikováno:
22.07. 2013 - 08:36 Michalovi ešte raz dík za vysvetlenie.
Skúsim ešte aj variantu s manuálnym vyberom bodov zo skice. - dík za tip. |
Andrej Verný Poslat zprávu | Profil |
[#4034]
| Publikováno:
02.08. 2013 - 12:27 Tak len informačne pre čitateľov tejto témy.
Spravil som to podla p.Cinerta (body načítané do výberu bez vytvárania referencie), ale s tým, že body sa vyberajú automaticky a nie ručne. Ručne vyberám iba smer Valcovej plochy. Ďakujem ešte raz prispievateľom v tejto téme za pomoc a usmernenie. |
Uživatel nepřihlášen
Pro zobrazení obsahu stránky / provedení akce (vytvoření nového téma, napsání odpovědi do diskuse apod.) musíte být přihlášeni.