Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy Arkance Systems [www.cadforum.cz]
CZ | SK | EN | DE
Přihlášení
či registrace
   právě nás čte: 4557 
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

 

NápovědaCAD diskuze, rady, výměna zkušeností

 
CAD Fórum - Homepage Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion 360, 3ds Max a s dalšími CAD aplikacemi. Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoVBA Macro

 Odpovědět Odpovědět archiv
Autor
PopelkaM Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 05.čvc.2010
Lokalita: ČR (PA)
Používám:
Inventor 2023
Stav: Offline
Bodů: 108
Přímý odkaz na tuto zprávu Téma: VBA Macro
    Zasláno: 02.zář.2022 v 07:45
Dobrý den,
v Inventoru 2021 jsem používal VBA makro pro export struktury sestavy do *.csv.
v Inventoru 2022 došlo v úrovních sestavy k nějaké změně a makro již nefunguje.
Chybová hláška níže.

Poradíte mě někdo?

Popelka


Připojené náhledyPřihlaste se pro zobrazení plné verze - 26140/Chyba.JPG




Připojené souborytxtuploads/26140/WriteAssemblyStructure_2022-09-02_07-41-46.txt

Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21687
Přímý odkaz na tuto zprávu Zasláno: 02.zář.2022 v 08:14
Zkuste třeba:
occ.Name & "," & occ.ReferencedDocumentDescriptor.FullDocumentName  ' uz ne   .Definition.Document.FileName

Vladimír Michl (moderátor)
Arkance Systems s.r.o. - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
PopelkaM Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 05.čvc.2010
Lokalita: ČR (PA)
Používám:
Inventor 2023
Stav: Offline
Bodů: 108
Přímý odkaz na tuto zprávu Zasláno: 02.zář.2022 v 08:44
Děkuji,
vyzkouším.
Lze někde dohledat změny v psaní kódu napříč verzemi Inventora?

Děkuji Popelka
Zpět nahoru
Navara Zobrazit panel
ARKANCE support
ARKANCE support
Avatar
Arkance Systems

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1637
Přímý odkaz na tuto zprávu Zasláno: 02.zář.2022 v 08:54
S každou verzí vychází 'Whats new' v API příručce. Pro 2023 je to zde

Zpět nahoru
Navara Zobrazit panel
ARKANCE support
ARKANCE support
Avatar
Arkance Systems

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1637
Přímý odkaz na tuto zprávu Zasláno: 02.zář.2022 v 09:09
V tomhle případě si ale myslím, že je problém v typování proměnných.

Zpět nahoru
PopelkaM Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 05.čvc.2010
Lokalita: ČR (PA)
Používám:
Inventor 2023
Stav: Offline
Bodů: 108
Přímý odkaz na tuto zprávu Zasláno: 02.zář.2022 v 10:53
Dobrý den,
tak to je nad mé síly....

Pokouším se z hlavní sestavy modelu Inventora 2022
vyexportovat do csv (nebo xls) celou strukturu modelu.
V excelu potřebuji mít na začátku označenou úroveň podsestavy (,) a její název.

Přiložené makro vytvářelo zkráceně zhruba toto...

70-35852_00.iam
,70-35852_01:1
,,70-35852_0101:1
,,,70-35852_0101_:1
,,,,70-35852_0101-01:1
,,,,70-35852_0101-01:2
,,,,70-35852_0101-02:7

To co není ošetřeno v makru:

Ideální by bylo vyřadit z exportu všechny součásti a normalizované součásti ze všech úrovní a referenční soubory a sestavy.
Je možné,že se toto dá provést až úpravou samotného excelu.

Je možné ve VBA,nebo iLogicem něco takového vytvořit?Smile

