Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  
  iLogic Zeichnung von Vault öffnen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
[an error occurred while processing this directive]
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  iLogic Zeichnung von Vault öffnen (241 mal gelesen)
OibelTroibel
Mitglied
Konstrukteur


Sehen Sie sich das Profil von OibelTroibel an!   Senden Sie eine Private Message an OibelTroibel  Schreiben Sie einen Gästebucheintrag für OibelTroibel

Beiträge: 518
Registriert: 18.04.2014

ACAD/Inventor 2018-21

erstellt am: 22. Sep. 2022 10:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen
Unter diesem Link bin ich fündig geworden, um alle Zeichnungen einer Baugruppe aus Vault zu laden. Die Regel funktioniert soweit, jedoch gibt es eine Fehlermeldung, dass die "Name".idw.dwf nicht öffnen könne und bricht ab. Die Zeichnung "Name".idw ist zu diesem Zeitpunkt aber bereits offen. Daher schliesse ich, dass der Code ohne Probleme durchlaufen wurde und es erst beim Öffnen der Zeichnung Probleme gibt.
Für mich ist es aber nicht nachzuvollziehen, wann er die.dwf Datei öffnen will.
Kann mir da jemand weiterhelfen?

Code:
AddReference "Autodesk.Connectivity.WebServices.dll"
Imports ACW = Autodesk.Connectivity.WebServices
AddReference "Autodesk.DataManagement.Client.Framework.Vault.dll"
AddReference "Autodesk.DataManagement.Client.Framework.dll"
Imports VDF = Autodesk.DataManagement.Client.Framework
AddReference "Connectivity.Application.VaultBase.dll"
Imports VB = Connectivity.Application.VaultBase


Public Class ThisRule

Sub Main()

Dim oApp As Inventor.Application = ThisApplication

Dim oDoc As Document = ThisDoc.Document
If TypeOf ThisDoc.Document Is AssemblyDocument Then
If ThisDoc.Document.SelectSet.Count > 0 Then
oDoc = ThisDoc.Document.SelectSet(1).Definition.Document
End If
End If

Dim docfullfilename As String = oDoc.FullFileName
Dim docfilename As String = RPointToBackSlash(oDoc.FullFileName)

'Alle Zeichnungen aus dem Vault abrufen
'Auf Vault-Connection zugreifen und ggf. rausgehen
Dim mVltCon As VDF.Vault.Currency.Connections.Connection = VB.ConnectionManager.Instance.Connection
If mVltCon Is Nothing Then Exit Sub
'Auf ACW-PropertyDefininition Status zugreifen
Dim filePropDefs As ACW.PropDef() = mVltCon.WebServiceManager.PropertyService.GetPropertyDefinitionsByEntityClassId("FILE")
Dim ACWNamePropDef As ACW.PropDef
For Each def As ACW.PropDef In filePropDefs
    If def.DispName = "Name" Then
        ACWNamePropDef = def
Exit For
    End If
Next def 
'Suchoptionen festlegen
Dim namesucheoptionen As New ACW.SrchCond() With { _
.PropDefId = ACWNamePropDef.Id, _
.PropTyp = ACW.PropertySearchType.SingleProperty, _
.SrchOper = 1, _
.SrchRule = ACW.SearchRuleType.Must, _
.SrchTxt = docfilename & " idw" _
}

Dim bookmark As String = String.Empty
Dim status As ACW.SrchStatus = Nothing
Dim results As ACW.File() = mVltCon.WebServiceManager.DocumentService.FindFilesBySearchConditions(New ACW.SrchCond() {namesucheoptionen }, Nothing, Nothing, False, True, bookmark, status)

