Hallo zusammen, ich habe ein Makro geschrieben, um die abgewickelten Blechteile zu exportieren, alles funktioniert gut, wenn es von einem Teil aus eingegriffen wird.
Ich möchte, dass es auch dann funktioniert, wenn es sich bei dem aktiven Dokument um einen Plan handelt (ich komme für den Exportschritt dorthin).
Das Objekt besteht darin, in dem Fall, in dem der Ausgangspunkt ein Plan ist, den gleichnamigen Teil zu öffnen/aktivieren und dann über ExportToDWG2 zu exportieren.
Aber ich bekomme in diesem Zusammenhang den Fehler "Eigenschaft oder Methode wird von diesem Objekt nicht behandelt", Ideen?
(Nach dem Öffnen des Teils teilt mir jedoch MsgBox ("Das aktive Dokument ist: " & swApp.ActiveDoc.GetTitle) mit, dass das Teil aktiv ist)
---------------------------------KONTEXTPRÜFUNG UND START-------------------------
Sub dxfexport()
Wenn nicht, ist swDOC nichts, dann
Wenn swDOC.GetType = swDocDRAWING dann
Wenn fso. FileExists(PART_PATH) dann
openpart aufrufen
Rufen Sie dxf auf
Rufen Sie closepart an
Else: MsgBox ("Pièce Introuvable")
End If
ElseIf swDOC.GetType = swDocPART Then
'openpart
dxf
End If
Oder
MsgBox "Bitte öffnen Sie ein Dokument", vbAusrufezeichen + vbOKOnly
Ende, wenn
Ende Sub
--------------------------------- ERÖFFNUNG DES RAUMS----------------------------
Sub openpart()
Dimmen swApp als Objekt
Teil als Objekt dimmen
Dim boolstatus als boolescher Wert
Dim longstatus As Long, longwarnings As Long
Legen Sie swApp = Application.SldWorks fest
Set Part = swApp.ActiveDoc
Tun
Wenn fso. FileExists(PART_PATH) dann
Set Part = swApp.OpenDoc6(PART_PATH, 1, 0, "", longstatus, longwarnings)
swApp.ActivateDoc3 PART_PATH, False, swRebuildOnActivation_e.swDontRebuildActiveDoc, longstatus
'swApp.ActivateDoc2 PART_PATH, Falsch, longstatus
Set Part = swApp.ActiveDoc
Ansonsten: MsgBox ("Teil nicht gefunden")
Ende, wenn
Schleife bis Part.GetType = swDocPART
Teil.EditRebuild3
Teil.ViewZoomtofit2
MsgBox ("Das aktive Dokument ist: " & swApp.ActiveDoc.GetTitle)
Ende Sub
-------------------------------------------EXPORTIEREN------------------------------------
Sub dxf()
Dimmen von modelPath als Zeichenfolge
Dim longstatus As Long
modelPath = swDOC.GetPathName
Dim OUT_PATH As String
OUT_PATH = EXPORT_PATH & FILE_NAME & Indice + ".DXF"
Dim options As Long
options = 1 Or 2 Or 4 Or 8 Or 16 Or 32
'Codes d'options d'export:
'ExportFlatPatternGeometry = 1
'IncludeHiddenEdges = 2
'ExportBendLines = 4
'IncludeSketches = 8
'MergeCoplanarFaces = 16
'ExportLibraryFeatures = 32
'ExportFormingTools = 64
'ExportBoundingBox = 2048
If modelPath = "" Then
Err.Raise vbError, "", "Enregistrez votre pièce avant export"
Oder
If False = swDOC.ExportToDWG2(OUT_PATH, PART_PATH, swExportToDWG_e.swExportToDWG_ExportSheetMetal, True, Empty, False, False, options, Empty) Then
Err.Raise vbError, "", "Erreur d'export DXF"
End If
Ende, wenn
Ende Sub