Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  
  Addin wird nicht in Inventor 2025 geladen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
[an error occurred while processing this directive]
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Addin wird nicht in Inventor 2025 geladen (145 / mal gelesen)
Andreas01
Mitglied
Dipl.-Ing.(FH) Konstrukteur


Sehen Sie sich das Profil von Andreas01 an!   Senden Sie eine Private Message an Andreas01  Schreiben Sie einen Gästebucheintrag für Andreas01

Beiträge: 246
Registriert: 05.08.2004

Inventor 2020
i7
32 GB RAM
Quatro FX 4000
WIN10-64bit

erstellt am: 17. Sep. 2024 09:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Screenshot2024-09-17092521.jpg

 
Hallo zusammen,

habe folgendes Problem. Meine selbstgeschriebenen Addinn's werden bei Inventor 2025 zwar angezeigt aber nicht geladen (Automatisch/Entladen) auch wenn ich auf das Häkchen auf Geladen setze und auf OK drücke und danach den Zusatzmanager starte steht da wieder Automatisch/Entladen.
Auf meinem Rechner, auf dem ich die AddIn's programmiere, laufen diese aber. Auf den Rechnern der Kollegen aber halt nicht. Ich habe schon einiges ausprobiert leider ohne Erfolg.
Ich habe die AddIn's noch nicht nach -NET8 konvertiert, das habe ich zwar versucht, leider hat es nicht funktioniert.

Hat jemand vielleicht auch diese Probleme?

Gruß
Andreas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mb-ing
Mitglied
F&E-Mangement, MB-Ing. (u)


Sehen Sie sich das Profil von mb-ing an!   Senden Sie eine Private Message an mb-ing  Schreiben Sie einen Gästebucheintrag für mb-ing

Beiträge: 774
Registriert: 06.09.2012

Inventor 2021 WIN 10 (64bit), Dell Precision T1650, 16GB (Pro.File 8.7)

erstellt am: 17. Sep. 2024 11:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Andreas01 10 Unities + Antwort hilfreich

Hallo Andreas,

bei mir hat die Konvertierung auf .NET 8 nicht ordentlich geklappt, so dass ich das Grundgerüst komplett neu aufgebaut habe.
Das neue Add-In hat dann natürlich gut geklappt. 

Den bestehenden Code baue ich dann Stück für Stück ein.
Ist zwar viel Arbeit, aber man kann dabei gleich ausmisten.

Ich konnte das alte Add-In im Inventor 2025 laden, aber es hat nicht richtig funktioniert.
Bevor ich dann ewig den genauen Fehler suche und dann etliche "Folgefehler" erhalte, habe ich mich gleich für den oben beschriebenen Weg entschieden.

VG
MB-Ing.

------------------
Wissen ist Macht. Nichts wissen macht auch nichts 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2586
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 17. Sep. 2024 14:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Andreas01 10 Unities + Antwort hilfreich

Moin

Wenn das Addin mit dem Zielframework .Net 8 kompiliert, dürfte die Konvertierung fehlerfrei gelaufen sein. Wurde denn überhaupt das Zielframework umgestellt? Inventor 2025 lädt offiziell nichts älteres mehr. Alternativ könnte man ja das VisualStudio als Debugger lassen und in der Activate-Sub mal schauen was ihm nicht gefällt.

------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Andreas01
Mitglied
Dipl.-Ing.(FH) Konstrukteur


Sehen Sie sich das Profil von Andreas01 an!   Senden Sie eine Private Message an Andreas01  Schreiben Sie einen Gästebucheintrag für Andreas01

Beiträge: 246
Registriert: 05.08.2004

Inventor 2020
i7
32 GB RAM
Quatro FX 4000
WIN10-64bit

erstellt am: 18. Sep. 2024 10:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich habe es jetzt versucht das Addin in .Net8 zu konvertieren und bekomme fehler bei der Button Implementierung:

