[VB.Net] API Solidworks Edition Filetage

Bonjour,

 

J'ai beau chercher je ne trouve aucun moyen d'editer juste la dimensions d'un filetage dans solidworks

 

Mise en situation

Piece existante avec un taraudage en M10

Objectif

Changer le M10 en M12 sans donner les info de profondeur ou autre donc en se basant juste comme si l'utilisateur changer dans la boite de dialogue de solidworks

 

J'ai regardé du coté de HoleWizard mais c'est uniquement pour crée le taraudage et non pour l'editer :/

J'ai bien trouvé sa 

http://help.solidworks.com/2015/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IWizardHoleFeatureData2~ChangeStandard.html

Mais je ne voit pas comment selectionner au prealable ma fonction :/

Hello

 

Tu veux modifier sur une mise en plan 2D, dans le 3D ?

 

Dans le fichier piece directement ;)

Avec l'aide de l'assistance voici le code qui fonctionne sous VB.net

Dim File As String = "C:\Test.SLDPRT"
Dim swDocSpecification As SldWorks.DocumentSpecification = swApp.GetOpenDocSpec(File)
swDocSpecification.Silent = True : swDocSpecification.ReadOnly = False : swApp.OpenDoc7(swDocSpecification)
Dim Part As PartDoc = swApp.ActiveDoc
Dim swModel As SldWorks.ModelDoc2 = swApp.ActiveDoc
Dim featMgr As FeatureManager = Part.FeatureManager
'
Dim swSelMgr As SldWorks.SelectionMgr = swModel.SelectionManager
swModel.Extension.SelectByID2("Threaded Hole""BODYFEATURE"000False0Nothing0)
Dim swFeat As SldWorks.Feature = swSelMgr.GetSelectedObject6(1, -1)
Dim instance As IWizardHoleFeatureData2
Dim Standard As Int32 = 8
Dim FastenerType As Int32 = 147
Dim SSize As String = "M30"
instance = swFeat.GetDefinition
instance.ChangeStandard(Standard, FastenerType, SSize)
swFeat.ModifyDefinition(instance, swModel, Nothing)
'
Part.ForceRebuild() 'Reconstruction
Dim fileerror, filewarning As Integer
Dim boolstatus As Boolean = swModel.Save3(SwConst.swSaveAsOptions_e.swSaveAsOptions_Silent, fileerror, filewarning) 'Sauvegarde des modification
swApp.CloseDoc(File) 'Fermeture de la piece

Avec l'aide de l'assistance voici le code qui fonctionne sous VB.net

Dim File As String = "C:\Test.SLDPRT"Dim swDocSpecification As SldWorks.DocumentSpecification = swApp.GetOpenDocSpec(File) swDocSpecification.Silent = True : swDocSpecification.ReadOnly = False : swApp.OpenDoc7(swDocSpecification)Dim Part As PartDoc = swApp.ActiveDocDim swModel As SldWorks.ModelDoc2 = swApp.ActiveDocDim featMgr As FeatureManager = Part.FeatureManager 'Dim swSelMgr As SldWorks.SelectionMgr = swModel.SelectionManager swModel.Extension.SelectByID2("Threaded Hole", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)Dim swFeat As SldWorks.Feature = swSelMgr.GetSelectedObject6(1, -1)Dim instance As IWizardHoleFeatureData2 Dim Standard As Int32 = 8Dim FastenerType As Int32 = 147 Dim SSize As String = "M30"instance = swFeat.GetDefinition instance.ChangeStandard(Standard, FastenerType, SSize) swFeat.ModifyDefinition(instance, swModel, Nothing) 'Part.ForceRebuild() 'Reconstruction Dim fileerror, filewarning As IntegerDim boolstatus As Boolean = swModel.Save3(SwConst.swSaveAsOptions_e.swSaveAsOptions_Silent, fileerror, filewarning) 'Sauvegarde des modificationswApp.CloseDoc(File) 'Fermeture de la piece

Serait-il possible de mettre le code VBA de la macro complète dans un fichier txt en pièce jointe d'une réponse ? Car là, c'est un peu illisible...