Hallo Ik ben op zoek naar het verwijderen van de wiebelige VBA-zijkanten van een onderdeel
als je een functie van het ene deel naar het andere kopieert, verliest het de beperkingen van de schets en ik weet niet hoe ik deze beperkingen kan verwijderen
Ik ben van dit voorbeeld uitgegaan, maar ik kan niet vinden hoe ik de beperkingen of probleemkanten kan identificeren
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 U moet code toevoegen op basis van de code in dit voorbeeld: Typen entiteiten ophalen die zijn gekoppeld aan geselecteerd annotatievoorbeeld (VBA) - 2022 - SOLIDWORKS API Help Vervang gewoon als je op 2022 de vAttEntTypeArr = swAnn.GetAttachedEntityTypes2 met vAttEntTypeArr = swAnn.GetAttachedEntityTypes. Als er in het resultaat van de foutopsporingsafdruk Type of attached entity(" & i & ") as defined in swSelectType_e = " & vAttEntTypeArr(i) de waarde sswSelectType_e = 0 is, geeft dit aan dat er een van de bevestigingsmiddelen van de dimensie is die is gebroken. Van wat ik heb getest, werkt het niet op diameterzijden die slechts één bevestigingslijn zouden hebben.
Hallo; Hier is mijn macro voor het verwijderen van wiebelige kansen; Werkt onder Solidworks 2022 (zelfs als sommige variabelen moeten worden bijgewerkt...).
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
Ik begrijp je antwoorden op mijn vraag niet echt Mijn vraag is hoe je de afmetingen en wiebelige beperkingen van een onderdeel, van een schets kunt verwijderen
Bij het kopiëren van een functie van het ene onderdeel naar het andere, gaan beperkingen en afmetingen verloren en die wil ik graag verwijderen
Ik wil de beperkingen niet één voor één selecteren, er zit geen annotatie in mijn stuk en het is ook geen plan
Het geven van een voorbeeld, een screenshot voor het kopiëren en daarna van het opgeschoonde resultaat, zou misschien duidelijker zijn geweest? Als mensen ernaast antwoorden, is het misschien niet duidelijk genoeg voor hen. Het lijkt in ieder geval niet heel eenvoudig.
Hallo; @Bob_2000 mijn antwoord inderdaad helemaal niet overeenkomt met uw verzoek, kan de verstrekte macro alleen worden gebruikt op de afmeting in de tekeningen. Sorry.
Hallo U moet de afmeting in de schets selecteren en niet de schets zelf. In de schermafbeelding daarentegen lijken het de punten te zijn die fout zijn en niet de kansen, dus niet hetzelfde verzoek.
De code die ik als voorbeeld heb gegeven, doet geen verwijderingen. Mogelijkheid om uw bestand te delen? Zoals op het eerste gezicht wordt uitgelegd, zijn het niet de kansen die de schuld zijn.
Toekomstig bestand, ik ben in 2022. Voor de rest werkt mijn eerste voorbeeld met wiebelige dimensies (in het voorbeeld moet je de betreffende dimensie met de hand selecteren, je hoeft alleen maar te automatiseren voor dit geval). Voor wiebelige beperkingen heb ik nog niets gezien in de API-help. De code van het eerste bericht stelt u in staat om aan te geven dat de schets niet volledig beperkt is, maar wijst niet ten onrechte op de beperking. Misschien op zoek naar de status van beperkingen (ik heb nog geen tijd gehad om ernaar te kijken)