Code:
' Create the control definitions for button with icon
Dim Stückliste_Button_IconIPictureDisp As Object = System.Type.Missing
Stückliste_Button_IconIPictureDisp = Microsoft.VisualBasic.Compatibility.VB6.Support.IconToIPicture(System.Drawing.Icon.FromHandle(My.Resources.Stueckliste.GetHicon()))
m_StücklisteButton = controlDefs.AddButtonDefinition("", "StücklisteExportieren", CommandTypesEnum.kFilePropertyEditCmdType, Nothing, Nothing, Nothing, Stückliste_Button_IconIPictureDisp, Stückliste_Button_IconIPictureDisp)

Fehler:
BC30456 "Compatibility" ist kein Member von "Microsoft.VisualBasic".

Mit der Autodesk-Vorlage für Inventor 2025 ist die Button Implementierung erstmal auskommentiert. Ich habe dann versucht ein Button zu erstellen.
1. habe ich eine neue Resource-Datei hinzugefügt
2. habe ich in den Ressource-Explorer neue Resource "YourBigImage" hinzugefügt

jedoch wird immer noch ein Fehler in der Zeiler:

Code:
Dim largeIcon As stdole.IPictureDisp = PictureDispConverter.ToIPictureDisp(My.Resources.YourBigImage)

Fehler:
BC30456 "YourBigImage" ist kein Member von InventorAddIn1.My.Resources".

Dann habe ich den Code wie folgt geändert:

Code:
Dim largeIcon As stdole.IPictureDisp = PictureDispConverter.ToIPictureDisp(My.Resources.Resource.YourBigImage)

dann kann ich auch "YourBisImage" auswählen, jedoch dann bekomme ich wieder einen neue Fehler

BC30518 Fehler bei der Überladungsauflösung, da keine zugreifbare "ToIPictureDisp" mit diesen Argumenten aufgerufen werden kann:
    "Public Shared Function ToIPictureDisp(icon As Icon) As IPictureDisp": Der Wert vom Typ "Byte()" kann nicht in "Icon" konvertiert werden.
    "Public Shared Function ToIPictureDisp(bmp As Bitmap) As IPictureDisp": Der Wert vom Typ "Byte()" kann nicht in "Bitmap" konvertiert werden.

jetzt weiß ich leider nicht weiter.

Ich selber bin nur ein "Hobby-Programmierer", kann mir jemad da weiter helfen?

Gruß
Andreas


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2586
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 18. Sep. 2024 12:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Andreas01 10 Unities + Antwort hilfreich

Moin

Falls noch nicht vorhanden, einen COM-Verweis auf stdole setzen.
Erstelle bitte in deinem Projekt eine neu VB Klassendatei, nenne sie z.B. "PictureDispConverter.vb", lösch den eventuell vorhandenen Inhalt raus und füge folgendes ein:

Code:
Imports System.Runtime.InteropServices

