Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  DockableWindow

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  DockableWindow (2358 mal gelesen)
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: 2262
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 01. Sep. 2010 22:26    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 ein AddIn (dll) dem ich gern ein dockablewindow hinzufügen möchte. Ich habe meinem Projekt einen Dialog hinzugefügt der später mal iProps anzeigen soll. Das dockablewindow wird erstellt und angezeigt.
Aber wie füge ich meinen Dialog in das dockablewindow ein. In der Hilfe steht mittels hwnd, nur wo kommt das her? Kann man einen Dialog überhaupt so einfügen oder muß dafür eine eigene dll erstellt werden?

------------------
MfG
RK

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012

erstellt am: 01. Sep. 2010 23:09    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 rkauskh 10 Unities + Antwort hilfreich

Hallo RK,

du solltest aus deinem Dialog ein Control machen. Die HWND von dem Control kannst du dann an dein DockableWindow übergeben. Kann morgen mal nach Beispielcode schauen...

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools

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: 2262
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 01. Sep. 2010 23:29    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

Das wäre nett, danke.

------------------
MfG
RK

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012

erstellt am: 02. Sep. 2010 09:45    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 rkauskh 10 Unities + Antwort hilfreich

Hi, ich war gestern irgendwie auf BrowserPanes, da machen wir immer custom controls und fügen diese ein. Bei DockableWindow scheint das auch mit ganzen Dialogen zu funktionieren. Dazu erstelle einfach eine Instanz von deinem Dialog, und übergebe Handle an die AddChild Methode (myForm.Handle / this.Handle). BTW., du hast PM...

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools

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: 2262
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 02. Sep. 2010 20:16    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

Hab's hinbekommen. Keine Ahnung warum es jetzt geht, aber mit einem UserForm läuft es.

Falls es jemand mal nachbauen will, ich habe es so gemacht:

in die StandardAddInServer.vb:

Code:
Public Sub UserControl()

            Dim oUserInterfaceMgr As UserInterfaceManager
            oUserInterfaceMgr = myInventor.UserInterfaceManager

            ' Create a new dockable window
            Dim oWindow As Inventor.DockableWindow
            oWindow = oUserInterfaceMgr.DockableWindows.Add("Test-ID", "ToolboxInternalName", "Test")

            'Create the new UserControl
            Dim UControl1 As New UControl()

            ' Add the UserControl as a child to the dockable window
            oWindow.AddChild(UControl1.Handle)

            ' Pass the control the Inventor Application object.  It does this
            ' using the InventorApplication property that was implented on the control.
            UControl1.InventorApp = myInventor

            ' Don't allow docking to top and bottom
            oWindow.DisabledDockingStates = Inventor.DockingStateEnum.kDockTop + Inventor.DockingStateEnum.kDockBottom

            'Dock left
            oWindow.DockingState = Inventor.DockingStateEnum.kDockLeft

            'Set Window Size
            oWindow.SetMinimumSize(250, 267)

            ' Make the window visible
            oWindow.Visible = True

        End Sub


Dann ein UserForm "UserControl" mit einem Label "lblMass1" erstellt. In die UserControl.vb:

Code:
Public Class UControl

    Private m_ClickCount As Integer = 0
    Private m_inventorApp As Inventor.Application
    Private WithEvents appEvents As Inventor.ApplicationEvents
    Private m_currentDoc As Inventor.PartDocument


    Public Property InventorApp() As Inventor.Application
        Get
            Return m_inventorApp
        End Get
        Set(ByVal value As Inventor.Application)
            m_inventorApp = value
            appEvents = m_inventorApp.ApplicationEvents

            If m_inventorApp.Documents.Count > 0 Then
                If m_inventorApp.ActiveEditDocument.DocumentType = Inventor.DocumentTypeEnum.kPartDocumentObject Then
                    m_currentDoc = m_inventorApp.ActiveEditDocument
                    UpdateDocumentInfo()
                Else
                    m_currentDoc = Nothing
                    UpdateDocumentInfo()
                End If
            Else
                m_currentDoc = Nothing
                UpdateDocumentInfo()
            End If
        End Set
    End Property

    Private Sub UpdateDocumentInfo()
        If m_currentDoc Is Nothing Then
            Me.lblMass1.Text = "Mass1: "
        Else
            Me.lblMass1.Text = "Mass1: " & ReadUserPropertyValue(m_currentDoc, "Mass1")
        End If
    End Sub

    Private Sub appEvents_OnDocumentChange(ByVal DocumentObject As Inventor._Document, ByVal BeforeOrAfter As Inventor.EventTimingEnum, ByVal ReasonsForChange As Inventor.CommandTypesEnum, ByVal Context As Inventor.NameValueMap, ByRef HandlingCode As Inventor.HandlingCodeEnum) Handles appEvents.OnDocumentChange
        If Not m_currentDoc Is Nothing Then
            UpdateDocumentInfo()
        End If
    End Sub

    Private Sub appEvents_OnNewEditObject(ByVal EditObject As Object, ByVal BeforeOrAfter As Inventor.EventTimingEnum, ByVal Context As Inventor.NameValueMap, ByRef HandlingCode As Inventor.HandlingCodeEnum) Handles appEvents.OnNewEditObject
        If m_inventorApp.ActiveEditDocument.DocumentType = Inventor.DocumentTypeEnum.kPartDocumentObject Then
            If Not m_inventorApp.ActiveEditDocument Is m_currentDoc Then
                m_currentDoc = m_inventorApp.ActiveEditDocument
                UpdateDocumentInfo()
            End If
        Else
            m_currentDoc = Nothing
            UpdateDocumentInfo()
        End If
    End Sub

    ' ---
    ' Benutzer-Property lesen
    Public Function ReadUserPropertyValue(ByVal oDoc As Inventor.Document, ByVal sPropertyName As String) As String
        Try
            Dim oProperty As Inventor.Property
            For Each oProperty In oDoc.PropertySets.Item("User Defined Properties")
                If oProperty.Name.ToUpper = sPropertyName.ToUpper Then
                    Return oProperty.Value
                End If
            Next
            Return ""
        Catch ex As Exception
            Return ""
        End Try
    End Function

End Class


Bitte fügen Sie ihre Kritik hier an... 

------------------
MfG
RK

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: 755
Registriert: 06.09.2012

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

erstellt am: 01. Jun. 2023 11:02    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 rkauskh 10 Unities + Antwort hilfreich


DocAbWin_Falsch.png


DocAbWin_WunschPos.png

 
Hallo zusammen,

ich möchte ein Dockable Window erzeugen, dass sich, wie die Favoriten, direkt neben dem Modell-Browser befindet.

Mit dem Code von Ralf kann ich soweit ein Dockable Window anzeigen, aber es befindet sich an einer nicht gewünschten Stelle.

Wie muss ich DockingState des Dockable Windows setzen?

Code:
My_DockableWindow.DockingState = DockingStateEnum.kDockLastKnown
Funktioniert leider nicht  
(Quelle: https://forums.autodesk.com/t5/inventor-ilogic-and-vb-net-forum/how-to-make-dockable-window-align-below-main-browser-exactly/td-p/10479561)


Danke und Grüße
MB-Ing.

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

[Diese Nachricht wurde von mb-ing am 01. Jun. 2023 editiert.]

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: 2262
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 01. Jun. 2023 12:00    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 glaube du willst kein DockableWindow, sondern ein zusätzliches BrowserPane.

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

RKW Solutions GmbH
www.RKW-Solutions.com

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: 755
Registriert: 06.09.2012

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

erstellt am: 01. Jun. 2023 12:56    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 rkauskh 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von rkauskh:
Hallo

Ich glaube du willst kein DockableWindow, sondern ein zusätzliches BrowserPane.


Ralf, danke für Deine Antwort.

Ich will in dem Dockable Window anschließend diverse Sachen darstellen.
Evtl. I-Properties, sonstige Metadaten.

Geht das mit einem BrowserPane?

------------------
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: 2262
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 01. Jun. 2023 17:44    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

In einem BrowserPane kann man neben dem bekannten TreeBrowser auch ActiveX-Controls (registriert oder unregistriert) einbinden. Du musst ein Custom ActiceX Control erstellen und das kannst du dann einbinden. Ich habe null Ahnung wie das geht. Vielleicht liest Igor noch mit.

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

RKW Solutions GmbH
www.RKW-Solutions.com

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: 755
Registriert: 06.09.2012

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

erstellt am: 02. Jun. 2023 08:15    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 rkauskh 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von rkauskh:
Hallo

In einem BrowserPane kann man neben dem bekannten TreeBrowser auch ActiveX-Controls (registriert oder unregistriert) einbinden. Du musst ein Custom ActiceX Control erstellen und das kannst du dann einbinden. Ich habe null Ahnung wie das geht. Vielleicht liest Igor noch mit.


Der Kollege wollte anscheinend dasselbe machen und wurde auf ein Dockable Window verwiesen...
(https://forums.autodesk.com/t5/inventor-ilogic-and-vb-net-forum/addtreebrowserpane-problem/td-p/9796862)

Du meinst eher die Richtung, oder?
https://adndevblog.typepad.com/manufacturing/2013/07/add-a-new-custom-pane-and-add-node-from-a-default-browser-pane.html

Mein Dockable Window schaut bereits gut aus und macht, was soll  
Nur die Position klappt noch nicht  

Ich probiere es mal weiter...

Danke und Grüße
MB-Ing.

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

[Diese Nachricht wurde von mb-ing am 02. Jun. 2023 editiert.]

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: 755
Registriert: 06.09.2012

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

erstellt am: 02. Jun. 2023 09:40    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 rkauskh 10 Unities + Antwort hilfreich

Die Mischung macht es 

Danke Ralf für Deine Hilfe!

Code:
Dim app As Inventor.Application = GetObject(, "Inventor.Application")
Dim prt As PartDocument = app.ActiveDocument
Dim myBrowserPane As BrowserPane = prt.BrowserPanes.Add("iBims", "WMPlayer.OCX")
Dim uiManager As UserInterfaceManager = app.UserInterfaceManager
Dim dockableWindow As DockableWindow = uiManager.DockableWindows(myBrowserPane.Name)
dockableWindow.Visible = True

Danke und Grüße
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: 2262
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 02. Jun. 2023 12:12    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

Ein OCX ist ja ein ActiveX Control. Das DockableWindow ist nur der Rahmen in den eingebettet wird und mit dem Inventor umgehen kann.
Mir ist unklar, erzeugt das Erstellen eines BrowserPanes automatisch auch ein DockableWindow gleichen Namens? 

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

RKW Solutions GmbH
www.RKW-Solutions.com

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



Praktikum - Berechnung und Konstruktion

Wirtschaftlich, präzise, sicher und energieeffizient: Antriebs- und Steuerungstechnik von Bosch Rexroth bewegt Maschinen und Anlagen jeder Größenordnung. Unter der Marke Rexroth entstehen innovative Komponenten, maßgeschneiderte Systemlösungen und Dienstleistungen für mobile Anwendungen, Anlagenbau und Engineering sowie Fabrikautomation.

Die Bosch Rexroth AG freut sich auf Ihre Bewerbung!


Anzeige ansehenKonstruktion, Visualisierung
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: 755
Registriert: 06.09.2012

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

erstellt am: 05. Jun. 2023 06:43    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 rkauskh 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von rkauskh:
Hallo

Ein OCX ist ja ein ActiveX Control. Das DockableWindow ist nur der Rahmen in den eingebettet wird und mit dem Inventor umgehen kann.
Mir ist unklar, erzeugt das Erstellen eines BrowserPanes automatisch auch ein DockableWindow gleichen Namens?  


Dem Dockable Window kann ich auf jeden Fall eine Windows Form hinzufügen, was mein Ziel ist.

Also.

Code:
Dim myForm as new MyForm()
myDockableWindow.Add(myForm.Handle)

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

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)2023 CAD.de | Impressum | Datenschutz