Vba suppr Wackelige Abmessungen Skizze

Hallo
Ich möchte die wackeligen VBA-Seiten eines Teils entfernen

Wenn Sie eine Funktion von einem Teil in ein anderes kopieren, verliert sie die Abhängigkeiten der Skizze und ich weiß nicht, wie ich diese Beschränkungen entfernen kann

Ich habe von diesem Beispiel ausgegangen, kann aber nicht finden, wie ich die Einschränkungen oder Problemseiten identifizieren kann

Sub main()
'Sélectionner une esquisse
'

    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swSelMgr As SldWorks.SelectionMgr
    Dim swFeat As SldWorks.Feature
    Dim swSketch As SldWorks.Sketch
    Dim vSketchSeg As Variant
    Dim vConstraint As Variant
    Dim i As Long
    Dim j As Long
    Dim bRet As Boolean

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swSelMgr = swModel.SelectionManager
    Set swFeat = swSelMgr.GetSelectedObject6(1, -1)
    Set swSketch = swFeat.GetSpecificFeature2

    Debug.Print "Sketch = " & swFeat.Name
    Debug.Print ""
    Debug.Print "  SketchConstraintStatus  fully constrained = " & swSketch.GetConstrainedStatus
    Debug.Print ""
    

    ' Put sketch into edit mode to get access
    ' to constraint information for each segment
    ' in the sketch
    swModel.EditSketch

    vSketchSeg = swSketch.GetSketchSegments
    For i = 0 To UBound(vSketchSeg)
        vConstraint = vSketchSeg(i).GetConstraints
        For j = 0 To UBound(vConstraint)
            Debug.Print "  SketchSegConstraint[" & i & "] = " & vConstraint(j)
        Next j
    Next i

    ' Exit edit mode and do not rebuild the model
    swModel.InsertSketch2 True

End Sub

Hallo
Sie müssten Code hinzufügen, der auf dem Code in diesem Beispiel basiert: Abrufen von Elementtypen, die an ausgewählte Anmerkungen angehängt sind Beispiel (VBA) - 2022 - SOLIDWORKS API-Hilfe
Ersetzen Sie einfach, wenn Sie auf 2022 die vAttEntTypeArr = swAnn.GetAttachedEntityTypes2 mit vAttEntTypeArr = swAnn.GetAttachedEntityTypessind.
Wenn im Ergebnis der Debug-Ausgabe Type of attached entity(" & i & ") as defined in swSelectType_e = " & vAttEntTypeArr(i) der Wert sswSelectType_e = 0 vorhanden ist, bedeutet dies, dass eines der Verbindungselemente der Dimension gebrochen ist.
Nach dem, was ich getestet habe, funktioniert es nicht an Seiten mit Durchmesser, die nur eine Befestigungslinie hätten.

1 „Gefällt mir“

Hallo;
Hier ist mein Makro zum Entfernen von wackeligen Chancen;
Funktioniert unter Solidworks 2022 (auch wenn einige Variablen aktualisiert werden sollten...).

Dim swApp           As SldWorks.SldWorks
Dim swModel         As ModelDoc2
Dim swDraw          As DrawingDoc
Dim swSheet         As Sheet
Dim swView          As View
Dim boolstatus      As Boolean
Dim swAnn           As Annotation
Dim swDispDim       As DisplayDimension
Dim vSheetNames     As Variant
    
Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    
    If swModel.GetType <> SwConst.swDocumentTypes_e.swDocDRAWING Then Exit Sub
    Set swDraw = swModel
    
    swModel.ClearSelection2 (True)
    vSheetNames = swDraw.GetSheetNames
    For i = 0 To UBound(vSheetNames)
        swDraw.ActivateSheet vSheetNames(i)
        Set swSheet = swDraw.Sheet(vSheetNames(i))
        Set swView = swDraw.GetFirstView        ' This is the drawing template
        Do While Not swView Is Nothing
            Set swAnn = swView.GetFirstAnnotation3
            Do While Not swAnn Is Nothing
                If swAnn.IsDangling Then
                    boolstatus = swAnn.Select3(True, Nothing)
                End If
                Set swAnn = swAnn.GetNext3
            Loop
            Set swView = swView.GetNextView
        Loop
        boolstatus = swModel.DeleteSelection(True)
        swModel.ClearSelection2 (True)
    Next i
    swModel.ClearSelection2 (True)
    
End Sub

Herzliche Grüße.

1 „Gefällt mir“

Ich verstehe deine Antworten auf meine Frage nicht wirklich
Meine Frage ist, wie man die Bemaßungen und wackeligen Abhängigkeiten eines Teils, einer Skizze entfernt

Beim Kopieren einer Funktion von einem Teil in ein anderes gehen Abhängigkeiten und Bemaßungen verloren und ich möchte sie entfernen

Ich möchte die Einschränkungen nicht einzeln auswählen, es gibt keine Anmerkung in meinem Stück und es ist auch kein Plan

Ein Beispiel, ein Screenshot vor dem Kopieren und dann des bereinigten Ergebnisses, wäre vielleicht klarer gewesen?
Wenn die Leute daneben antworten, ist es für sie möglicherweise nicht klar genug.
Auf jeden Fall scheint es nicht ganz einfach zu sein.

Hallo;
@Bob_2000 meine Antwort in der Tat überhaupt nicht Ihrer Anfrage entspricht, kann das bereitgestellte Makro nur für die Bemaßung in den Zeichnungen verwendet werden. Tut mir Leid.


Herzliche Grüße.

Hallo
Wenn ich mich nicht irre, befindet sich das Beispiel der API auf einem Teil. Eine Bewertung wird von SW als Anmerkung betrachtet

1 „Gefällt mir“

Hallo

Hier sind einige Screenshots


CAPTURE 000336

Das Makro von Cyril.f hängt an der Zeile Set swAnn = swSelObj.GetAnnotation error 91
Egal, ob ich mich in der Skizze befinde oder sie auswähle, es ist dasselbe

Hallo
Sie müssen die Bemaßung in der Skizze und nicht die Skizze selbst auswählen.
Im Screenshot hingegen scheinen es die Punkte zu sein, die fehlerhaft sind und nicht die Quoten, also nicht die gleiche Anfrage.

1 „Gefällt mir“

Wenn jemand eine andere Idee hat
Ich verstehe nicht wirklich den Sinn des Makros von Cyril.f , das die Löschtaste ersetzt, aber länger

Hallo

Der Code, den ich als Beispiel eingefügt habe, führt keine Löschungen durch.
Haben Sie die Möglichkeit, Ihre Datei freizugeben? Wie auf den ersten Blick erklärt, sind nicht die Chancen schuld.

Hier ist ein Beispiel
Das Ziel des Makros sollte darin bestehen, alle wackeligen Dimensionen und Einschränkungen zu beseitigen
Artikel1.SLDPRT (130.2 KB)

Zukunftsdatei, ich bin im Jahr 2022.
Ansonsten funktioniert mein erstes Beispiel grundsätzlich mit wackeligen Bemaßungen (im Beispiel müssen Sie die betreffende Bemaßung von Hand auswählen, Sie müssen nur für diesen Fall automatisieren).
Für wackelige Einschränkungen habe ich in der API-Hilfe noch nichts gesehen. Der Code des ersten Beitrags ermöglicht es Ihnen, anzugeben, dass die Skizze nicht vollständig beschränkt ist, weist jedoch nicht irrtümlich auf die Einschränkung hin.
Vielleicht suchen Sie nach dem Status der Einschränkungen (ich hatte noch keine Zeit, es mir anzusehen)

1 „Gefällt mir“