' Class used to convert bitmaps and icons from their .Net native types into
' an IPictureDisp object which is what the Inventor API requires. A typical
' usage is shown below where MyIcon is a bitmap or icon that's available
' as a resource of the project.
'
' Example:
' Dim smallIcon As stdole.IPictureDisp = PictureDispConverter.ToIPictureDisp(My.Resources.MyIcon)
Public NotInheritable Class PictureDispConverter
    <DllImport("OleAut32.dll", EntryPoint:="OleCreatePictureIndirect", ExactSpelling:=True, PreserveSig:=False)>
    Private Shared Function OleCreatePictureIndirect(ByVal picdesc As Object, ByRef iid As Guid, ByVal fOwn As Boolean) As stdole.IPictureDisp
    End Function

    Shared iPictureDispGuid As Guid = GetType(stdole.IPictureDisp).GUID

    Private NotInheritable Class PICTDESC
        Private Sub New()
        End Sub

        'Picture Types
        Public Const PICTYPE_BITMAP As Short = 1
        Public Const PICTYPE_ICON As Short = 3

        <StructLayout(LayoutKind.Sequential)>
        Public Class Icon
            Friend cbSizeOfStruct As Integer = Marshal.SizeOf(GetType(PICTDESC.Icon))
            Friend picType As Integer = PICTDESC.PICTYPE_ICON
            Friend hicon As IntPtr = IntPtr.Zero
            Friend unused1 As Integer
            Friend unused2 As Integer

            Friend Sub New(ByVal icon As System.Drawing.Icon)
                Me.hicon = icon.ToBitmap().GetHicon()
            End Sub
        End Class

        <StructLayout(LayoutKind.Sequential)>
        Public Class Bitmap
            Friend cbSizeOfStruct As Integer = Marshal.SizeOf(GetType(PICTDESC.Bitmap))
            Friend picType As Integer = PICTDESC.PICTYPE_BITMAP
            Friend hbitmap As IntPtr = IntPtr.Zero
            Friend hpal As IntPtr = IntPtr.Zero
            Friend unused As Integer

            Friend Sub New(ByVal bitmap As System.Drawing.Bitmap)
                Me.hbitmap = bitmap.GetHbitmap()
            End Sub
        End Class
    End Class

    Public Shared Function ToIPictureDisp(ByVal icon As System.Drawing.Icon) As stdole.IPictureDisp
        Dim pictIcon As New PICTDESC.Icon(icon)
        Return OleCreatePictureIndirect(pictIcon, iPictureDispGuid, True)
    End Function

    Public Shared Function ToIPictureDisp(ByVal bmp As System.Drawing.Bitmap) As stdole.IPictureDisp
        Dim pictBmp As New PICTDESC.Bitmap(bmp)
        Return OleCreatePictureIndirect(pictBmp, iPictureDispGuid, True)
    End Function
End Class



Danach kopierst du mal zur Sicherheit deine StandardAddin.vb, weil Backup haben und nicht brauchen ist besser.
Die Buttondefinition machst du dann so:

Code:

Dim controlDefs As Inventor.ControlDefinitions = g_inventorApplication.CommandManager.ControlDefinitions

Dim largeIcon As stdole.IPictureDisp = PictureDispConverter.ToIPictureDisp(My.Resources.Resource.YourBigImage)
Dim smallIcon As stdole.IPictureDisp = PictureDispConverter.ToIPictureDisp(My.Resources.Resource.YourSmallImage)
m_StücklisteButton = controlDefs.AddButtonDefinition("", "StücklisteExportieren", CommandTypesEnum.kFilePropertyEditCmdType, AddInClientID, Nothing, Nothing, Nothing, smallIcon, largeIcon)


------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Andreas01
Mitglied
Dipl.-Ing.(FH) Konstrukteur


Sehen Sie sich das Profil von Andreas01 an!   Senden Sie eine Private Message an Andreas01  Schreiben Sie einen Gästebucheintrag für Andreas01

Beiträge: 246
Registriert: 05.08.2004

Inventor 2020
i7
32 GB RAM
Quatro FX 4000
WIN10-64bit

erstellt am: 18. Sep. 2024 15:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


InventorAddIn2.zip.txt

 
Hallo,

ich glaube dass Problem ist das ich die zwei .BMP Dateien nicht richtig in die Resource-Datei angebunden bekomme. Wenn ich "YourBigImage.bmp" bei Import als "System.Byte[](WPF)" hinzufüge dann habe ich zugriff auf diese 

Code:
Dim largeIcon As stdole.IPictureDisp = PictureDispConverter.ToIPictureDisp(My.Resources.Resource.YourBigImage)

jedoch dann meckert die Funktion ToIPictureDisp

BC30518 Fehler bei der Überladungsauflösung, da keine zugreifbare "ToIPictureDisp" mit diesen Argumenten aufgerufen werden kann:
    "Public Shared Function ToIPictureDisp(icon As Icon) As IPictureDisp": Der Wert vom Typ "Byte()" kann nicht in "Icon" konvertiert werden.
    "Public Shared Function ToIPictureDisp(bmp As Bitmap) As IPictureDisp": Der Wert vom Typ "Byte()" kann nicht in "Bitmap" konvertiert werden. InventorAddIn2 C:\Users\wilczek.QSQ-ERKELENZ\source\repos\InventorAddIn2\StandardAddInServer.vb 31

