Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: Vermaßungen in Baugruppen auslesen

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
  
SIMULIA Regional User Meeting 2026, eine Veranstaltung am 17.06.2026
Autor Thema:  API: Vermaßungen in Baugruppen auslesen (443 mal gelesen)
thomas27
Mitglied



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

Beiträge: 12
Registriert: 25.09.2002

erstellt am: 25. Sep. 2002 01:11    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 folgendes Problem und hoffe, dass mir hier vielleicht jemand weiterhelfen kann.

Mein Ziel ist es alle Bemaßungen einer Baugruppe auszulesen. Zunächst soll die Baugruppe auch noch keine Unterbaugruppen enthalten, sie besteht also ausschließlich aus Parts.

Das konkrete Problem sind dabei nicht Bemaßungen der Parts selbst, diese kann ich bereits auslesen. Was mir noch Schwierigkeiten bereitet, sind die Bemaßungen in der Baugruppe. Meine Frage zielt auf die Bemaßungen und die Werte aus den Verknüpfungen in der Baugruppe ab. Wie komme ich an diese Werte heran?

Gruß, Thomas

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

3Defacto
Mitglied
Ingenieurbüro


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

Beiträge: 33
Registriert: 02.04.2001

erstellt am: 25. Sep. 2002 08:10    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 thomas27 10 Unities + Antwort hilfreich

Hallo Thomas,

willkomen in der Welt von SolidWorks und im Forum.

Anbei ein kurzer Programmauschnitt mit dem Du innerhalb der Baugruppe auf Deine Verknüpfung kommst.

Assembly.SelectByID "D1@Abstand1@1812245 - B6400477 DE-LM STROMZUFUEHRUNG,GERISSEN.SLDASM", "DIMENSION", 0, 0, 0
Assembly.Parameter("D1@Abstand1").SystemValue = 0.007
Assembly.EditRebuild
Assembly.ClearSelection

Du musst zuvor noch wissen, wie Deine einzelnen Verknüpfungen heissen "D1@Abstand" usw..  Der zweite Teil des Namens setzt sich aus der Bezeichnung der Baugruppe zusammen.

Damit Du den Feature - Tree nach all Deinen Verknüpfungen durchsuchen kannst, schau Dir mal das Beispiel "Traverse SubFeatures Example" in der APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) - Hilfe an. Hab es nicht für Deine belange getestet, aber damit könntest Du weiter kommen.

Ansonsten noch der Tip.
Zeichne Dir ein Makro auf von den Aktionen die Du mit VB steuern willst. Meistens kann man aus dem Makro recht leicht Ideen für die richtigen Codes erhalten -  Leider werden nicht alle Useraktionen entsprechend aufgezeichnet.

So weit.

Gruß
Mathias

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

thomas27
Mitglied



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

Beiträge: 12
Registriert: 25.09.2002

erstellt am: 25. Sep. 2002 21: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

Hallo Mathias,

vielen Dank für die schnelle Antwort. Ich hätte es vielleicht anders formulieren sollen. Wenn ich den Namen der Maße aus der Baugruppe habe, komme ich auch an den Wert heran. Mein Problem geht dahingehend, dass ich nicht die Namen der Maße auslesen kann. Ich habe auch noch mal die genannten Beispiele durchgesehen, sie liefern mir aber auch nur die „Demensions“ aus den „Components“. Wenn ich das richtig sehe, müssten - die von mir gesuchten Maße – aus der „RootComponent“ hervorgehen? Doch das klappt nicht oder ist der falsche Weg.

Gruß, Thomas

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

3Defacto
Mitglied
Ingenieurbüro


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

Beiträge: 33
Registriert: 02.04.2001

erstellt am: 26. Sep. 2002 11: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 Nur für thomas27 10 Unities + Antwort hilfreich

Hallo Thomas,

mit dem folgenden Programmcode - ist aus den Übungsbeispielen geklaut - kommst Du zumindestens an all Deine Verknüpfungen heran:

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc

' Get the 1st feature in part

Set Feature = Part.FirstFeature

' While we have a valid feature

While Not Feature Is Nothing

' Get the name of the feature

featureName = Feature.Name

message = "Feature: " & featureName & Chr(10) & " SubFeatures:"

Set subFeat = Feature.GetFirstSubFeature

' While we have a valid Sub-feature

While Not subFeat Is Nothing

  ' Get the name of the Sub-feature

  subFeatureName = subFeat.Name

  message = message & Chr(10) & " " & subFeatureName

  Set subFeat = subFeat.GetNextSubFeature

' Continue until the last Sub-feature is done

Wend

' Display the Sub-features

swApp.SendMsgToUser message

' Get the next feature

Set Feature = Feature.GetNextFeature()

' Continue until the last feature is done

Wend

End Sub

Meiner Meinung nach musst Du jetzt nur noch herausfinden, wann die richtige Verknüpfungen ausgelesen wurde (Du erhälst den Verknüpfungsnamen in der Variablen "subFeatureName") und dann kannst Du Dir den benötigten Namen zum Ansprechen des Masses zusammensetzen. Meiner Erfahrung nach heissen die Bemassungen immer D1 innerhalb von Verknüpfungen, denn hier gibt es auch nur ein Mass was gesetzt wird. Achtung, wenn die Konstrukteure die Bezeichnungen ändern funktioniert das ganze nicht mehr.

Lass das Beispiel einfach mal an einer Baugrppe ablaufen und Du wirst sehen was passiert.

Es ist allerdings nur ein Woraround, vielleicht komst Du ja auch weiter, wenn Du in der APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)-Hilfe mal nach "Mate" suchst und hierrüber an die Verknüpfung gelangst.
Leider habe ich nicht die Zeit und hatte solch ein Aufgabe auch noch nicht zu lösen.

Halt mich bitte auf dem laufenden, wenn Du ein Lösung gefunden hast.

Gruß Mathias

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

thomas27
Mitglied



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

Beiträge: 12
Registriert: 25.09.2002

erstellt am: 26. Sep. 2002 15: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 Mathias,

vielen Dank für den guten Ratschlag, er hat sehr weitergeholfen. Als vorläufiges Ergebnis ist dabei die folgende Funktion herausgekommen.

Gruß Thomas

Function getSwMateGroupDimenionNames() As Variant

    Dim Part As Object
    Dim Feature As Object
    Dim subFeat As Object
    Dim DisplayDimens As Object
    Dim Dimens As Object
    MsgBox i
    Dim arrSwMateGroupDimenionNames() As String
   
    Set swApp = CreateObject("SldWorks.Application")
    Set Part = swApp.ActiveDoc
   
    If Not Part Is Nothing Then
        Set Feature = Part.FirstFeature

        While Not Feature Is Nothing
            'Debug.Print Feature.Name
       
            If Feature.getTypeName() = "MateGroup" Then
                Set subFeat = Feature.GetFirstSubFeature

                n = 0
                ReDim Preserve arrSwMateGroupDimenionNames(0)
           
                While Not subFeat Is Nothing
                    'Debug.Print subFeat.Name
 
                    Set DisplayDimens = subFeat.GetFirstDisplayDimension
               
                    While Not DisplayDimens Is Nothing
                        Set Dimens = DisplayDimens.GetDimension
                       
                        ReDim Preserve arrSwMateGroupDimenionNames(n)
                        'Debug.Print Dimens.FullName
                        arrSwMateGroupDimenionNames(n) = Dimens.FullName
                        n = n + 1
                   
                        Set DisplayDimens = subFeat.GetNextDisplayDimension(DisplayDimens)
                    Wend
               
                    Set subFeat = subFeat.GetNextSubFeature
                Wend
            End If
       
            Set Feature = Feature.GetNextFeature()
        Wend
   
    End If
   
    getSwMateGroupDimenionNames = arrSwMateGroupDimenionNames
End Function

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