Tempo-configuraties weergeven

Hallo

Ik maak een macro om een "animatie" te maken waarmee ik een opeenvolging van aanpassingen en configuratiewijzigingen kan zien. Ik voeg een deel van de code toe. Mijn probleem is dat het beeld niet wordt bijgewerkt (weergave). Er wordt rekening gehouden met de code, maar op het scherm is er alleen de eerste en laatste stap die zichtbaar zijn ondanks de "boolstatus = Part.ForceRebuild3(True)". 

Heb je een idee?

Dim swApp als object

Deel dimmen als object
Dim boolstatus als Booleaanse
Dim longstatus As Long, longwarnings As Long

 Publiek Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds as LongPtr) 'Voor 64 Bit Systemen


Sub hoofd()
Dim i Als Single
Stel swApp in = _
Toepassing.SldWorks

Deel instellen = swApp.ActiveDoc
myModelView dimmen als object
Stel myModelView = Deel.ActiveView in

'Config Selectie
boolstatus = Part.Extension.SelectByID2("Klein [55-145mm]", "CONFIGURATIES", 0, 0, 0, Onwaar, 0, Niets, 0)
boolstatus = Part.ShowConfiguration2("Klein [55-145mm]")
'boolstatus = Part.ForceRebuild3(True)

Wachten

Voor i = 0,055 tot 0,145 Stap 0,005
boolstatus = Part.Extension.SelectByID2("", "GEZICHT", 1.88162450943423E-02, 2.07610918535579E-02, 3.41903065946383E-02, Onwaar, 0, Niets, 0)
Part.ActivateSelectedFeature
boolstatus = Part.Extension.SelectByID2("L inter épau@Sketch1@Flex_flexible-1@EX10610_00000_10_boni", "DIMENSIE", 0.516914003349862, 0.726763465357772, 0.299002280968981, Onwaar, 0, Niets, 0)
MyDimension dimmen als object
Stel myDimension = Part.Parameter("L inter épau@Sketch1@Flex_flexible. deel")
myDimension.SystemValue = i
Deel.ClearSelection2 Waar
boolstatus = Deel.ForceRebuild3(Waar)
Stel myModelView = Deel.ActiveView in
Wachten
volgende i

'boolstatus = Part.Extension.SelectByID2("Medium [145-170mm]", "CONFIGURATIONS", 0, 0, 0, False, 0, Nothing, 0)
'boolstatus = Part.ShowConfiguration2("Gemiddeld [145-170 mm]")
'boolstatus = Part.ForceRebuild3(True)
'Wacht

'boolstatus = Part.Extension.SelectByID2("Groot [>175 mm]", "CONFIGURATIES", 0, 0, 0, False, 0, Niets, 0)
'boolstatus = Part.ShowConfiguration2("Groot [>175mm]")
'boolstatus = Part.ForceRebuild3(True)
'Voor i = 0,055 tot 0,145 Stap 0,005

'boolstatus = Part.Extension.SelectByID2("Small@Flex_flexible. SLDPRT", "CONFIGURATIES", 0, 0, 0, Onwaar, 0, Niets, 0)
'boolstatus = Part.ShowConfiguration2("Klein")
'boolstatus = Part.Extension.SelectByID2("L inter épau@Sketch1@Flex_flexible. SLDPRT", "DIMENSIE", -7.48434662003883E-02, 0.151717758326748, -7.54569406310026E-02, Onwaar, 0, Niets, 0)
'Dim myDimension als object

 

'Set myDimension = Part.Parameter("L inter épau@Sketch1")
'myDimension.SystemValue = i
'boolstatus = Part.ForceRebuild3(True)
'Wacht
'boolstatus = Deel.EditRebuild3()
'Vervolgens i

Einde Sub


   

Sub Wachten()
Slaap: 200
Einde Sub

 

 

 

Hallo

Zijn er pauzes tussen elke "beweging"?

Zo niet, dan moet je het plaatsen.

Zo ja, probeer ze dan te verlengen.

Voorbeeld van een pauze:

1)

Application.Wait Tijd + TijdSerial(0, 0, 5) 

2)

Declareer Sub Sleep Lib "kernel32" aka "Sleep" (ByVal dwMilliseconds As Long)

 

Slaap 1000

Hoe zit het met het gebruik van het hulpprogramma SolidWorks Motion?

Zie hier:

https://www.youtube.com/watch?v=0OT5_ZWrFQM

2 likes

@.PL: Ja, mijn wachtfunctie is eigenlijk een slaap. Ik heb geprobeerd deze pauzes te verlengen, maar de veranderingen van de ene lengte naar de andere verschijnen nog steeds niet. 

U kunt proberen EnableGraphicsUpdate in te stellen op true:

http://help.solidworks.com/2012/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IModelView~EnableGraphicsUpdate.html

Of zelfs in de tussentijd, plaats een IF-lus om EnableGraphicsUpdate te wijzigen in false en vervolgens true.

1 like