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
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Nápověda

Programujeme: Přejmenování booleovských operací podle názvu Body

Publikováno: 25. září 2013 | Zobrazeno: 4917x
Pokud při modelování v PartDesignu často používáme booleovské operace a chceme si udržet přehledný model, časem určitě přijdeme na to, že je dobré mít tyto operace pojmenované stejně jako Body, které obsahují. Při práci, zejména pokud je v jedné úrovni více operací za sebou, si tak ušetříme spoustu času - nebudeme muset hledat, která operace skrývá Body (část modelu), které potřebujeme editovat (zaměnit, smazat, atd).

V úvahu připadají všechny booleovské operace, které operují s Body - jsou to Add, Assemble, Remove, Union Trim a Intersection. Výjimkou je Remove Lump, to je spíše psedobooleovská funkce.

Přepisovat název bool. operace podle PartBody můžeme bud postupně, vždy v okamžiku vytváření bool. operace, nebo najednou, když je model hotový a je třeba ho "učesat" (vyčistit od nepotřebných zbytků atd). Tento krok si lze ušetřit s pomocí velmi jednoduchého makra, které přejmenování zvládne za nás.

Jak na to

Strom s přejmenovanými operacemi
Strom s nepřejmenovanými operacemi
Princip je vcelku jednoduchý. V podstatě musíme najít v modelu všechny booleovské opearace - v programátorském názvosloví se jedná o tzv. Shapes. Jsou to všechny solid objekty a operace v Body. Pak už se jen kontroluje, zda má Shape vlastnost Body - pokud ano, jedná se o booleovskou operaci. A jsme doma. Stačí tento Shape přejmenovat podle názvu Body, které obsahuje.

Zdrojový kód
Ke kódu ještě uvedu několik poznámek. Makro nejprve zkontroluje, zda je aktivní dokument typu CATPart. Pak vybere všechna Body a postupně prochází Shapes, které Body obsahují. U každého z nich zkouší najít Body - tady je nutné ošetření, protože pokud Shape Body nemá (např. Pad), makro by "shořelo". Nakonec se přejmenuje Shape podle názvu Body.

Můžete vyzkoušet. Kód stačí zkopírovat a vložit do editoru. Makro vytvořit jako CATScript.

' RENAME BOOLEAN OPERATION --------------------------------------------

' autor : Jan Cinert
' funkce : prejmenuje booleovske operace podle Body
'
Sub CATMain()

' kontrola typu
On Error Resume Next
If TypeName(CATIA.ActiveDocument) = "PartDocument" Then
' aktivni dokument a selekce
Set oActiveDocument = CATIA.ActiveDocument
Set oSelection = oActiveDocument.Selection
oSelection.Clear()

' vybereme vsechna Body
oSelection.Search(".Body; all")

If oSelection.Count > 0 Then
For i = 1 To oSelection.Count
Set oBody = oSelection.Item(i).Value

' prochazime vsechny Shapes v Body
For Each oShape In oBody.Shapes
' osetrime pripad, kdy se nejedna o bool. operaci
On Error Resume Next
' prejmenujeme operaci podle Body
oShape.Name = oShape.Body.Name
Next
Next
End If

' vyprazdnime selekci
oSelection.Clear()

Else
MsgBox("Je požadován dokument typu CATPart!")
End If

End Sub


Závěr

Kromě prostého přejmenování se dá do názvu přiřadit libovolný prefix nebo je možné operaci např. obarvit podle typu atd, a jednoduše si přizpůsobit strom podle požadavků (zvyklosti, metodiky).

Příště: Vytvoření rastru na ploše

Autor článku: Jan Cinert