Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: Ermitteln der Selektieren Komponente in BG-Zchg. (Vollschnitt)

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
  
Nahe an industriellen Realbedingungen
Autor Thema:  API: Ermitteln der Selektieren Komponente in BG-Zchg. (Vollschnitt) (1413 / mal gelesen)
bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 11. Mrz. 2016 12: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


bspselinbgdrw.PNG

 
Hallo zusammen,

ich habe folgendes Problem, ich versuche per API, die NDF (PDF) einer in einer Zusammenbauzeichnung selektierten Komponente zu öffnen (NDF werden über ein extra Modul über den Internetexplorer abgerufen).
Wenn die Komponente im Featurebaum selektiert ist bzw. nichts selektiert ist läuft alles Problemlos, wenn ein geschnittenes Teil (die Schraffur) selektiert ist selektiert mir SWX auch die Komponente und läuft problemlos weiter.

Nun zu meinem ersten Problem, wenn eine nicht geschnittene Komponente selektiert wird (Fläche oder Kante) bekomme ich für die Selektion (swSelMgr.GetSelectedObjectType3(1, 0)) immer nur den Rückgabewert swSelDrawingviews und nicht irgendwas von wo aus ich irgendwie auf die Komponente kommen könnte. Muss ich hier die Selection irgendwie anders abfragen um auf die Komponente zu kommen?
Mein zweite Problem ist, wie komme ich von einem selektierten Bezugshinweis / Stücklistensymbol auf die Komponente an der dieser/dieses angefügt ist?


Hier mal der Teil von meinem bisherigen Code um den es geht.

Code:
Option Explicit

Dim swApp                  As SldWorks.SldWorks

Dim swModelDoc              As SldWorks.ModelDoc2
Dim swModelDocExt          As SldWorks.ModelDocExtension
Dim swComp                  As SldWorks.Component2
Dim swCompModelDoc          As SldWorks.ModelDoc2
Dim swDrwComp              As SldWorks.DrawingComponent
Dim swSelMgr                As SldWorks.SelectionMgr
Dim swNote                  As SldWorks.Note
Dim swAnno                  As SldWorks.Annotation

Dim propZeichnungsnummer    As String

Dim boolstatus              As Boolean
Dim longstatus              As Long
Dim longwarnings            As Long

If swModelDoc.GetType = swDocDRAWING Then
    If swSelMgr.GetSelectedObjectType3(1, 0) = swSelectType_e.swSelCOMPONENTS Then
            Set swDrwComp = swSelMgr.GetSelectedObjectsComponent4(1, 0)
        If swDrwComp Is Nothing Then
            Debug.Print "Keine Komponente gewählt, NDF der Zeichnung wird geöffnet"
            propZeichnungsnummer = swModelDoc.CustomInfo2("", "Zeichnungsnummer")
            IE.OpenLink (propZeichnungsnummer)
            Exit Sub
        Else
            Set swDrwComp = swSelMgr.GetSelectedObjectsComponent4(1, 0)
            Set swComp = swDrwComp.Component
            Set swCompModelDoc = swComp.GetModelDoc2
            propZeichnungsnummer = swCompModelDoc.GetCustomInfoValue("", "Zeichnungsnummer")
            IE.OpenLink (propZeichnungsnummer)
        End If
    ElseIf swSelMgr.GetSelectedObjectType3(1, 0) = swSelectType_e.swSelNOTHING Then
        Debug.Print "Keine Komponente gewählt, NDF der Zeichnung wird geöffnet"
        propZeichnungsnummer = swModelDoc.CustomInfo2("", "Zeichnungsnummer")
        IE.OpenLink (propZeichnungsnummer)
   
    ElseIf swSelMgr.GetSelectedObjectType3(1, 0) = swSelectType_e.swSelNOTES Then
        Set swNote = swSelMgr.GetSelectedObject6(1, 0)
        Set swAnno = swNote.GetAnnotation
        If Not swAnno.OwnerType = swAnnotationOwner_DrawingView Then
            Debug.Print "Keine Komponente gewählt, NDF der Zeichnung wird geöffnet"
            propZeichnungsnummer = swModelDoc.CustomInfo2("", "Zeichnungsnummer")
            IE.OpenLink (propZeichnungsnummer)
        Else
          'Baustelle, Komponente zu Bezugshinweis / Stücklistensymbol
        End If
       
        Debug.Print "Bezugshinweis selektiert"
    Else
        Debug.Print "Irgendetwas anderes selektiert: " & swSelMgr.GetSelectedObjectType3(1, 0) & " selektiert"
        Set swDrwComp = swSelMgr.GetSelectedObjectsComponent4(1, 0)
        If swDrwComp Is Nothing Then
            Debug.Print "Keine Komponente gewählt, Zeichnungsnummer der Zeichnung wird geöffnet"
            propZeichnungsnummer = swModelDoc.CustomInfo2("", "Zeichnungsnummer")
            IE.OpenLink (propZeichnungsnummer)
        Else
            Set swComp = swDrwComp.Component
            Set swCompModelDoc = swComp.GetModelDoc2
            propZeichnungsnummer = swCompModelDoc.CustomInfo2("", "Zeichnungsnummer")
            Debug.Print propZeichnungsnummer
            IE.OpenLink (propZeichnungsnummer)
        End If
    End If
Else
    Debug.Print "Kein gültiges Element geöffnet / selektiert"
End If

End Sub


Danke schonmal im voraus und Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 11. Mrz. 2016 12: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 bk.sc 10 Unities + Antwort hilfreich

Hallo Bernd,
mein Makro Solid-open-PDF macht ja was ähnliches.
Nur suche ich meine PDFs aus einem Einzelteil bzw. Baugruppe.
bei mir ist es egal, ob ich ne Kante, Fläche etc. oder im Featuremanager eine Komponente auswähle.

http://ww3.cad.de/foren/ubb/Forum2/HTML/027029.shtml

Ich hab jetzt nicht den Code verglichen und es ist auch schon eine Weile her, das ich mich damit auseinander gesetzt habe.
Aber evtl. kannst du daraus Anregungen entnehmen.

Viel Erfolg, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 11. Mrz. 2016 13: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

Hallo Andi,

Danke für deine Antwort, mein komplettes Macro funktioniert auch in Baugruppen oder aus Bauteilen / Einzelteilzeichnungen heraus, hab den Teil der Übersichtlichkeit halber hier nur weggelassen.
Werde mir dein Macro aber mal anschauen, vielleicht kann ich mir aus diesem ein Paar Codeschnippsel ausleihen um meinen Code etwas zu verschönern  .

Hatte auch vor der Umsetzung dieses Macros irgendwie im Kopf das es ein ähnliches Macro bereits hier gibt aber vor lauter Tatendrang dann doch selber was getippselt  .

Gruß
Bernd


------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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