Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Solidworks Baugruppe nachladen

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 SOLIDWORKS
  
Bechtle Competence Days | Online
Autor Thema:  Solidworks Baugruppe nachladen (2390 mal gelesen)
darkday1231
Mitglied


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

Beiträge: 3
Registriert: 08.12.2011

erstellt am: 10. Dez. 2011 19:47    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,
dies ist mein erster Beitrag in diese Forum.
Ich arbeite momentan daran verschiedene Objekte in eine Baugruppe nachzuladen.
Ich versuche dies über vb.net mit api zu programmieren.
Leider schaffe ich es nur das je ein Objekt in ein unter-fenster geladen
wird.
Kann mir einer da helfen? :

Hier ist mein Code für des Öffnen-Buttons:

Code:
  Private Sub cmdoeffnen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdoeffnen.Click

        With Me.OpenFileDialog1
            .FileName = ""

            .Title = "SolidWorks DUkument wählen"
        End With
        If Me.OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            Debug.Print(Me.OpenFileDialog1.FileName)

            Dim oMySldWorks As MySldWorksCls
            oMySldWorks = New MySldWorksCls

            oMySldWorks.SolidWorksInstanz()

            oMySldWorks.dokumentoeffnen(Me.OpenFileDialog1.FileName)

         
        End If

    End Sub


meine klasse:

Code:
Public Class MySldWorksCls
    Dim oSwAppCls As SldWorks.SldWorks

    Friend ReadOnly Property mysldworks() _
        As SldWorks.SldWorks
        Get
            Return oSwAppCls
        End Get
    End Property

    ''' <summary>
    ''' Initialisiert as Solidworks Objekt durhc die Methode GetObject
    ''' und fragt in einer MsgBox nach wenn das Objek nicht greifbar iast.
    ''' </summary>
    '''<param name="bUserAbbruch">
    ''' Optionaler Rückgabewert, welcher mitteilt ob der User
    ''' die Aktion abgebrochen hat oder ein Fehler aufgetreten ist.
    ''' </param>
    ''' <returns>Instanz der aktuellen SolidWorks Sitzung</returns>
    ''' <remarks></remarks>
    Public Function SolidWorksInstanz(Optional ByRef bUserAbbruch As Boolean = False) As SldWorks.SldWorks
        Try
            Dim lDialogStatus As Microsoft.VisualBasic.MsgBoxResult
            Try
                oSwAppCls = CType(GetObject(, "SLDWORKS.Application"), SldWorks.SldWorks)

            Catch ex As Exception

            End Try

            If oSwAppCls Is Nothing Then
                lDialogStatus = MsgBox("Fehler beim Aufbau einer Schnittstelle zu Solidworks." & vbNewLine & "Bitte öffnen Sie SolidWorks und klicken SIe auf 'OK'." & vbNewLine & "Sollte Solidworks bereits geöffnet sein, " & vbNewLine & "Starten sie es neu." & vbNewLine & "Wenn Sie den Startvorgang abbrechen möchten klicken Sie auf 'Abbrechen'.", MsgBoxStyle.OkCancel, "Fehler")
                Select Case lDialogStatus
                    Case MsgBoxResult.Ok
                        Return SolidWorksInstanz(bUserAbbruch)
                    Case MsgBoxResult.Cancel
                        bUserAbbruch = True
                        Return Nothing
                End Select
            End If
            Return oSwAppCls
        Catch ex As Exception
            Debug.Assert(False)
            MsgBox("Fehler: Wo:  " & ex.StackTrace & "  Was:  " & ex.Message)
            Return Nothing
        End Try
    End Function

    Friend Function dokumentoeffnen(ByVal sDateipfad As String, Optional ByVal eOpenDocoptions As SwConst.swOpenDocOptions_e = SwConst.swOpenDocOptions_e.swOpenDocOptions_Silent, Optional ByRef eOpenwarning As SwConst.swFileLoadWarning_e = 0) As SldWorks.ModelDoc2
        Try
            Dim oSwModel As SldWorks.ModelDoc2
            Dim eError As SwConst.swDocumentTypes_e
            Dim sExtension As String
            Dim edoctyp As SwConst.swDocumentTypes_e

            If IO.File.Exists(sDateipfad) = False Then
                Throw New Exception("Kein SolidWorks Application " & " Objekt vorhanden")
            End If

            sExtension = IO.Path.GetExtension(sDateipfad)

            Select Case sExtension
                Case ".SLDPRT"
                    edoctyp = SwConst.swDocumentTypes_e.swDocPART
                Case ".SLDASM"
                    edoctyp = SwConst.swDocumentTypes_e.swDocASSEMBLY
                Case ".SLDDRW"
                    edoctyp = SwConst.swDocumentTypes_e.swDocDRAWING
                Case Else
                    Throw New Exception("Ubültiges Format")

            End Select

            oSwModel = oSwAppCls.OpenDoc6(sDateipfad, edoctyp, eOpenDocoptions, "", CType(eError, SwConst.swFileLoadError_e), CType(eOpenwarning, SwConst.swFileLoadWarning_e))

            If oSwModel Is Nothing Then
                Throw New Exception("Das Dokument: " & sDateipfad & " konntenicht JJJJ werden. " & eError.ToString)

            End If


            Return oSwModel
        Catch ex As Exception
            Debug.Assert(False)
            MsgBox("Fehler: Wo: " & ex.StackTrace & " Was: " & ex.Message)
            Throw New Exception("Fehler beim Öffnen der Dokuments: " & sDateipfad & ".")
            Return Nothing
        End Try
     

    End Function

    Friend Function SolidWorksInstanzGet() As SldWorks.SldWorks
        Try

            oSwAppCls = CType(Microsoft.VisualBasic.GetObject([Class]:="Sldworks.application"), SldWorks.SldWorks)
            Return oSwAppCls


        Catch ex As Exception
            Debug.Assert(False)
            MsgBox("Fehler: Wo:  " & ex.StackTrace & "  Was:  " & ex.Message)
            Return Nothing

        End Try
    End Function

    Friend Sub versionanzeigen()
        Try

            oSwAppCls.Visible = True

            MsgBox("SolidWorks Version:  " & oSwAppCls.RevisionNumber)


        Catch ex As Exception
            Debug.Assert(False)
            MsgBox("Fehler: Wo:  " & ex.StackTrace & "  Was:  " & ex.Message)


        End Try

    End Sub

    Friend Function SolidWorksInstanzCreate() _
        As SldWorks.SldWorks
        Try
            oSwAppCls = Microsoft.VisualBasic.CreateObject(ProgId:="SldWorks.Application")


            Return oSwAppCls
        Catch ex As Exception
            Debug.Assert(False)
            MsgBox("Fehler: Wo:  " & ex.StackTrace & "  Was:  " & ex.Message)

            Return Nothing
        End Try
    End Function
