Hallo zusammen,
seit dem Sommer verwende ich IV2016 (vorher IV2012). Es wurde der Import-Dialog und auch der Ablauf geändert. [OT: für die Aktion von Hand aus meiner Sicht eher zum schlechteren, solange „Referenzmodell“ nicht mit Step klappt. Für die automatisierte Version, wie ich sie mir vorstelle, evtl. vorteilhaft. OT Ende].
Ich möchte per VBA den Befehl „Importieren“ automatisieren. Primär für STEP-Daten. Wenn es am Ende auch für andere Formate funktioniert, auch gut.
Ausgehen möchte ich von einer geöffneten ipt (wird i.d.R. mein Template sein – nur Ursprungsebenen/-Achsen). Die wäre in der Zg.Verwaltung (PSP) schon richtig angelegt. Dateiname, Speicherort etc. schon passend.
Makro starten, Datei angeben inkl. Pfad (z.B. einfache Inputbox).
Die Optionen, die im Dialog gesetzt werden können, würde ich mir wünschen wie im angehängten Bild. Also alle (verfügbaren) Objektfilter gewählt und Flächen „zusammengesetzt“. Im Reiter „Auswählen“ sollen alle Elemente angewählt bleiben (Standardeinstellung).
Am Ende erhält man so einen oder mehrere BasisVolumen, je nach STEP-Datei, z.B. ob Baugruppe oder nur Einzelteil enthalten ist.
Ich habe versucht das „ImportedDWGComponent Creation API Sample“ umzustricken.
Code:
Sub Test_import2()
Const sFile As String = "C:\Temp\Test.stp"
Dim oDoc As PartDocument
Set oDoc = ThisApplication.ActiveDocument
Dim oCompDef As PartComponentDefinition
Set oCompDef = oDoc.ComponentDefinition
Dim oRefComponents As ReferenceComponents
Set oRefComponents = oCompDef.ReferenceComponents
' Create a ImportedComponentDefinition based on an AutoCAD file.
Dim oImportedCompDef As ImportedComponentDefinition
Set oImportedCompDef = oRefComponents.ImportedComponents.CreateDefinition(sFile)
[…]
' Create the ImportedComponent
Dim oImportedComponent As ImportedComponent
Set oImportedComponent = oRefComponents.ImportedComponents.Add(oImportedCompDef)
End Sub
Die letzte Zeile schlägt fehl (Object doesn´t support this action). Ich vermute mal, weil die AutoCAD-Datei im Bsp. als referenziertes Modell eingefügt wird (deshalb alles unter ReferenceComponents?). Also in meinem Code habe ich am Ende eine „ImportedComponentDefinition“, weiß aber nichts damit anzufangen. Weiß da jemand weiter? Oder ist das ganze schon im Ansatz falsch?
Das STEP Translator Add-In möchte ich nicht verwenden, weil dabei eine neue ipt-Datei erzeugt wird. Zumindest soweit ich das versucht und hinbekommen habe.
Gruß Stephan
------------------
Gruß KraBBy
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP