Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API Programmierung

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
  
Wie Produktkonfiguratoren Ihren Vertriebsprozess nachhaltig unterstützen
Autor Thema:  API Programmierung (3268 mal gelesen)
Dominic Ulrich
Mitglied
Entwicklungsingenieur

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

Beiträge: 2
Registriert: 07.03.2013

erstellt am: 07. Mrz. 2013 22:05    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,

folgendes Aufgabenstellung bereitet mir Kopfzerbrechen:

ich möchte aus einer Baugruppendatei eine Textdatei erzeugen in der die X-Y Koordinaten der einzelnen Stücklistensymbole aufgelistet sind. D.h. ich muss wissen wo sich die Stücklistensymbole befinden. Leider finde ich in der englichen API Hilfe keine Funktion zu diesem Thema.

Eventuell hat jemand einen Tipp zu dem Thema

Vielen Dank

Gruß

Dominic

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: 08. Mrz. 2013 07: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 Dominic Ulrich 10 Unities + Antwort hilfreich

Hallo Dominic,

und herzlich willkommen im SolidWorks Brett auf CAD.de 

Du müsstest für dein Stücklistensymbole (BomBalloon) ja schon das Annotation-Objekt haben, dafür gibt es mit Annotation::GetPosition einen API Call, über den du auch die Position heraus bekommen solltest. Hab ich zwar noch nicht selbst gemacht, aber ich denke, darüber sollte es gehen.

Ciao,
Stefan

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

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

Dominic Ulrich
Mitglied
Entwicklungsingenieur

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

Beiträge: 2
Registriert: 07.03.2013

erstellt am: 19. Mrz. 2014 22: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

Hallo Stefan,

ich versuche mittlerweile seit einem Jahr etwas zu finden damit es klappt. Leider ohne Erfolg.

Ich Glaube die GetBalloonInfo Funktion würde passen:

return value[0] = x coordinate of balloon center point

return value[1] = y coordinate of balloon center point


Leider bekomme ich es nicht hin in dem Makro alle Positionsnummern nacheinander abzufragen und die Koordinaten zu ermitteln. Kannst du mir da ggf. etwas auf die Sprünge helfen.

Danke

Dominic


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: 20. Mrz. 2014 09:59    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 Dominic Ulrich 10 Unities + Antwort hilfreich

Hallo Dominic,

so auf die schnelle habe ich mir ein altes Makro von Klaus Massler aus http://ww3.cad.de/foren/ubb/Forum2/HTML/009965.shtml geschnappt, da zeigt dir, wie du in einer Zeichnung über alle Beschriftungen läufst, inklusive den Stücklistensymbolen.

Da fragst du dann gezielt die Notes ab, ob es ein BomBalloon ist, wenn ja bekommst du vom zugrunde liegenden Annotation-Objekt (was du in dem Makro ja auch schon hast) mit GetPosition die Koordinaten. Dazu musst du in dem Beispiel nur noch diesen Codeteil reinschmuggeln:

Code:

            Case swNote
                TypString = "swNote"
               
               
                Dim myNote As SldWorks.Note
                Dim AnnPos As Variant
               
                Set myNote = swAnn.GetSpecificAnnotation
               
                If myNote.IsBomBalloon Then
                   
                    AnnPos = swAnn.GetPosition

                    Debug.Print "!!! Balloon found at " & AnnPos(0), AnnPos(1), AnnPos(2)
                   
                End If


Ich hoffe damit kommst du jetzt etwas weiter.

Ciao,
Stefan

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

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

Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 86
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 20. Mrz. 2014 10: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 Nur für Dominic Ulrich 10 Unities + Antwort hilfreich

Hallo Dominic

Also sowas :

Option Explicit