S pozdravem Popelka
Zpět nahoru
Navara Zobrazit panel
ARKANCE support
ARKANCE support
Avatar
Arkance Systems

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1637
Přímý odkaz na tuto zprávu Zasláno: 02.zář.2022 v 11:07
Určitě dá, jenom v iLgicu je to mnohem jednodušší. Hlavně ten zápis do souboru. a lepší práce s kolekcema.
Referenční výskyty je možné kontrolovat pomoci occurrence.BOMStructure
Pokud jde o normalizované součásti tak asi podle umístění. Jestli jsou uložené v podsložce obsahového centra. 
ThisApplication.DesignProjectManager.ActiveDesignProject.ContentCenterPath
Zpět nahoru
Navara Zobrazit panel
ARKANCE support
ARKANCE support
Avatar
Arkance Systems

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1637
Přímý odkaz na tuto zprávu Zasláno: 02.zář.2022 v 11:40
Sub Main

Dim asm As AssemblyDocument = ThisDoc.Document

lines = New List(Of String)()
contentCenterPath = ThisApplication.DesignProjectManager.ActiveDesignProject.ContentCenterPath

Dim fileName As String = SelectFileName()
If String.IsNullOrWhiteSpace(fileName) Then Return

Dim occurrences As IEnumerable(Of ComponentOccurrence) = asm.ComponentDefinition.Occurrences.OfType(Of ComponentOccurrence)
CreateStructure(occurrences, 0)

System.IO.File.WriteAllLines(fileName, lines.ToArray())
End Sub

Private Function SelectFileName() As String
Dim saveDialog As Inventor.FileDialog
ThisApplication.CreateFileDialog(saveDialog)
With saveDialog
.Filter = "CSV (Command delimited)(*.csv)|*.csv"
.DialogTitle = "Specify output filename"
.OptionsEnabled = False
.SuppressResolutionWarnings = True
.CancelError = True
End With
Try
saveDialog.ShowSave()
Return saveDialog.FileName
Catch
Return Nothing
End Try

End Function

Private lines As List(Of String)
Private contentCenterPath As String

Private Sub CreateStructure(occurrences As IEnumerable(Of ComponentOccurrence), level As Integer)
For Each occurrence As ComponentOccurrence In occurrences
If occurrence.BOMStructure = BOMStructureEnum.kReferenceBOMStructure Then Continue For
If IsContentCenter(occurrence) Then Continue For

Dim levelPrefix = New String(",", level)
Dim occName As String = occurrence.Name

Dim occFileName As String = occurrence.Definition.Document.FullFileName
lines.Add(String.Format("{0},{1},{2}", levelPrefix, occName, occFileName))

CreateStructure(occurrence.SubOccurrences.OfType(Of ComponentOccurrence), level + 1)
Next
End Sub

Private Function IsContentCenter(occurrence As ComponentOccurrence) As Boolean
Dim doc As Document = occurrence.Definition.Document
Return doc.FullFileName.StartsWith(contentCenterPath)
End Function
Zpět nahoru
PopelkaM Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 05.čvc.2010
Lokalita: ČR (PA)
Používám:
Inventor 2023
Stav: Offline
Bodů: 108
Přímý odkaz na tuto zprávu Zasláno: 02.zář.2022 v 12:40
Zkoušel jsem a hlásí....


Připojené náhledyPřihlaste se pro zobrazení plné verze - 26140/Chyba_řádek_14.JPG


Zpět nahoru
Navara Zobrazit panel
ARKANCE support
ARKANCE support
Avatar
Arkance Systems

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1637
Přímý odkaz na tuto zprávu Zasláno: 02.zář.2022 v 12:49
Zkuste to ještě jednou zkopírovat. Tohle jsem opravoval
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 1422:VIPJak automaticky zaznamenat VBA makro během práce v AutoCADu (jako v MS Office)?
Tip 9969:VIPJak jednoduše vypnout pracovní roviny v celé struktuře sestavy Inventoru?
Tip 6145:Jak detekovat a vyčistit DWG soubory obsahující VBA makra?
Tip 9321:VIPNefunguje mi VBA v Inventoru 2016, 2015, 2014 nebo 2013 - příčiny.
Tip 6790:VIPPřidání ikony vlastního příkazu/makra v Inventoru.
Tip 6490:VIPVBA aplikace v 64bitové verzi AutoCADu (kompatibilita, migrace)


 Odpovědět Odpovědět

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 1,063 sekund.