Výběr, označení ploch na mrtvém solidu
| Uživatel | Příspěvek |
Pavel Francák ![]() ![]() Poslat zprávu | Profil |
Datum:
30.11. 2013
| Zobrazeno:
10907x Konfigurace CATIA: V5 R19 Text dotazu: |
Ing Jan Cinert ![]() Poslat zprávu | Profil |
[#4292]
| Publikováno:
01.12. 2013 - 11:04 Dobrý den,
nedávno jsem řešil přesně to samé. Hledal jsem i na zahraničních fórech a nic kloudného, jak by to šlo přímo nenašel. Přitom by to mělo být úplně snadné, tangentní výběr používá hned několik funkcí (thickness, draft, extract). Pokud neexistuje nějaká nedokumentovaná syntaxe pro dotaz search, tak to opravdu asi nejde. A bohužel to nevypadá lépe ani ve vyšších release V5 (ve V6 jsem to nezkoušel). Nakonec jsem to vyřešil makrem, které se opírá o extract a následné měření vzdáleností face na solidu od tohoto extractu, resp. bodu který se na extractu vytváří. Funguje to spolehlivě, ale s rostoucí velikostí modelu uměrně narůstá čas potřebný k identifikaci příslušnosti plochy k tangentnímu extractu. Takže uživatel pak nemusí s Ctrl oklikávat každou plochu (zvlášť pokud jsou hodně malé segmenty), ale chvilku to trvá. |
Pavel Francák ![]() ![]() Poslat zprávu | Profil |
[#4297]
| Publikováno:
01.12. 2013 - 15:43 Díky za tip, já na makra moc nejsem ale předám zkušenějšímu kolegovi. |
Ing Jan Cinert ![]() Poslat zprávu | Profil |
[#4299]
| Publikováno:
01.12. 2013 - 18:27 A nechcete si rovnou vyzkoušet makro Color Standard, které kromě obarvení ploch podle barevného standardu umí i výběr podle tangentní návaznosti? Licence na zkoušku zdarma na 21 dnů. |
Břeťa Doležal ![]() ![]() Poslat zprávu | Profil |
[#4305]
| Publikováno:
05.12. 2013 - 08:48 @Jan: Makro na výběr, funguje takto?
1. udělá se extrakt 2. prochází se jednotlivé plochy na solidu 3. měří se vzdálenosti -> určí plochy pod extraktem Šlo by napsat kousek kódu, který prochází plochy jednotlivé plochy na Body (solidu). Zatím to nepotřebuji,ale mohlo by to být zajímavé. Ev. napsat jen kde v objektovém modelu najít kolekci ploch na Body. Předem díky. |
Ing Jan Cinert ![]() Poslat zprávu | Profil |
[#4306]
| Publikováno:
05.12. 2013 - 09:17 Kolekce faces není nikde, ale jde to takhle:
oSelection.Add(solid) primitivní, ale velice účinné... |
Pavel Zálešák ![]() Poslat zprávu | Profil |
[#5506]
| Publikováno:
03.12. 2015 - 10:34 Dobrý den,
tečný výběr ploch objemu je tedy možný pouze pomocí makra. Když navážu na toto téma, a zeptám se jestli je možné vybrat podobným způsobem všechny plochy objemu pro obarvení? Někdy, zejména při kopírování objemů s linkou je někdy v barvách chaos a není možné barvy ani resetovat, ani nijak jednoduše vybírat... Díky, Pavel. |
Břeťa Doležal ![]() ![]() Poslat zprávu | Profil |
[#7293]
| Publikováno:
24.02. 2026 - 13:34 Potřebuji vybrat tečné plochy na Solidu, tak se vracím k tomuto tématu:
Když vyberu přes SelectElement2 plošku na Solidu a následně přetypuji objekt ze Selection na Face. Tak nevím jak následně položku převést na Reference. Názve Face. get_Name() je "Selection_RSur:(Face:(Brp:(Pad.1;2);None:();Cf14:());Add.1_ResultOUT;Z0;G10403)" CreateReferenceFromObject a CreateReferenceFromGeometry mi nefungují. refPloska = dil.CreateReferenceFromName(ploska.get_Name());funguje, ale asi jen na oko. Tady to následně zkolabuje extractTecPlocha = hsFactory.AddNewExtract(refPloska); když dám záznam makra, tak se Reference tvoří následovně: Set reference1 = part1.CreateReferenceFromBRepName("RSur:(Face:(Brp:(Pad.1;2);None:();Cf14:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR29)", add1) Musí se opravdu Reference tvořit přes CreateReferenceFromBRepName? Jaký je nej postup ze selekce plošky na solidu získat použitelnou referenci? Dá se vždycky počítat s tím, že řetěz: "Selection_RSur:(Face:(Brp:(Pad.1;2);None:();Cf14:());Add.1_ResultOUT;Z0;G10403)" Mohu vždy rozbít na "RSur:(Face:(Brp:(Pad.1;2);None:();Cf14:());" a připojit "WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR29)" ? Co značí CXR29 a kde dohledám? Z názvu selekce za středníkem "Add.1" bude vždy příslušný vhodný tvar?, který si musím následně vytěžit do příslušného tvarového objektu? Dim add1 As Add Set add1 = shapes1.Item("Add.1") |
Břeťa Doležal ![]() ![]() Poslat zprávu | Profil |
[#7294]
| Publikováno:
24.02. 2026 - 13:52 Tak nakonec s touto tvorbou reference mi to začalo šlapat. Jen obyčejné přetypování bez CreateReferenceFrom...
Reference refPloska = (Reference)ploska; |
Břeťa Doležal ![]() ![]() Poslat zprávu | Profil |
[#7295]
| Publikováno:
03.03. 2026 - 08:46 Podařilo se mi dopracovat se k pomalému řešení. Bych měl dotaz na případnou optimalizaci. Nejprve relativně rychle vyfiltruji plošky, které mají nulovou vzdálenost od Extractu. Následně jedu druhý filtr, ale zde narážím. Pokud mám tečnou plochu třeba z 500 plošek, tak mi potom makro běží přes hodinu. Beru plošky z Extractu a již předfiltrované na Solidu. Jedu následně tyto smyčky:
Neměl by někdo rychlejší a efektivnější způsob na filtrování plošek? Můj kód sice jede, ale dost pomalu...než projede cca 500x500x(~500/2) měření při 500ploškách. By DS mohl tu selekci plošek na Solidu také implementovat do CATIA, když už mají kód pro výběr ploch v rámci Extractu.... |
Ing Jan Cinert ![]() Poslat zprávu | Profil |
[#7296]
| Publikováno:
11.03. 2026 - 16:34 Zdravím, já to šel podobně a výsledek není tak pomalý. Postup byl asi takhle:
1. Vytvořím tangent extract 2. Vyberu všechny face na solidu 3. Měřím vzdálenost extract - každá face tím dostanu všechny face, které jsou v extractu, ale bohužel i ty, které se ho jen dotýkají, takže dále 4. na každé face vytvořím bod (on surface s nějakým direction, když se nevytvoří, otočím směr) 5. pak změřím vzdálenost bodu na ploše od extractu - když je 0, plocha na 100% přísluší extractu a jde do výběru. V podstatě jen jeden průchod, ale všemi plochami na solidu. Mám to implementované v toolu na barvení ploch, byl to kdysi požadavek zákazníka. Zkoušel jsem teď na příkladu: solid ca 760 plošek, výběr byl na 270 tangentních, trvalo to ca 1minutu 30 vteřin. A tohle také dokáže zvýšit rychlost :-) ' vypnuti synchronizece vyberu pro zvyseni vykonu Btw, na tuhle funkcionalitu čekám roky...jde to u draftu, shellu, thicknessu, Joinu...tak proboha proč to není ve výběru jen tak. |
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.












