Fokusplan zum Importieren des VBA-Images

Hallo zusammen, hier habe ich ein Stück Code in mein Makro integriert, um ein JPG-Bild in einen SOLIDWORKS-Plan einzufügen. Das Problem ist, dass ich den Plan auswähle, der bereits mit opendoc6 offen ist, aber es funktioniert nicht. Wenn ich den Plan geöffnet habe, funktioniert er nicht mehr, aber wenn er nicht im Hauptfenster angezeigt wird, funktioniert er nicht mehr.

Ich gebe an, dass der Plan an dieser Stelle im Makro bereits geöffnet ist, der Fokus jedoch auf einem .part liegt, der Plan ist geöffnet, aber nicht ausgewählt.

Hier ist die Funktion, die den Barcode einfügen soll:

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

 

Ich habe einen Fehler in der Zeile Skpicture.setsize

Das Schlimmste daran ist, dass die InsertSketchPicture-Zeile nicht abstürzt, aber das Bild nicht importiert wird.

Wenn du irgendwelche Ideen hast, bin ich dafür.

Vielen Dank!

Ich habe es geschafft, eines der Probleme zu lösen, tatsächlich verwende ich anstelle von opendoc6 activatedoc3 und es bringt mich in das Planfenster, aber auf der anderen Seite habe ich immer noch den Fehler in der Zeile:

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

Fehler 91 Variablenobjekt oder mit einer Blockvariablen, die nicht definiert ist

Ich vermute also, dass das Skpicture nicht gut initialisiert wurde

Ok, es ist gelöst, ich habe gerade den eingestellten Teil vor den activedoc3 gelegt, also konnte es nicht funktionieren! Ich habe Ihnen die Funktion zum Einfügen in einen offenen Plan gegeben.

 

Bei Bedarf nachzuarbeiten, insbesondere auf der Ebene der Mengengröße und des Mengenursprungs,

 

fcb ist die Bilddatei, und namepl ist der Name des Plans, der als Eingabe in der Funktion eingetragen werden soll.

 

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