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

Jak převést CGR data do CATPartu

Publikováno: 18. února 2013 | Zobrazeno: 5060x
V tomto velmi krátkém článku se zmíním o možnosti, jak převést data ve formátu CGR do CATPartu. Často máme v sestavě k dispozici velké množství dat právě ve formátu CGR, která mohla být vytvořena např. některým nástrojem DMU nebo jsme tato data prostě jen dostali v sestavě namísto plnohodnotných CATpartů.

Celý trik je v použití metody Read objektu Document a následně metody ExportData. Tím dojde k načtení obsahu CGR souboru a jeho následnému exportu do V4 formátu .model. Celý kód je velice jednoduchý, export zajišťuje prvních pár řádků, zbytek už je jen kopírování geometrie z V4 modelu a vložení do CATPartu.

Výsledkem je sice "otesánek" složený z trojúhelníků, ale lepší něco než nic. I z takovýchto ploch se dá udělat objem, zjistit těžiště, hmotnost atd.

Na obrázcích můžeme vidět originální cgr data i výsledný CATPart.

CGR data načtená v sestavě


CATPart vytvořený z CGR dat - "otesánek"


A nakonec zdrojový kód makra:
Sub CATMain()

Dim sInputFile As String
sInputFile = CATIA.FileSelectionBox("Vyberte soubor cgr...", "*.cgr", CatFileSelectionModeOpen)

Dim sInputFileName As String
sInputFileName = Left(sInputFile, InStrRev(sInputFile, ".") - 1)

Dim sInputFileNameV4 As String

If Len(sInputFileName) > 72 Then
sInputFileNameV4 = Left(sInputFileName, 72) & ".model"
Else
sInputFileNameV4 = sInputFileName & ".model"
End If

Dim oDoc As document
Set oDoc = CATIA.documents.Read(sInputFile)
oDoc.ExportData sInputFileNameV4, "model"
oDoc.Close

Set oDoc = CATIA.documents.Open(sInputFileNameV4)
Dim docSel As selection

Set docSel = oDoc.selection

If CATIA.SystemConfiguration.Release < "16" Then
docSel.Search "Name=CAT_1000_1"
Else
docSel.Search "V4Model.MASTER"
End If

docSel.Copy

Dim iPartNumber As String
iPartNumber = Mid(sInputFileName, InStrRev(sInputFileName, CATIA.FileSystem.FileSeparator) + 1)

Set oDoc = CATIA.documents.Add("Part")

Dim iProduct As Product
Set iProduct = oDoc.Product

iProduct.PartNumber = iPartNumber

Set docSel = oDoc.selection
docSel.Add iProduct
docSel.Paste

iProduct.Update

oDoc.SaveAs sInputFileName & ".CATPart"
oDoc.Close

Set oDoc = CATIA.documents.Item(CATIA.documents.Count)
oDoc.Close

Set oDoc = CATIA.documents.Open(sInputFileName & ".CATPart")
End Sub