füge ich jedoch "YourBigImage.bmp" als System.Drawing.Icon(Windows Forms) hinzu, dann hat die "Resource.resx" Datei direckt ein Fehler.
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler (aktiv) Ein Aufrufziel hat einen Ausnahmefehler verursacht. InventorAddIn2 C:\Users\wilczek.QSQ-ERKELENZ\source\repos\InventorAddIn2\Resource.resx 1

Ich habe das Projekt einfach gezipt und hochgeladen. Vielleicht siehst Du wo der Fehler liegt. Ich komme da einfach nicht weiter.

Gruß Andreas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2586
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 18. Sep. 2024 22:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Andreas01 10 Unities + Antwort hilfreich


InventorAddIn2.zip.txt

 
Moin

Die Resourcendatei war vermackt. Ich hab die gelöscht und neu erstellt. Dabei fiel mir auf, dass beim neu erzeugen "vergessen" wird den Namespace My.Resources zu erzeugen. Im Projektbrowser mit rechter Maustaste auf die .resx und "Öffnen mit" auswählen. In der Auswahl der alten Resourceneditor auswählen. Einmal öffnen der Datei und direkt wieder schließen sollte genügen. Danach kann man wieder mit dem neuen Editor weiterarbeiten. In der Projektdatei .vbproj muss derzeit die Zeile

Code:
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>

mit einem Texteditor herausgelöscht werden, da sonst die ganze Zeit Warnungen Nr. CA1416 angezeigt werden.

------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Andreas01
Mitglied
Dipl.-Ing.(FH) Konstrukteur


Sehen Sie sich das Profil von Andreas01 an!   Senden Sie eine Private Message an Andreas01  Schreiben Sie einen Gästebucheintrag für Andreas01

Beiträge: 246
Registriert: 05.08.2004

Inventor 2020
i7
32 GB RAM
Quatro FX 4000
WIN10-64bit

erstellt am: 19. Sep. 2024 13:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Ralf,

also ich habe es vorerst so hinbekommen. Deine Lösung werde ich aber noch versuchen denn dann muss ich nicht so viel in meinem Code ändern.
Die Icons werden geladen sehen wohl etwas anders aus, also irgendwie qualitativ schlechter aber vorerst muss es so reichen.


Code:

Dim IconIPictureDisp As Object = System.Type.Missing
IconIPictureDisp = Buttons_Konvertieren("AW_Tools.ICON.bmp")
ButtonDEF = controlDefs.AddButtonDefinition("", "Daten", Inventor.CommandTypesEnum.kQueryOnlyCmdType, AddInCLSIDString, , , IconIPictureDisp, IconIPictureDisp)

-

Code:
Private Function Buttons_Konvertieren(ByVal Iconname As String) As Object
    Dim ButtonIconIPictureDisp As Object = System.Type.Missing
    Dim ButtonBodyIconStream As System.IO.Stream = Me.GetType().Assembly.GetManifestResourceStream(Iconname)
    Dim ButtonBodyIconImage As System.Drawing.Image = New System.Drawing.Bitmap(ButtonBodyIconStream)
    Return ImageToPictureConverter.Convert(ButtonBodyIconImage)
End Function


Code:
#Region "ImageToPictureConverter"
    Public NotInheritable Class ImageToPictureConverter
    Inherits System.Windows.Forms.AxHost

    Private Sub New()
        MyBase.New(Nothing)
    End Sub

    Public Shared Function Convert(ByVal image As System.Drawing.Image) As stdole.IPictureDisp
        Return CType(System.Windows.Forms.AxHost.GetIPictureDispFromPicture(image), stdole.IPictureDisp)
    End Function

End Class
#End Region


Danke dir.

Gruß
Andreas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz