Hallo alle miteinander,
ich habe folgendes Anliegen. Mit Hilfe einer Makro erzeuge ich im Inventor aus ein Baugruppe(.iam) ein vereinfachtes Teil(.ipt). Dies gelingt relativ gut.
Zusätzlich wird automatisch abhängig von den benutzerdefinierten iProperties der iam ein Name für die ipt erzeugt. Und hier fangen die Probleme an. Den Namen für das Teil zu vergeben gelingt mir nur mit FullFileName, FileName ist in diesem Fall nicht verfügbar. Zwar hat die erzeugte ipt dann den gewünschten Namen, allerdings wird gleichzeitig ein Speicherort für die Datei festgelegt. Sodas beim drücken des Speichern-Buttons kein Dialog zur Auswahl des Speicherorts auftaucht, sondern die Datei sonst wo gespeichert wird. Kann mir bitte jemand bei diesem Problem helfen.
Was gibt es für Wege einen Namen für das neu erzeugte Teil zu generieren ohne, dass Inventor gleichzeitig einen Speicherort festlegt?
Hier ist mein Programmiercode
Sub CreateShrinkwrapSubstitute()
Dim oapp As Inventor.Application
Set oapp = ThisApplication
If oapp.ActiveDocument Is Nothing Then
MsgBox "Kein Dokument geöffnet", vbInformation
Exit Sub
End If
If oapp.ActiveDocument.DocumentType <> kAssemblyDocumentObject Then
MsgBox "Funktion ist nur bei Baugruppen zulässig", vbInformation
Exit Sub
End If
' Set a reference to the active assembly document
Dim oDoc As Inventor.AssemblyDocument
Set oDoc = oapp.ActiveDocument
Dim oDef As AssemblyComponentDefinition
Set oDef = oDoc.ComponentDefinition
' Create a new part document that will be the shrinkwrap substitute
Dim oPartDoc As Inventor.PartDocument
Set oPartDoc = oapp.Documents.Add(kPartDocumentObject)
Dim oPartDef As PartComponentDefinition
Set oPartDef = oPartDoc.ComponentDefinition
Dim oDerivedAssemblyDef As DerivedAssemblyDefinition
Set oDerivedAssemblyDef = oPartDef.ReferenceComponents.DerivedAssemblyComponents.CreateDefinition(oDoc.FullDocumentName)
' Set various shrinkwrap related options
' Style
oDerivedAssemblyDef.DeriveStyle = kDeriveAsMultipleBodies
' Vereinfachung
Call oDerivedAssemblyDef.SetRemoveByVisibilityOptions(kDerivedRemoveNone)
' Lochabdeckung
Call oDerivedAssemblyDef.SetHolePatchingOptions(kDerivedPatchNone)
' Andere Objekte Einbeziehen
oDerivedAssemblyDef.IncludeAllTopLevelWorkFeatures = kDerivedExcludeAll
oDerivedAssemblyDef.IncludeAllTopLevelSketches = kDerivedExcludeAll
oDerivedAssemblyDef.IncludeAllTopLeveliMateDefinitions = kDerivedExcludeAll
oDerivedAssemblyDef.IncludeAllTopLevelParameters = kDerivedExcludeAll
' oDerivedAssemblyDef.
oDerivedAssemblyDef.InclusionOption = False
oDerivedAssemblyDef.ReducedMemoryMode = True
' Get the PropertySets object.
Dim oPropSets As PropertySets
Set oPropSets = oDoc.PropertySets
'Get the design tracking property set.
Dim oPropSet As PropertySet
Set oPropSet = oPropSets.Item("Inventor User Defined Properties")
' Get the iProperties
Dim oPartBehArt As Property
Set oPartBehArt = oPropSet.Item("Behaelterart")
' rename the part
Dim strSubstituteFileName As String
strSubstituteFileName = oPartBehArt.Value & ".ipt"
oPartDoc.FullFileName = strSubstituteFileName
' Create the shrinkwrap component
Dim oDerivedAssembly As DerivedAssemblyComponent
Set oDerivedAssembly = oPartDef.ReferenceComponents.DerivedAssemblyComponents.Add(oDerivedAssemblyDef)
oDerivedAssembly.BreakLinkToFile
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP