Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Solid Edge
  Einfügen eines Dokuments in eine Assembly

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 SolidEdge
  
Solid Edge Basis Konstruktion Schulung - 5-tägige Schulung für Einsteiger, ein Seminar am 15.09.2025
Autor Thema:  Einfügen eines Dokuments in eine Assembly (1383 mal gelesen)
DieGraetsche
Mitglied
Informatiker


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

Beiträge: 61
Registriert: 28.09.2007

erstellt am: 13. Nov. 2007 12:04    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 zusammen,

Ich bin gerade dabei ein Dokument in eine Assembly einzufügen per API.
Soweit so gut, das klappt auch.

Public Function InsertDocument(sFile As String) As Integer
   
    Dim objDoc As AssemblyDocument
    Dim objOccurr As Occurrence
   
    Set objDoc = oSeApp.ActiveDocument
    Set objOccurr = objDoc.Occurrences.AddByFilename(sFile)

End Function

Leider platziert die API die Komponente immer an die selbe Stelle.
Ich jedoch hätte gerne, dass die Komponente entweder an der Maus hängt(muss dann noch platziert werden) oder direkt an die Position der Maus platziert wird.

Habe ihr vielleicht eine Idee wie man sowas machen kann mit der SolidEdge-API?

Gruß,
Die Graetsche

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

wksyspro
Mitglied
Dipl.-Ing.


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

Beiträge: 204
Registriert: 19.11.2004

erstellt am: 13. Nov. 2007 12:42    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 DieGraetsche 10 Unities + Antwort hilfreich

Hi,

die Vorgehensweise ist prinzipiell folgende:

Du benötigst ein Solid Edge Command und Mouse Objekt. Deren Deklaration sieht z.B. wie folgt aus:

Private WithEvents mobjSeCommand As SolidEdgeFramework.Command
Private WithEvents mobjSeMouse As SolidEdgeFramework.Mouse

Im Code, wo Du das Assembly hinzufügst beschaffst Du Dir das Command-Objekt und über das Command-Objekt das Mouse-Objekt, setzt gewünschte Eigenschaften des Mouse-Objekts, und startest schließlich das Command-Objekt:

    Set mobjSeCommand = gobjSeApp.CreateCommand(seNoDeactivate)
    If Not mobjSeCommand Is Nothing Then
        With mobjSeCommand
            .OnEditOwnerChange = 1
            .OnEnvironmentChange = 1
            Set mobjSeMouse = .Mouse
            With mobjSeMouse
                .EnabledMove = True
            End With
            .Start
        End With
    Else
        Exit Sub
    End If

Nun gilt es die entsprechenden Ereignis-Handler für das Mouse-Click, Mouse-Move Ereignis usw. mit Leben zu füllen. In Deinem Fall, wo Du ein Hängen an der Maus simulieren möchtest, musst Du im Mouse-Move Ereignis Dein eingefügtes Assemblydokument auf die aktuelle Mausposition verschieben (erfordert u.U. eine Umrechnen von Fenster- in Modellkoordinaten). Im Mouse-Click Ereignishandler prüfst Du auf linken Mausklick und beendest das Command-Objekt:

            Set mobjSeMouse = Nothing
            mobjSeCommand.Done = True
            Set mobjSeCommand = Nothing

Auch das Command-Objekt löst Ereignisse aus, auf die Du in entsprechenden Ereignis-Handlern reagieren kannst (u.U. auch musst, je nach Programmanforderung).

Diese dürfte Dir erst einmal weiterhelfen.

------------------
Viele Grüße,

Wolfgang Kunert
www.wksyspro.de

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

DieGraetsche
Mitglied
Informatiker


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

Beiträge: 61
Registriert: 28.09.2007

erstellt am: 13. Nov. 2007 14:31    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

Hi wksyspro,

Danke für deine schnelle Antwort.

Ich habe mal versucht den Code zu implementieren.
Hat es den Anschein, dass alles gut gelaufen ist. Jedoch erhalte ich kein Maus-Event.

Kannst du vielleicht genauer beschreiben wie man das mit dem Maus-Event macht?

Gruß,
DieGraetsche


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

wksyspro
Mitglied
Dipl.-Ing.


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

Beiträge: 204
Registriert: 19.11.2004

erstellt am: 13. Nov. 2007 14:41    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 DieGraetsche 10 Unities + Antwort hilfreich

@DieGraetsche,

du lässt Dir über die Entwicklungsumgebung den Rumpf für den gewünschten Ereignishandler in VB6 wie folgt generieren:

Im Codefenster hast Du doch oben 2 Comboboxen. In der linken wählst Du Dein deklariertes Mouse-Objekt aus, in der rechten Combo-Box wählst Du aus den gebotenen Ereignissen aus (z.B. MouseClick, MouseMove usw.). Entsprechendes gilt für das Command-Objekt. Die Entwicklungsumgebung springt dann entweder zu der existierenden Codestelle, oder erzeugt Dir das Handlergrundgerüst inklusive aller Parameter und springt in den Handler.

So sieht zum Beispiel der generierte (leere) Handler für das Klick-Ereignis aus:

Private Sub mobjSeMouse_MouseClick(ByVal sButton As Integer, ByVal sShift As Integer, ByVal dX As Double, ByVal dY As Double, ByVal dZ As Double, ByVal pWindowDispatch As Object, ByVal lKeyPointType As Long, ByVal pGraphicDispatch As Object)

End Sub

------------------
Viele Grüße,

Wolfgang Kunert
www.wksyspro.de

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