Sub main()

    Dim swApp                      As SldWorks.SldWorks

    Dim swModel                    As SldWorks.ModelDoc2

    Dim swDraw                      As SldWorks.DrawingDoc

    Dim swView                      As SldWorks.View

    Dim swNote                      As SldWorks.Note

    Dim swAnn                      As SldWorks.Annotation

    Dim bRet                        As Boolean
   
    Dim Value                      As Variant

    Set swApp = CreateObject("SldWorks.Application")

    Set swModel = swApp.ActiveDoc

    Set swDraw = swModel

    Set swView = swDraw.GetFirstView        ' Zeichnungsvorlage

    Set swNote = swView.GetFirstNote        ' erstes Beschriftungselement in Ansicht
 
    swModel.ClearSelection2 (True)

    While Not swView Is Nothing
        Set swNote = swView.GetFirstNote
        Do While Not swNote Is Nothing
            If swNote.IsBomBalloon Then    ' Ist es ein Stücklistensymbol??
                Value = swNote.GetBalloonInfo()
                Set swAnn = swNote.GetAnnotation
       
                Debug.Print "  " & swNote.GetName          'Ausgabe Name

                Debug.Print "Pos. Nr.    " & swNote.GetText 'Ausgabe Wert
       
                Debug.Print "X : " & Value(0) * 1000        'Ausgabe X-Pos.
       
                Debug.Print "Y : " & Value(1) * 1000        'Ausgabe Y-Pos.
       
            End If

        Set swNote = swNote.GetNext                        'nächstes Beschriftungselement

        Loop
        Set swView = swView.GetNextView                    ' nächste Ansicht
Wend

End Sub

Gruß
Manfred

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



Technischer Zeichner (m/w/d) Produktdesigner*

Als Technologie-Berater arbeiten wir gemeinsam mit namenhaften Unternehmen in der Luft- und Raumfahrt, der Automobil- und Schiffbauindustrie, Energie- und IT-Branche, sowie im Anlagenbau.

Mit rund 50 Jahren Unternehmensgeschichte legen wir als inhabergeführtes Unternehmen Wert auf flache Hierarchien und bearbeiten unsere Projekte mit viel Herz.

Wir bieten dir die Möglichkeit an unseren Standorten in der gesamten DACH-Region zu arbeiten....

Anzeige ansehenTechnischer Zeichner, Bauzeichner
Manfred Kern
Mitglied
Softwareentwicklung CAD/CAM-Systembetreuung


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

Beiträge: 86
Registriert: 25.05.2000

** CSWP 06/2004 **
DELL Precision 7530
SW 2020 SP5
SW 2019 SP3
Visual Studio 2017 pro

erstellt am: 20. Mrz. 2014 10:58    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 Dominic Ulrich 10 Unities + Antwort hilfreich

Hallo Dominic.
Hab gesehen, dass du ja die Symbole in aus der BG brauchst, NICHT aus Zeichnung! Sorry ! Hier das Makro für eine BG.

       

Code:
Option Explicit

Sub main()

    Dim swApp                      As SldWorks.SldWorks

    Dim swModel                    As SldWorks.ModelDoc2

    Dim swDraw                      As SldWorks.DrawingDoc

    Dim swView                      As SldWorks.View

    Dim swNote                      As SldWorks.Note

    Dim swAnn                      As SldWorks.Annotation

    Dim bRet                        As Boolean
   
    Dim Value                      As Variant

    Set swApp = CreateObject("SldWorks.Application")

    Set swModel = swApp.ActiveDoc

    Set swAnn = swModel.GetFirstAnnotation2      ' erstes Beschriftungselement in Model
 
    swModel.ClearSelection2 (True)

        Do While Not swAnn Is Nothing
        Set swNote = swAnn.GetSpecificAnnotation

            If swNote.IsBomBalloon Then    ' Ist es ein Stücklistensymbol??
                Value = swAnn.GetPosition
               
                Debug.Print "  " & swNote.GetName          'Ausgabe Name

                Debug.Print "Pos. Nr.    " & swNote.GetText 'Ausgabe Wert
       
                Debug.Print "X : " & Value(0) * 1000        'Ausgabe X-Pos.
       
                Debug.Print "Y : " & Value(1) * 1000        'Ausgabe Y-Pos.
       
            End If

        Set swAnn = swAnn.GetNext                        'nächstes Beschriftungselement

        Loop
 
End Sub


Gruß
Manfred

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