Vítejte !   Přihlášení | Registrace
Hlavní menu
CATIA fórum.cz
Novinky
Seriál CATIA
Obecně o CAD
Novinky ze světa DS
Makra pro CATIA V5
Diskuse
Vytvořit téma
Koncepty
Seznam oblíbených
Soukromé zprávy
Pravidla
Live CHAT
VIP žádost
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Nápověda

Vytvoření surface

Kompletní přehled příspěvků v tématu Vytvoření surface řazený podle data jejich publikace na fóru.

UživatelPříspěvek
Pavel Krsek

Poslat zprávu | Profil
Datum: 18.10. 2017 | Zobrazeno: 7579x
Konfigurace CATIA: Catia r24

Text dotazu:
Dobrý den,
už nějakou dobu zápasím s jedním problémem, který se mi nedaří vyřešit.
Mám sestavu např. ze 2 parts, na 1 partu při aktivní sestavě označím face na solidu a do druhého partu potřebuji dostat "mrtý" surface dané selekce. Část kódu, který zkouším:

 oSelection = CATIA.ActiveDocument.Selection

Dim sFilter(0)
sFilter(0) = "BiDim" 'vybirame pouze plochu
Dim sStatus = oSelection.SelectElement2(sFilter, "Vyber face!", False)
If (sStatus = "Cancel") Then
End
End If
oSurface = oSelection.Item(1).Value

Dim oExtract As HybridShapeExtract = oHybridShape.AddNewExtract(oSurface)
Dim oSets As HybridBodies = oNewPart.HybridBodies
Dim oSet As HybridBody = oSets.Add()
oSet.AppendHybridShape(oExtract)
oNewPart.Update()

Jeden nápad je právě vytvořit extract a ten pak přes Addnewdatum odizolovat, ale daný script hodí chybu u posledního řádku, že vstup pro extract je prázdný. Zkoušel jsem i nejdříve vytvořit referenci přes CreateReferenceFromBRepName, ale to se mi také nedaří.
Poradí prosím někdo jak na to? Děkuji.

Ing Jan Cinert

Poslat zprávu | Profil
[#6344] | Publikováno: 18.10. 2017 - 07:57
Dobrý den,

pokud vybíráte typ BiDim a ukazujete plochu v modelu, vybraný objekt už je typ reference, takže není třeba ji vytvářet. Jinak by se extract ani nevytvořil.

Bohužel není vidět celý kód, tak nedokážu říct, zda máte správně vytvořený objekt cílového partu a hlavně - pokud je vstupní plocha v jiném partu, bude se tímto způsobem tvořit externí reference (musí být povolené, jinak to také padne).

Já bych to ale celé dělal jinak - přes Copy - PasteSpecial("CATPrtResultWithOutLink"), to vám rovnou vytvoří mrtvolu z dané plochy. Jediná nevýhoda, že to vždy bude celá plocha (pokud jste chtěl přes extract brát třeba jen tangentní část, máte smůlu), ale je to snadnější a rychlejší.

Když budete trochu hledat, určitě je tu spousta vláken, kde jsou podobné věci vyřešené.
Pavel Krsek

Poslat zprávu | Profil
[#6345] | Publikováno: 18.10. 2017 - 08:09
Dobrý den,
děkuji za reakci. S tou externí referencí mě to také napadlo, takže jsem odškrtl v options Restrict external selection with link to PE. I tak mně to nefunguje. Cesta přes Copy není pro mě schůdná, protože potřebuji opravdu jen označené faces na solidu a s těmito konkrétníma dále pracovat.
Myslel jsem si, že by mělo jít něco jako, když se přepnu do cílového partu, zaškrtnu volbu Create Datum a vytvořím přes extract rovnou odizolovaný surface (označený na solidu jiného partu).
Ing Jan Cinert

Poslat zprávu | Profil
[#6346] | Publikováno: 18.10. 2017 - 09:26
Ten váš způsob také bude fungovat, myšlenka je správná. Dejte si pozor na to, co je kdy aktivní a kde definujete selekci. Já myslím že v tomhle případě musí být selekce definovaná na cílovém partu a ne na sestavě (vy ji máte na active document a to je sestava), proto vám to nefunguje.

Link se, pokud je to povolené, vytvoří automaticky. Pak zřejmě ještě budete muset link smazat.


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.