Dim settings As New VDF.Vault.Settings.AcquireFilesSettings(mVltCon)
If results Is Nothing Then
MessageBox.Show("Zu dem Dokument " & docfilename & " ist keine Zeichnung im Vault vorhanden.", "Info")
Else
For Each res In results
Dim oFileIteration As VDF.Vault.Currency.Entities.FileIteration = New VDF.Vault.Currency.Entities.FileIteration(mVltCon, res)
settings.OptionsRelationshipGathering.FileRelationshipSettings.IncludeRelatedDocumentation = True
settings.OptionsRelationshipGathering.FileRelationshipSettings.VersionGatheringOption = VDF.Vault.Currency.VersionGatheringOption.Latest
settings.AddFileToAcquire(oFileIteration, VDF.Vault.Settings.AcquireFilesSettings.AcquisitionOption.Download)
Next
End If
Dim aquiresults As VDF.Vault.Results.AcquireFilesResults = mVltCon.FileManager.AcquireFiles(settings)

'Alle heruntergeladenen idw's in Liste
Dim idwList As New ArrayList
For Each aquiresult As VDF.Vault.Results.FileAcquisitionResult In aquiresults.FileResults
Dim aquiresultpath As String = aquiresult.LocalPath.FullPath
If UCase(aquiresultpath).Contains(".IDW") Then
idwList.Add(aquiresultpath)
End If
Next

'idw's öffnen
For Each idw As String In idwList
oApp.Documents.Open(idw, True)
Next

End Sub

Function RPointToBackSlash(ByVal strText As String) As String
    strText = Left(strText, InStrRev(strText, ".") - 1)
    RPointToBackSlash = Right(strText, Len(strText) - InStrRev(strText, "\"))
End Function

End Class


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

OibelTroibel
Mitglied
Konstrukteur


Sehen Sie sich das Profil von OibelTroibel an!   Senden Sie eine Private Message an OibelTroibel  Schreiben Sie einen Gästebucheintrag für OibelTroibel

Beiträge: 518
Registriert: 18.04.2014

ACAD/Inventor 2018-21

erstellt am: 22. Sep. 2022 10:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Gerade fällt es mir wie Schuppen von den Augen - in der ArrayList idwList werden sämtliche Pfade mit ".idw" geführt, also auch .idw.dwf. Habe den Code nun ergänzt mit dem fettgeschriebenen Code:

Code:
'Alle heruntergeladenen idw's in Liste
Dim idwList As New ArrayList
For Each aquiresult As VDF.Vault.Results.FileAcquisitionResult In aquiresults.FileResults
Dim aquiresultpath As String = aquiresult.LocalPath.FullPath
If UCase(aquiresultpath).Contains(".IDW.DWF") Then
Else
If UCase(aquiresultpath).Contains(".IDW") Then
idwList.Add(aquiresultpath)
End If
Next

Was aber noch nicht funktioniert, ist das alle Zeichnungen der Baugruppe geöffnet werden. Was übersehe ich da noch?

[Diese Nachricht wurde von OibelTroibel am 22. Sep. 2022 editiert.]

[Diese Nachricht wurde von OibelTroibel am 22. Sep. 2022 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2098
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 22. Sep. 2022 12:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für OibelTroibel 10 Unities + Antwort hilfreich

Moin

Soweit ich das sehe holt die Regel nur die Zeichnung des aktuell selektierten Dokumentes (oder der Hauptbaugruppe falls nichts selektiert ist), falls es eine gibt, und nicht alle Zeichungen aller Komponenten in deiner Baugruppe.
Weiterhin solltest du statt Contains vielleicht einfach EndsWith benutzen, um alle IDW's zu finden. Und dann damit bereits die Downloadliste settings von den .IDW.DWF frei halten.
Da, wie oben erwähnt, nur das aktuell selektierte Dokument bzw. die Haupbaugruppe benutzt wird, orakel ich mal das in der idwList nur maximal eine IDW drin steht. Man könnte den Inhalt von idwList ja mal in einem debug.log rausschreiben lassen.

Habt ihr echt DWF's die XYZ.IDW.DWF heißen im Vault? Wer is denn auf die Idee gekommen?

------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mcap
Mitglied
CAD-Supporter


Sehen Sie sich das Profil von mcap an!   Senden Sie eine Private Message an mcap  Schreiben Sie einen Gästebucheintrag für mcap

Beiträge: 114
Registriert: 13.11.2014

erstellt am: 22. Sep. 2022 18:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für OibelTroibel 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von rkauskh:
...
Habt ihr echt DWF's die XYZ.IDW.DWF heißen im Vault? Wer is denn auf die Idee gekommen?

Hallo Ralf
Diese Dateien werden von Vault beim Einchecken erstellt (wenn so konfiguriert). Auch für andere Dateitypen (.ipt.dwf / .iam.dwf etc.). Sie dienen im Vault-Explorer als Viewer-Dateien für die Voransicht. Im Normalfall werden sie in Auflistungen etc. nicht angezeigt.
"Selber erstellte" DWFs heissen ganz normal .dwf.

------------------
Gruss Marco

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2098
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 22. Sep. 2022 21:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für OibelTroibel 10 Unities + Antwort hilfreich

Hallo

Die Originalendung so als Teil des Namens stehen zu lassen, find ich trotzdem nicht schön. Ich denke dabei immer an die unter Windows per default deaktivierte Dateiendungsanzeige.  Man könnte ja genauso gut den Punkt durch einen Unterstrich ersetzen.

------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

OibelTroibel
Mitglied
Konstrukteur


Sehen Sie sich das Profil von OibelTroibel an!   Senden Sie eine Private Message an OibelTroibel  Schreiben Sie einen Gästebucheintrag für OibelTroibel

Beiträge: 518
Registriert: 18.04.2014

ACAD/Inventor 2018-21

erstellt am: 23. Sep. 2022 07:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Ralf

Vielen Dank für den Tipp mit "EndsWith", werde ich so umsetzen. Das stimmt, die idwList hat jeweils nur ein idw drin. Für was wird dann die Liste gemacht? Kann man die ersten Zeilen einfach umschreiben, dass es durch alle Baugruppen geht oder durch alle ausgewählten?
Mit den Vault-DWF-Einstellungen habe ich mich nicht befasst, daher denke ich, dass es die Standardeinstellungen sind. Nur haben mich die bis jetzt nie gestört, da nicht sichtbar.

Beste Grüsse
Raphael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2098
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 23. Sep. 2022 22:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für OibelTroibel 10 Unities + Antwort hilfreich

Hallo

Versuch es mal so:

Code:

AddReference "Autodesk.Connectivity.WebServices.dll"
Imports ACW = Autodesk.Connectivity.WebServices
AddReference "Autodesk.DataManagement.Client.Framework.Vault.dll"
AddReference "Autodesk.DataManagement.Client.Framework.dll"
Imports VDF = Autodesk.DataManagement.Client.Framework
AddReference "Connectivity.Application.VaultBase.dll"
Imports VB = Connectivity.Application.VaultBase


Public Class ThisRule

Sub Main()

break

Dim oApp As Inventor.Application = ThisApplication

Dim oDocs As New List(Of String)

Dim oDoc As Document = ThisDoc.Document
If TypeOf ThisDoc.Document Is AssemblyDocument Then
If ThisDoc.Document.SelectSet.Count > 0 Then
Dim oOcc As ComponentOccurrence
For Each oOcc In oDoc.SelectSet
If Not oDocs.Contains(oOcc.Definition.Document.FullFileName ) Then
oDocs.Add(oOcc.Definition.Document.FullFileName)
End If
Next
'oDoc = ThisDoc.Document.SelectSet(1).Definition.Document
Else
For Each oRefedDoc As Document In oDoc.AllReferencedDocuments
oDocs.Add(System.IO.Path.GetFileNameWithoutExtension(oRefedDoc.FullFileName))
Next
End If
End If

Dim docfullfilename As String = oDoc.FullFileName
Dim docfilename As String = System.IO.Path.GetFileNameWithoutExtension(oDoc.FullFileName) 'RPointToBackSlash(oDoc.FullFileName)

'Alle Zeichnungen aus dem Vault abrufen
'Auf Vault-Connection zugreifen und ggf. rausgehen
Dim mVltCon As VDF.Vault.Currency.Connections.Connection = VB.ConnectionManager.Instance.Connection
If mVltCon Is Nothing Then Exit Sub
'Auf ACW-PropertyDefininition Status zugreifen
Dim filePropDefs As ACW.PropDef() = mVltCon.WebServiceManager.PropertyService.GetPropertyDefinitionsByEntityClassId("FILE")
Dim ACWNamePropDef As ACW.PropDef
For Each def As ACW.PropDef In filePropDefs
    If def.DispName = "Name" Then
        ACWNamePropDef = def
Exit For
    End If
Next def

'Suchoptionen festlegen
Dim namesucheoptionen As New ACW.SrchCond() With { _
.PropDefId = ACWNamePropDef.Id, _
.PropTyp = ACW.PropertySearchType.SingleProperty, _
.SrchOper = 1, _
.SrchRule = ACW.SearchRuleType.Must, _
.SrchTxt = docfilename & " idw" _
}

For Each docfilename In oDocs
namesucheoptionen.SrchTxt = namesucheoptionen.SrchTxt & " OR " & docfilename & " idw"
Next

Dim bookmark As String = String.Empty
Dim status As ACW.SrchStatus = Nothing
Dim results As ACW.File() = mVltCon.WebServiceManager.DocumentService.FindFilesBySearchConditions(New ACW.SrchCond() {namesucheoptionen }, Nothing, Nothing, False, True, bookmark, status)

Dim settings As New VDF.Vault.Settings.AcquireFilesSettings(mVltCon)
If results Is Nothing Then
MessageBox.Show("Zu dem Dokument " & docfilename & " ist keine Zeichnung im Vault vorhanden.", "Info")
Else
For Each res In results
Dim oFileIteration As VDF.Vault.Currency.Entities.FileIteration = New VDF.Vault.Currency.Entities.FileIteration(mVltCon, res)
settings.OptionsRelationshipGathering.FileRelationshipSettings.IncludeRelatedDocumentation = True
settings.OptionsRelationshipGathering.FileRelationshipSettings.VersionGatheringOption = VDF.Vault.Currency.VersionGatheringOption.Latest
settings.AddFileToAcquire(oFileIteration, VDF.Vault.Settings.AcquireFilesSettings.AcquisitionOption.Download)
Next
End If
Dim aquiresults As VDF.Vault.Results.AcquireFilesResults = mVltCon.FileManager.AcquireFiles(settings)

'Alle heruntergeladenen idw's in Liste
Dim idwList As New ArrayList
For Each aquiresult As VDF.Vault.Results.FileAcquisitionResult In aquiresults.FileResults
Dim aquiresultpath As String = aquiresult.LocalPath.FullPath
If UCase(aquiresultpath).EndsWith(".IDW") Then
idwList.Add(aquiresultpath)
End If
Next

'idw's öffnen
For Each idw As String In idwList
oApp.Documents.Open(idw, True)
Next

End Sub

End Class


------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

OibelTroibel
Mitglied
Konstrukteur


Sehen Sie sich das Profil von OibelTroibel an!   Senden Sie eine Private Message an OibelTroibel  Schreiben Sie einen Gästebucheintrag für OibelTroibel

Beiträge: 518
Registriert: 18.04.2014

ACAD/Inventor 2018-21

erstellt am: 24. Sep. 2022 14:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Ralf

Herzlichen Dank, deine Ergänzung funktioniert wunderbar und genau wie gewünscht

Beste Grüsse
Raphael

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2022 CAD.de | Impressum | Datenschutz