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
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.
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
Příště: Vytvoření rastru na ploše
Autor článku: Jan Cinert
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
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