Wyświetlanie konfiguracji tempa

Witam

Robię makro, aby stworzyć "animację", która pozwala mi zobaczyć kolejne modyfikacje i zmiany konfiguracji. Załączam część kodu. Mój problem polega na tym, że obraz się nie aktualizuje (nie wyświetla). Kod jest brany pod uwagę, ale na ekranie widoczny jest tylko pierwszy i ostatni krok, pomimo "boolstatus = Part.ForceRebuild3(True)". 

Masz pomysł?

Dim swApp As Object

Przyciemnij część jako obiekt
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

 Publiczna deklaracja PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds as LongPtr) 'dla systemów 64-bitowych


Sub main()
Dim i Jako singiel
Ustaw swApp = _
Aplikacja.SldWorks

Ustaw część = swApp.ActiveDoc
Przyciemnij myModelView jako obiekt
Ustaw myModelView = Part.ActiveView

'Wybór konfiguracji
boolstatus = Part.Extension.SelectByID2("Mały [55-145mm]", "KONFIGURACJE", 0, 0, 0, Fałsz, 0, Nic, 0)
boolstatus = Part.ShowConfiguration2("Mały [55-145mm]")
'boolstatus = Part.ForceRebuild3(Prawda)

Czekać

Dla i = 0,055 do 0,145 Krok 0,005
boolstatus = Part.Extension.SelectByID2("", "TWARZ", 1.88162450943423E-02, 2.07610918535579E-02, 3.41903065946383E-02, Fałsz, 0, Nic, 0)
Part.ActivateSelectedFeature
boolstatus = Part.Extension.SelectByID2("L inter épau@Sketch1@Flex_flexible-1@EX10610_00000_10_boni", "DIMENSION", 0.516914003349862, 0.726763465357772, 0.299002280968981, False, 0, Nic, 0)
Przyciemnij myDimension jako obiekt
Ustaw myDimension = Part.Parameter("L inter épau@Sketch1@Flex_flexible. Część")
myDimension.SystemValue = i
Part.ClearSelection2 Prawda
boolstatus = Part.ForceRebuild3(Prawda)
Ustaw myModelView = Part.ActiveView
Czekać
Dalej i

'boolstatus = Part.Extension.SelectByID2("Średni [145-170mm]", "KONFIGURACJE", 0, 0, 0, Fałsz, 0, Nic, 0)
'boolstatus = Part.ShowConfiguration2("Średni [145-170mm]")
'boolstatus = Part.ForceRebuild3(Prawda)
– Czekaj

'boolstatus = Part.Extension.SelectByID2("Duży [>175mm]", "KONFIGURACJE", 0, 0, 0, Fałsz, 0, Nic, 0)
'boolstatus = Part.ShowConfiguration2("Duży [>175mm]")
'boolstatus = Part.ForceRebuild3(Prawda)
'Dla i = 0,055 do 0,145 Krok 0,005

'boolstatus = Part.Extension.SelectByID2("Small@Flex_flexible. SLDPRT", "KONFIGURACJE", 0, 0, 0, Fałsz, 0, Nic, 0)
'boolstatus = Part.ShowConfiguration2("Mały")
'boolstatus = Part.Extension.SelectByID2("L inter épau@Sketch1@Flex_flexible. SLDPRT", "DIMENSION", -7.48434662003883E-02, 0.151717758326748, -7.54569406310026E-02, False, 0, Nic, 0)
'Dim myDimension As Obiekt

 

'Ustaw myDimension = Part.Parameter("L inter épau@Sketch1")
'myDimension.SystemValue = i
'boolstatus = Part.ForceRebuild3(Prawda)
– Czekaj
'boolstatus = Part.EditRebuild3()
"Następny i

Koniec subwoofera


   

Sub Wait()
Uśpij 200
Koniec subwoofera

 

 

 

Witam

Czy są przerwy między poszczególnymi "ruchami"?

Jeśli nie, musisz to umieścić.

Jeśli tak, postaraj się je wydłużyć.

Przykład przerwy:

1)

Application.Wait Time + TimeSerial(0, 0, 5) 

2)

Zadeklaruj sub sleep lib "kernel32" aka "sleep" (ByVal dwMilliseconds As Long)

 

Uśpij 1000

Co powiesz na użycie narzędzia SolidWorks Motion?

Zobacz tutaj:

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

2 polubienia

@.PL: Tak, moja funkcja oczekiwania to tak naprawdę sen. Próbowałem zwiększyć te przerwy, ale zmiany z jednej długości na drugą nadal się nie pojawiają. 

Możesz spróbować ustawić EnableGraphicsUpdate na true:

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

Lub nawet w międzyczasie umieść pętlę IF, aby zmienić EnableGraphicsUpdate na false, a następnie true.

1 polubienie