Werk je aan een assemblage of onderdeel? En welk type? (Balk(en),Lage dikte, mechanisch gelast... andere)
Het zou interessant zijn om een idee te hebben van de geometrie (1000 vlakken ???) waarop je je kracht van 1N (1Newton, het is niet veel... Zou het niet makkelijker zijn om met de zwaartekracht te spelen, of met de massa? … Mijn nieuwsgierigheid zal het niet erg vinden om een kleine screenshot te maken ... of beter het *.sld-bestand... (Solidworks 2019 (dat is ouderwets: 2019) heeft het voordeel dat het door een groot aantal van de hier aanwezige forumisten kan worden uitgebuit...
Bedankt voor de interesse in het onderwerp! De statische studie wordt gedaan in een onderdeelbestand of op een onderdeel in een assemblage. In alle gevallen is het onderdeel een volume (extrusie) van ongeveer 1,6 mm dik. Ik kan indien nodig een sld-bestand in een privébericht verstrekken.
Arf: Ik weet alleen dat... Dat verklaart de 1,6 mm, ik had het kunnen bedenken, maar om er 1000 gezichten te hebben, heeft het ofwel een verdomd originele vorm, vol gaten en uitsparingen, of je neemt de componenten op, maar daar verandert het alles aan de simulatie.
Ik denk dat de vaste steunpunten waar je het over hebt, de gebieden zijn waar de printplaat wordt vastgehouden en vastgezet.
Is het doel van de simulatie om een vervorming van de printplaat te simuleren, als deze zich bijvoorbeeld in een flexibele behuizing bevindt, of om de vervorming ervan te simuleren als een object erop drukt?
@Sylk ik kennismaken met de Force en zijn buitengewone vermogens, zoals telekinese, helderziendheid en manipulatie van de geest. Ik ben getraind in de kunst van zelfbeheersing en meditatie. maar met solidworks zijn we in een andere wereld, alleen Dassault heeft er controle over... in feite, nee, ik denk dat zelfs wij het niet weten
Ter info, hier is de code die ik gebruik om de kracht op elk oppervlak in de lus in te voegen:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub insert_force(DispatchObj1 As Object)
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Dim COSMOSWORKSObj As Object
Dim CWAddinCallBackObj As Object
Set CWAddinCallBackObj = swApp.GetAddInObject("CosmosWorks.CosmosWorks")
Set COSMOSWORKSObj = CWAddinCallBackObj.COSMOSWORKS
Dim ActiveDocObj As Object
Dim StudyManagerObj As Object
Dim LoadsAndRestraintsManagerObj As Object
Dim ErrorCodeObj As Long
Dim ContactManagerObj As Object
Set ActiveDocObj = COSMOSWORKSObj.ActiveDoc()
Set StudyManagerObj = ActiveDocObj.StudyManager()
Dim StudyObj As Object
Set StudyObj = StudyManagerObj.GetStudy(0)
Set LoadsAndRestraintsManagerObj = StudyObj.LoadsAndRestraintsManager()
DispArray = Array(DispatchObj1) 'Récupération de la surface
Dim CWForceObj As Object
Dim DistanceValues As Variant
Dim ForceValues As Variant
Dim ComponentValues As Variant
Dim data(6) As Double
data(0) = 1
data(1) = 1
data(2) = 1
data(3) = 1
data(4) = 1
data(5) = 1
ComponentValues = data
Set CWForceObj = LoadsAndRestraintsManagerObj.AddForce3(1, 0, -1, 0, 0, 0, (DistanceValues), (ForceValues), 0, False, 0, 0, 0, 1, (ComponentValues), False, False, (DispArray), Nothing, False, ErrorCodeObj)
' Redraw
Part.GraphicsRedraw2
Set StudyManagerObj = Nothing
Set ActiveDocObj = Nothing
Set CWAddinCallBackObj = Nothing
Set COSMOSWORKSObj = Nothing
End Sub
Maar hoe " groepeer je " verschillende oppervlakken " in een " batch " die zou worden aangeroepen door het insert commando??? Tenzij het niet de juiste logica is??
Hallo fgauvreau, Probeer dit eens. Het zal door de selectiespellen lopen en een verborgen kracht voor iedereen creëren (hoewel zonder de stap om het alleen aan de eerste kant te creëren. Ik heb de reden voor deze stap misschien niet begrepen)
Option Explicit
Dim swApp As SldWorks.SldWorks
Sub main()
Dim swModel As SldWorks.ModelDoc2
Dim swFeat As SldWorks.Feature
Dim swSelectionSetFolder As SldWorks.SelectionSetFolder
Dim vSels As Variant
Dim vSel As Variant
Dim swSelSet As SldWorks.SelectionSet
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swFeat = swModel.FirstFeature
While Not swFeat Is Nothing
If swFeat.Name = "Selection Sets" Then
Set swSelectionSetFolder = swFeat.GetSpecificFeature2
vSels = swSelectionSetFolder.GetSelectionSets
For Each vSel In vSels
Set swSelSet = vSel
Debug.Print "Nom du jeu de Selection: " & swSelSet.GetName
swModel.ClearSelection2 True
CreateForce swSelSet
Next
End If
Set swFeat = swFeat.GetNextFeature
Wend
End Sub
Sub CreateForce(swSelSet As SldWorks.SelectionSet)
Dim COSMOSWORKSObj As Object
Dim CWAddinCallBackObj As Object
Set CWAddinCallBackObj = swApp.GetAddInObject("CosmosWorks.CosmosWorks")
Set COSMOSWORKSObj = CWAddinCallBackObj.COSMOSWORKS
Dim ActiveDocObj As Object
Dim StudyManagerObj As Object
Dim LoadsAndRestraintsManagerObj As Object
Dim ErrorCodeObj As Long
Dim ContactManagerObj As Object
Set ActiveDocObj = COSMOSWORKSObj.ActiveDoc()
Set StudyManagerObj = ActiveDocObj.StudyManager()
Dim StudyObj As Object
Set StudyObj = StudyManagerObj.GetStudy(0)
Set LoadsAndRestraintsManagerObj = StudyObj.LoadsAndRestraintsManager()
Dim vSelItems As Variant
Dim vSelItemTypes As Variant
Dim swSelItem As SldWorks.SelectionSetItem
Dim swFace As SldWorks.Face2
Dim j As Integer
vSelItems = swSelSet.GetSelectionSetItems
vSelItemTypes = swSelSet.GetSelectionSetItemTypes
Dim DispArray As Variant
Dim cnt As Long
cnt = UBound(vSelItems)
Dim myArray()
ReDim Preserve myArray(cnt)
For j = 0 To cnt
Set swSelItem = vSelItems(j)
'If vSelItemTypes(j) = swSelectType_e.swSelFACES Then
Set myArray(j) = swSelItem.GetCorrespondingItem
'End If
Next
DispArray = myArray
Dim CWForceObj As Object
Dim DistanceValues As Variant
Dim ForceValues As Variant
Dim ComponentValues As Variant
Dim data(6) As Double
data(0) = 1: data(1) = 1: data(2) = 1: data(3) = 1: data(4) = 1: data(5) = 1
ComponentValues = data
Set CWForceObj = LoadsAndRestraintsManagerObj.AddForce3(1, 0, -1, 0, 0, 0, (DistanceValues), (ForceValues), 0, False, 0, 0, 0, 1, (ComponentValues), False, False, (DispArray), Nothing, False, ErrorCodeObj)
StudyObj.ShowOrHideForce = False
Set StudyManagerObj = Nothing
Set ActiveDocObj = Nothing
Set CWAddinCallBackObj = Nothing
Set COSMOSWORKSObj = Nothing
End Sub
Hartelijk dank! Dat is precies wat ik nodig had... Ik was in staat om de code in mijn macro te integreren door de waarde van de kracht te beheren volgens het selectiespel en vaste steunen te creëren volgens hetzelfde principe.
StudyObj.ShowOrHideForce = OnwaarTexte préformaté nikkel om de behandeling te verlichten!