Jak převést CGR data do CATPartu
Publikováno: 18. února 2013 | Zobrazeno: 10948x
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
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.
A nakonec zdrojový kód makra:
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.
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