Hallo allemaal, ik heb een macro geschreven om de uitgevouwen plaatwerkonderdelen te exporteren, alles werkt goed als het vanuit een onderdeel is ingeschakeld.
Ik wil het laten werken, zelfs als het actieve document een plan is (ik kom er voor de exportstap).
Het doel is, in het geval dat het startpunt een plan is, om het gelijknamige deel te openen/activeren en vervolgens te exporteren via ExportToDWG2.
Maar ik krijg in deze context de foutmelding "eigenschap of methode die niet door dit object wordt afgehandeld", ideeën?
(echter, na het openen van het onderdeel, vertelt MsgBox ("Het actieve document is: " & swApp.ActiveDoc.GetTitle) me dat het deel actief is)
---------------------------------CONTEXTCONTROLE EN LANCERING-------------------------
Sub dxfexport()
Zo niet, dan is swDOC niets
Als swDOC.GetType = swDocDRAWING Dan
Als fso. FileExists(PART_PATH) dan
Oproep openpart
Bel dxf
Bel closepart
Else: MsgBox ("Pièce Introuvable")
End If
ElseIf swDOC.GetType = swDocPART Then
'openpart
dxf
End If
Anders
MsgBox "Open a.u.b. een document", vbUitroep + vbOKOnly
Einde als
Einde Sub
--------------------------------- OPENING VAN DE KAMER----------------------------
Sub openpart()
Dim swApp als object
Deel dimmen als object
Dim boolstatus als Booleaanse
Dim longstatus As Long, longwarnings As Long
Stel swApp = Toepassing.SldWorks in
Deel instellen = swApp.ActiveDoc
Doen
Als fso. FileExists(PART_PATH) dan
Deel instellen = swApp.OpenDoc6(PART_PATH, 1, 0, "", longstatus, longwarnings)
swApp.ActivateDoc3 PART_PATH, False, swRebuildOnActivation_e.swDontRebuildActiveDoc, longstatus
'swApp.ActivateDoc2 PART_PATH, False, longstatus
Deel instellen = swApp.ActiveDoc
Else: MsgBox ("deel niet gevonden")
Einde als
Herhalen tot Part.GetType = swDocPART
Deel.BewerkenOpnieuw opbouwen3
Deel.WeergaveZoomtofit2
MsgBox ("Het actieve document is: " & swApp.ActiveDoc.GetTitle)
Einde Sub
-------------------------------------------EXPORTEREN------------------------------------
Sub dxf()
Dim modelPath als tekenreeks
Dim longstatus Zo lang
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"
Anders
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
Einde als
Einde Sub