Abmessungen des Raumes

Hallo

Ich versuche, die Abmessungen eines Raumes in SW zu bestimmen, indem ich anführe, dass ich VB.NET verwende.

Ich warte auf Ihre Hilfe und danke Ihnen.

Hallo

Zu einer Zeit hatte ich ein kleines Dienstprogramm entwickelt, das es mir ermöglichte, etwas Ähnliches zu tun, siehe HIER.

Herzliche Grüße

1 „Gefällt mir“

Hier ist ein weiteres Modell, das, wie gesagt, "ohne Privilege-Abonnement 1 Monat lang verwendet und getestet werden kann.", siehe HIER.

Herzliche Grüße

1 „Gefällt mir“

Und hier ist eine Version des Dienstprogramms, das ich erstellt hatte, aber mit einer zusätzlichen Schaltfläche zur Berechnung des Fußabdrucks auf dem Teil oder der Baugruppe, die bereits in Solidworks geladen ist.

Herzliche Grüße


boundingbox-4.zip
3 „Gefällt mir“

Hallo und vielen Dank für Ihre Hilfe,

Es ist nicht genau das, ich versuche, die Länge und Breite (oder den Durchmesser) eines Teils in SW mit dem VB.NET Code zu bestimmen.

Hallo

Wahrscheinlich ein Verständnisfehler meinerseits, wenn ich es richtig verstehe, dann versuchen Sie, VB.NET Chancen zu treiben?

Herzliche Grüße

2 „Gefällt mir“

Hallo

was ich genau suche, ist die Bestimmung der Länge und des Durchmessers einer Schraube in einer Baugruppe auf SW mit VB.net, um sie später zu verwenden.

Hallo

Dazu können Sie die Konfigurationen verwenden. Sie erstellen Ihre Schraube und nehmen für jede Länge oder jeden Durchmesser eine zusätzliche Konfiguration vor.

Hallo

Ich verstehe die endgültige Notwendigkeit nicht wirklich, denn für Schrauben, wie ac cobra 427 sagt, gibt es die Möglichkeit, Konfigurationen zu verwenden, oder die Toolbox zu verwenden. Wenn es darum geht, Abmessungen an einem SW-Teil zu steuern, ist es möglich, dies wie folgt zu tun.

Wenn wir bedenken, dass das in SW geladene Teil aus einer "Boss.-Extru.1"-Funktion besteht, die aus einer "Sketch1"-Skizze besteht, in der wir die Abmessungen "D1@Esquisse1" und "D2@Esquisse1" für Breite und Länge finden, und dass die Dickendimension der Extrusion als "D1@Boss.-Extru.1" bezeichnet wird, dann können wir sie wie folgt steuern:

Dim swApp As Object
Dim Part As Object
Dim myDimension As Object
Dim boolstatus As Boolean

Sub main()
    Set swApp = Application.SldWorks
    Set Part = swApp.ActiveDoc
    Set myDimension = Part.Parameter("D1@Esquisse1")
    myDimension.SystemValue = 0.11
    Set myDimension = Part.Parameter("D2@Esquisse1")
    myDimension.SystemValue = 0.05
    Set myDimension = Part.Parameter("D1@Boss.-Extru.1")
    myDimension.SystemValue = 0.002
    boolstatus = Part.ForceRebuild3(True)
    Part.ClearSelection2 True
End Sub

Herzliche Grüße

1 „Gefällt mir“

Hallo und vielen Dank für Ihre Antwort,

Das Problem ist, dass ich die Abmessungen der Standardelemente bestimmen möchte, die aus SW-Bibliotheken hinzugefügt wurden (Schrauben, Muttern usw.), sodass ich nicht auf ihre Skizzen zugreifen kann.

Hallo

Was meinen Sie mit Standardelementen, die aus der SW-Bibliothek hinzugefügt wurden? Können Sie ein Beispiel für ein Teil zur Analyse bereitstellen?

Herzliche Grüße

Hallo

Ein Beispiel ist beigefügt.

