Focusplan om vba-afbeelding te importeren

Hallo allemaal, hier heb ik een stukje code gemaakt dat in mijn macro is geïntegreerd om een jpg-afbeelding in een solidworks-plan in te voegen. Het probleem is dat ik het plan selecteer dat al open staat met opendoc6, maar het werkt niet. Als ik het plan open heb staan, werkt het, maar als het niet op het hoofdvenster staat, werkt het niet meer.

Ik geef aan dat op dit punt in de macro het plan al open zal zijn, maar de focus ligt op een .deel, het plan is open maar niet geselecteerd.

Hier is de functie die de streepjescode moet invoegen:

Function codebarreDRAW(FCB As String, namePL As String, chemin As String)
Dim myModelView As Object
Dim swModel As ModelDoc2
Dim swApp As SldWorks.SldWorks
Dim swLoadErrors As Long
Dim swLoadWarnings As Long
Dim Fplan As String

Fplan = namePL & ".SLDDRW"

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
Set swModel = swApp.OpenDoc6(Fplan, swDocDRAWING, swOpenDocOptions_Silent, "", swLoadErrors, swLoadWarnings)
myModelView.FrameState = swWindowState_e.swWindowMaximized
Dim SkPicture As Object
Set SkPicture = Part.SketchManager.InsertSketchPicture(FCB)
SkPicture.SetSize 130 / 1000, 20 / 1000, True
SkPicture.SetOrigin 110 / 1000, 35 / 1000
End Function

 

Ik heb een fout op de regel Skpicture.setsize

Het ergste is dat de InsertSketchPicture-regel niet crasht, maar dat de afbeelding niet wordt geïmporteerd.

Als je ideeën hebt, ben ik er helemaal voor.

Bedankt!

Ik ben erin geslaagd om een van de problemen op te lossen, in feite gebruik ik in plaats van opendoc6 activatedoc3 en het zet me op het planvenster, maar aan de andere kant heb ik nog steeds de fout op de lijn:

SkPicture.SetSize 130/1000, 20/1000, waar

Fout 91 variabel object of met een blokvariabele die niet is gedefinieerd

Dus ik denk dat de Skpicture niet goed is geïnitialiseerd

Ok het is opgelost, ik heb net het ingestelde deel voor de activedoc3 gezet, dus het kon niet werken! Ik heb je de functie gegeven om in een open plan in te voegen.

 

Om indien nodig te worden herwerkt, vooral op het niveau van setsize en set origin,

 

FCB is het afbeeldingsbestand en namePL is de naam van het plan dat als invoer in de functie moet worden ingevoerd.

 

Function codebarreDRAW(FCB As String, namePL As String)
Dim myModelView As Object
Dim swModel As ModelDoc2
Dim swApp As SldWorks.SldWorks
Dim Errors As Long
Dim swLoadWarnings As Long
Dim Fplan As String

Fplan = namePL & ".SLDDRW"

Set swApp = Application.SldWorks
Set swModel = swApp.ActivateDoc3(Fplan, False, swRebuildOnActivation_e.swRebuildActiveDoc, Errors)
Set Part = swApp.ActiveDoc
Dim SkPicture As Object
Set SkPicture = Part.SketchManager.InsertSketchPicture(FCB)
SkPicture.SetSize 130 / 1000, 20 / 1000, True
SkPicture.SetOrigin 110 / 1000, 35 / 1000
End Function