VBA-schets verwijdert relatie

Hallo allemaal
Ik wil een VBA-macro maken die ' edge-on-edge ' schetsrelaties en wiebelige beperkingen, zoals het converteren van entiteiten, verwijdert, of het nu van een extern onderdeel is of een andere schets van hetzelfde onderdeel

Ik ben in de schets om behandeld te worden
Ik voer de macro die elk element moet controleren om het type beperking te zien, als het ' op de rand › verwijderen

Ik weet niet hoe ik elk item 1 voor 1 moet selecteren
Ik weet niet hoe ik moet controleren of het gelijk is aan ' op scherp ' of wiebelig
Ik weet niet hoe ik de bijbehorende beperking kan verwijderen

Hier is mijn macro start

Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSketchMgr As SldWorks.SketchManager
Dim swSketch As SldWorks.Sketch
Dim swSelMgr As SldWorks.SelectionMgr
Dim swFeat As SldWorks.Feature
Dim nSketchStatus As Long
Dim boolstatus As Boolean


Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSketchMgr = swModel.SketchManager
Set swSketch = swSketchMgr.ActiveSketch


If swSketch Is Nothing Then
MsgBox "Éditer une esquisse et relancer la macro"
Exit Sub
End If

'For i = 1 To Count
'selectionner i element
'if relation existante =sgOFFSETEDGE
'boolstatus = Part.Extension.SelectByID2(xx,  , ,, , , )
'swModel.EditDelete
'swModel.SketchManager.SketchConstraintsDel 1, "sgOFFSETEDGE"
'swModel.SketchConstraintsDel i, "sgOFFSETEDGE"
'Next i

swModel.ClearSelection2 True
End Sub

Item1.SLDPRT (120.0 KB)

Hallo

Gebruik in plaats daarvan dit API-voorbeeld en pas het indien nodig aan: Voorbeeld van schetsrelaties ophalen (VBA) - 2021 - SOLIDWORKS API Help

1 like

Ik heb een beetje moeite om duidelijk te zien, ik ben niet zo goed in vba als iemand een idee heeft

Hallo @Bob_2000
Leg in plaats daarvan uit waar je boos over bent in de code die door @Cyril_f wordt verstrekt en dan kunnen we meer specifieke vragen beantwoorden.

Ik weet niet waar SkPoint ID-variabelen voor zijn, ik zie niet hoe ik de wiebelige zijden kan vinden

De "SkPoint ID" en "SkSeg ID" zijn geen variabelen maar volledige tekst, om in het debug-venster de punt-ID van de schets (sk → schets) en SkSeg de ID van het segment weer te geven.

Je kunt merken dat ze tussen " ", maar vooral dat deze woorden niet worden uitgesproken (met een dim bijvoorbeeld), dus geen variabelen kunnen zijn.

Ok, maar het vertelt me niet hoe ik het type beperking van elk geselecteerd element kan vinden om te weten of het wiebelig is

Hallo
Ik had geen tijd om te testen, maar er zijn filtercriteria voor wat deze code moet scannen. Kortom, het is ingesteld op Alles en afhankelijk van het resultaat kun je niet-geïdentificeerde gevallen tegenkomen die wiebelige schetsen of andere kunnen zijn.
Je zou het filter moeten instellen op de elementen die wiebelig zijn om een specifieke lus op deze status te maken.
Ik heb in ieder geval tot het einde van de week geen toegang tot SW.

Als iemand de parameters voor kansen kent
-Wankel
-Extern
-Kapot

Voor wiebelige ribben isbungelende methode (IAnnotatie) - 2018 - SOLIDWORKS API Help
Zie dit onderwerp (niet getest):
https://r1132100503382-eu1-3dswym.3dexperience.3ds.com/?_gl=11jlxmvc_gaMjcxNTI5NDczLjE2NDAwNjkyNDQ._ga_XQJPQWHZHH*MTY3MDQxNDI5Ny42NS4xLjE2NzA0MTQzOTEuNTYuMC4w#community:yUw32GbYTEqKdgY7-jbZPg/iquestion:GjZHVgFpSo-VcVvyOZ1i9A
Test deze track en geef ons feedback indien mogelijk.

En voor een schets:
https://help.solidworks.com/2018/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.ISketch~GetConstrainedStatus.html

Ik kom er niet mee weg als iemand een idee heeft voor werkende code