Also, ich habe diesen Algorithmus ausprobiert, aber ich habe keine Ergebnisse erhalten:

        swModel = swApp.ActiveDoc

        swConfigMgr = swModel.ConfigurationManager

        swConfig = swConfigMgr.ActiveConfiguration
        Dim swDocExt als ModelDocExtension
        Dim boo als boolescher Wert
        swModel.ClearSelection2(Wahr)
        swDocExt = swModel.Extension()
        boo = swDocExt.SelectByID2("part@assembly", "KOMPONENTE", 0, 0, 0, Wahr, 1, Nichts, 0)
 
        Dim strCompModelname2 als Zeichenfolge
        strCompModelname2 = "Teil.sldprt"
        swModel = swApp.ActiveDoc

        swDim = swModel.Parameter(strCompModelname2)

        vConfigNameArr = swModel.GetConfigurationNames

        Für jeden vConfigName in vConfigNameArr

            sSpecConfigNameArr(0) = vConfigName

            vSpecConfigNameArr = sSpecConfigNameArr

            vDimValArr = swDim.GetValue3(swInConfigurationOpts_e.swSpecifyConfiguration, vSpecConfigNameArr)
            Debug.Assert(0 = UBound(vDimValArr))

            Für jedes vDimVal In vDimValArr

                Debug.Print("      " & vConfigName & " -->" & vDimVal)

            Nächster

        Nächster


din-933.jpg

Hallo

Mit " Können Sie ein Beispiel für ein Teil zur Analyse posten? ", meinte ich eines Ihrer Stücke im sldprt-Format, kein JPEG-Bild!!

Herzliche Grüße

1 „Gefällt mir“

Guten Abend

Hier ist das Beispiel im .sldprt-Format


jaw_screw.sldprt

Hallo

Das habe ich vermutet, es handelt sich um importierte Teile, so dass Sie keine Angebote finden können, da es keine gibt:

Herzliche Grüße

Hallo

Um Skizzen in einem importierten Körper zu aktivieren, können Sie Featurworks verwenden , das alle Funktionen eines Teils erkennt...

Es ist eine Möglichkeit, aber in Anbetracht des Teils denke ich, dass es besser ist, es komplett neu aufzubauen, es wird den Vorteil haben, völlig eingeschränkte Skizzen und etwas "intelligentere" Funktionen zu haben.

Oder nehmen Sie einen Teil aus der Toolbox, wenn es eine Entsprechung gibt.

Für featureWorks müssen Sie zuerst die Funktion "Body-Move" entfernen, da FeatureWorks sonst nicht verwendet werden kann:

Herzliche Grüße

1 „Gefällt mir“

Hallo

Ich habe "Body-Move" gelöscht, dann habe ich auf featureworks geklickt - erkenne die Funktionen ...

Es wird eine Fehlermeldung "Bild" angezeigt, dann wenn ich auf OK klicke, schließt sich die SW von selbst.


image.png

Hallo

Es scheint nicht von Ihrer Seite zu kommen (Behandlung im SW 2017):

Schauen Sie also nach Ihren Einstellungen oder Ihrer Installation von SW (welche Version?)

Herzliche Grüße

1 „Gefällt mir“

Hallo

Ich habe es geschafft, die Skizze der Teile zu betrachten.

Das Problem besteht nun darin, die Länge eines ausgewählten Teils durch seine Skizze zu bestimmen. 

Ich zeige Ihnen ein Beispiel für einen Algorithmus, den ich getestet habe, aber ohne Ergebnisse:

1 /

    Dimmen von vDimVal als Objekt
        Dimmteil als ModelDoc2
        Teil = swApp.ActiveDoc
Dim swDim As Dimension
        swDim = Teil.Parameter("D2@Esquisse1@part1@assembly")
       vDimVal = swDim.GetSystemValue3(swInConfigurationOpts_e.swThisConfiguration, nichts)
        vDimVal = swSelMgr.GetSelectedObject6(1, -1)
        MsgBox(vDimVal)

 

Ergebnis = leeres Feld