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.
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
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.
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.
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)