End Class


mfg

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 12. Dez. 2011 09: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 darkday1231 10 Unities + Antwort hilfreich

Hallo darkday1231,

und ein herzliches Willkommen im SolidWorks-Brett auf CAD.de 

Was meinst du denn mit "in Unterfenster laden"? Wenn ich deinen Code richtig verstehe hast du irgendwo einen Button, da wählst du eine SolidWorksdatei aus und deine Klasse lädt dann das Dokument.

Ich vermute, du meinst mit dem Unterfenster, dass du das als eigenes Fenster in SolidWorks haben möchtest. Mit dem OpenDoc6, das du benutzt, läd SolidWorks das Dokument in den Arbeitsspeicher, stellt aber aber nicht zwingend dar. Wenn es schon im Arbeitsspeicher gewesen ist, musst du es ggf. mit einem SldWorks::ActivateDoc2 auch darstellen, also ein eigenes Fenster dafür aufmachen. Das passiert üblicherweise, wenn du eine Zeichnung oder Baugruppe öffnest und dann anschließend mit dem OpenDoc6 eine Komponente davon öffnest - die ist ja schon im Arbeitsspeicher, du bekommst dafür dein Object, aber eben standardmäßig kein Fenster.

Vielleicht war es das schon 

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

darkday1231
Mitglied


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

Beiträge: 3
Registriert: 08.12.2011

erstellt am: 12. Dez. 2011 14:47    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

nein, so mein ich das nicht 
ich will das ich verschiedene Dokumente in Solidworks in eine Baugruppe laden lasse und auf den ursprung(0,0,0) setzen lasse.
Hast du eine Idee wie ich das machen kann?
mfg
Darkday

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 12. Dez. 2011 14:57    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 darkday1231 10 Unities + Antwort hilfreich

Ah, du willst eine Komponente zu einer Baugruppe hinzufügen, dann versuch mal  AssemblyDoc::AddComponent5

Da gibt es in der API Hilfe auch ein Beispiel namens "Add Component and Mate Example" dazu.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

darkday1231
Mitglied


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

Beiträge: 3
Registriert: 08.12.2011

erstellt am: 12. Dez. 2011 16:07    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

danke 
probier es mal auf 
mfg
darkday

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 12. Dez. 2011 18: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 Nur für darkday1231 10 Unities + Antwort hilfreich

Hatten wir gerade letzte Woche: http://ww3.cad.de/foren/ubb/Forum2/HTML/023271.shtml

------------------
Lutz  Federbusch
Mein Gästebuch
Der Mensch, Herr oder Sklave der Technik?

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