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

Eport Bodů do Exelu

Kompletní přehled příspěvků v tématu Eport Bodů do Exelu řazený podle data jejich publikace na fóru.

UživatelPříspěvek
Kimbo

Poslat zprávu | Profil
Datum: 8.1. 2013 | Zobrazeno: 10528x
Konfigurace CATIA:

Text dotazu:
Dobrý den
Potřeboval bych makro na nahrání bodů do exelu.
Našel jsem toto (vypadá to velice nadějně ale hodí mi to hlášku:
Compile error:
Can´t find project or library)

-----
Dim objGEXCELapp As Object
Dim objGEXCELwkBks As Object
Dim objGEXCELwkBk As Object
Dim objGEXCELwkShs As Object
Dim objGEXCELSh As Object
Dim fs, f, f1, fc, s
Dim coords(2) As Integer
Dim PartDocument1

Sub CATMain()

CATIA.ActiveDocument.selection.Search "CATGmoSearch.Point,all"

StartEXCEL

ExportPoint

'objGEXCELSh.Application.ActiveWorkbook.SaveAs (ExcelFolder & Left(CATIA.ActiveDocument.Name,Len(CATIA.ActiveDocument.Name)-8) & ".xls")
'objGEXCELSh.Application.ActiveWorkbook.Close

End Sub

'******************************************************************************
Sub StartEXCEL()
'******************************************************************************
Err.Clear
On Error Resume Next
Set objGEXCELapp = GetObject(, "EXCEL.Application")

If Err.Number <> 0 Then
Err.Clear
Set objGEXCELapp = CreateObject("EXCEL.Application")
End If

objGEXCELapp.Application.Visible = True
Set objGEXCELwkBks = objGEXCELapp.Application.WorkBooks
Set objGEXCELwkBk = objGEXCELwkBks.add
Set objGEXCELwkShs = objGEXCELwkBk.Worksheets(1)
Set objGEXCELSh = objGEXCELwkBk.Sheets(1)
objGEXCELSh.Cells(1, "A") = "Name"
objGEXCELSh.Cells(1, "B") = "X"
objGEXCELSh.Cells(1, "C") = "Y"
objGEXCELSh.Cells(1, "D") = "Z"

End Sub

'******************************************************************************
Sub ExportPoint()
'******************************************************************************
For i = 1 To CATIA.ActiveDocument.selection.Count
Set selection = CATIA.ActiveDocument.selection
Set Element = selection.Item(i)
Set Point = Element.Value

'Write PointData to Excel Sheet
Point.GetCoordinates (coords)

objGEXCELSh.Cells(i + 1, "A") = Point.Name
objGEXCELSh.Cells(i + 1, "B") = coords(0)
objGEXCELSh.Cells(i + 1, "C") = coords(1)
objGEXCELSh.Cells(i + 1, "D") = coords(2)

Next

End Sub
----

Předem děkuji za radu.

Břeťa Doležal

Poslat zprávu | Profil
[#3587] | Publikováno: 08.01. 2013 - 10:47
Já jen změnil

Dim coords(2) As Integer 


na

Dim coords(2) As Variant 


a vše fungovalo bez problémů

Catia V5 R19 SP8 BN18, MS Office 2007
Ing Jan Cinert

Poslat zprávu | Profil
[#3590] | Publikováno: 08.01. 2013 - 12:16
Tady bych taky viděl problém, nemůžete dát do celočíselné proměnné desetinné číslo.

Jinak ta hláška ukazuje na chybějící knihovnu - jestli to máte jako CATVBA, zkontrolujte si cesty k projektům. Někdy stačí, že tam nelze zapisovat. U CATScriptu by to mělo být jedno.
VaNem

Poslat zprávu | Profil
[#4321] | Publikováno: 11.12. 2013 - 22:21
Dobrý den,
vše fungovalo až na detaily: např. u mě neprošlo pouze napsat

Point.GetCoordinates (coords) ,

v Excelu se mi nezobrazovali žádné hodnoty souřadnic.

Měl bych dotaz: makro nefunguje na body typu symmetry, intersect, translation, rotation, apod. - našlo by se nějaké jednoduché řešení? Zdá se mi že je nalezne, ale vyskytne se chyba. a vypíší se jen dokud není na řadě bod viz uvedené nahoře

děkuji

Ing Jan Cinert

Poslat zprávu | Profil
[#4323] | Publikováno: 12.12. 2013 - 10:10
Ano, zde asi nefunguje metoda GetCoordinates. Zde stačí použít měření, tj. objekt Measurable a jeho metodu GetPoint. V partu měří vždy proti nule, v sestavě taktéž.

Přiložené obrázky:

Tomáš Hlavačka

Poslat zprávu | Profil
[#5802] | Publikováno: 12.05. 2016 - 20:40
Dobrý den,

chtěl bych se zeptat, jak by tedy vypadala ta část makra metodou GetPoint. na místo:
'Write PointData to Excel Sheet
Point.GetCoordinates (coords)

objGEXCELSh.Cells(i + 1, "A") = Point.Name
objGEXCELSh.Cells(i + 1, "B") = coords(0)
objGEXCELSh.Cells(i + 1, "C") = coords(1)
objGEXCELSh.Cells(i + 1, "D") = coords(2)

Předem děkuji za odpověď.
Ing Jan Cinert

Poslat zprávu | Profil
[#5803] | Publikováno: 12.05. 2016 - 20:59
To není úplně jednoduché. Musí se použít měření.

Set oRef = oPart.CreateReferenceFromObject(objekt bodu co chcete merit)

Set SPAWB = oDoc.GetWorkbench("SPAWorkbench")
Set oMeasurable = oSPAWB.GetMeasurable(oRef)
oMeasurable.GetPoint(Coords)

Psáné z hlavy, ale takhle by to mělo fungovat.


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.